diff --git a/.travis.yml b/.travis.yml index 6bd3e2d..515eda4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,7 +46,7 @@ install: script: - cd ../TopicNet/topicnet - - py.test . --timeout=20 --cov + - py.test . --timeout=40 --cov after_success: - codecov diff --git a/README.md b/README.md index efcabe1..d985d92 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,18 @@ # TopicNet -![PyPI - Python Version](https://img.shields.io/pypi/pyversions/TopicNet) +[![PyPI](https://img.shields.io/pypi/v/topicnet?color=blue)](https://pypi.org/project/topicnet/) +[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/TopicNet)](https://www.python.org/downloads/release/python-360/) [![Build Status](https://travis-ci.com/machine-intelligence-laboratory/TopicNet.svg?branch=master)](https://travis-ci.com/machine-intelligence-laboratory/TopicNet) [![codecov](https://codecov.io/gh/machine-intelligence-laboratory/TopicNet/branch/master/graph/badge.svg)](https://codecov.io/gh/machine-intelligence-laboratory/TopicNet) -![GitHub pull requests](https://img.shields.io/github/issues-pr-raw/machine-intelligence-laboratory/TopicNet) -![GitHub issues](https://img.shields.io/github/issues/machine-intelligence-laboratory/TopicNet) -![PyPI - License](https://img.shields.io/pypi/l/TopicNet?color=Black) +[![GitHub pull requests](https://img.shields.io/github/issues-pr-raw/machine-intelligence-laboratory/TopicNet)](https://github.com/machine-intelligence-laboratory/TopicNet/pulls) +[![GitHub issues](https://img.shields.io/github/issues/machine-intelligence-laboratory/TopicNet)](https://github.com/machine-intelligence-laboratory/TopicNet/issues) +[![PyPI - License](https://img.shields.io/pypi/l/TopicNet?color=Black)](https://github.com/machine-intelligence-laboratory/TopicNet/blob/master/LICENSE.txt) [Русская версия](README-rus.md) --- ### What is TopicNet? -TopicNet is a high-level interface running on top of [BigARTM](https://github.com/bigartm/bigartm) developed in [Machine Intelligence Laboratory](https://mipt.ai/en). +TopicNet is a high-level interface developed by [Machine Intelligence Laboratory](https://mipt.ai/en) for [BigARTM](https://github.com/bigartm/bigartm) library. ```TopicNet``` library was created to assist in the task of building topic models. It aims at automating model training routine freeing more time for artistic process of constructing a target functional for the task at hand. @@ -24,8 +25,8 @@ Consider using TopicNet if: ```TopicNet``` provides an infrastructure for your prototyping (```Experiment``` class) and helps to observe results of your actions via ```viewers``` module. -![GitHub contributors](https://img.shields.io/github/contributors/machine-intelligence-laboratory/TopicNet) -![GitHub last commit](https://img.shields.io/github/last-commit/machine-intelligence-laboratory/TopicNet) +[![GitHub contributors](https://img.shields.io/github/contributors/machine-intelligence-laboratory/TopicNet)](https://github.com/machine-intelligence-laboratory/TopicNet/graphs/contributors) +[![GitHub last commit](https://img.shields.io/github/last-commit/machine-intelligence-laboratory/TopicNet)](https://github.com/machine-intelligence-laboratory/TopicNet/commits/master) ### How to start? Define `TopicModel` from an ARTM model at hand or with help from `model_constructor` module, where you can set models main parameters. Then create an `Experiment`, assigning a root position to this model and path to store your experiment. Further, you can define a set of training stages by the functionality provided by the `cooking_machine.cubes` module. diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..cf29966 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,2 @@ +ignore: + - "test_*.py" # ignore tests diff --git a/docs/cooking_machine/config_parser.html b/docs/cooking_machine/config_parser.html index 5375cac..36d0b87 100644 --- a/docs/cooking_machine/config_parser.html +++ b/docs/cooking_machine/config_parser.html @@ -3,13 +3,14 @@ - + topicnet.cooking_machine.config_parser API documentation - + + @@ -57,6 +58,566 @@

Module topicnet.cooking_machine.config_parser

+
+ +Expand source code + +
"""
+Parsing text file into Experiment instance using strictyaml
+(github.com/crdoconnor/strictyaml/)
+
+The aim here is to make config:
+* possible to use even for non-programmers
+* hard to misuse
+* easy debuggable
+
+Hence, the process of parsing config is a bit more complicated than
+it could be, but it produces more useful error messages. For example:
+
+    File $YOUR_CONFIG.yaml, line 42
+        topic_names: 10
+        ^ this value should be a 'list' instead of 'int'
+    YAMLValidationError: 'int' passed instead of 'list'
+
+instead of:
+
+    File $SOME_FILE.py, line 666, in $SOME_FUNCTION
+        for topic_name in topic_names:
+    TypeError: 'int' object is not iterable
+
+To achieve this, strictyaml makes use of various validators which
+keep track of individual line numbers and which fragments are already
+checked and which aren't quite here yet.
+
+Our process consists of three stages:
+1) we check the high-level structure using `base_schema`.
+The presence of each required key is ensured.
+After this stage we could be sure than we can create a valid model
+using specified parameters.
+
+2) we make a second pass and revalidate 'regularizers' and 'stages'
+This step is performed semi-automatically: using `inspect`,
+we extract everything from `__init__` method signature.
+    For example:
+        def __init__(self, num_iters: int = 5)
+    allows us to infer that num_iters parameter should be int,
+    but it isn't strictly required.
+
+3) we construct instances of classes required, convert types manually
+and implement some shortcuts.
+Ideally, this stage should be performed using revalidate() as well,
+but it's a work-in-progress currently.
+
+"""  # noqa: W291
+from .cubes import RegularizersModifierCube, CubeCreator
+from .experiment import Experiment
+from .dataset import Dataset
+from .models import scores as tnscores
+from .models import TopicModel
+
+from .cubes import PerplexityStrategy, GreedyStrategy
+from .model_constructor import init_simple_default_model, create_default_topics
+from .rel_toolbox_lite import count_vocab_size, handle_regularizer
+
+import artm
+
+from inspect import signature, Parameter
+from strictyaml import Map, Str, Int, Seq, Float, Bool
+from strictyaml import Any, Optional, EmptyDict, EmptyNone, EmptyList
+from strictyaml import dirty_load
+
+# TODO: use stackoverflow.com/questions/37929851/parse-numpydoc-docstring-and-access-components
+# for now just hardcode most common / important types
+ARTM_TYPES = {
+    "tau": Float(),
+    "topic_names": Str() | Seq(Str()) | EmptyNone(),
+    # TODO: handle class_ids in model and in regularizers separately
+    "class_ids": Str() | Seq(Str()) | EmptyNone(),
+    "gamma": Float() | EmptyNone(),
+    "seed": Int(),
+    "num_document_passes": Int(),
+    "num_processors": Int(),
+    "cache_theta": Bool(),
+    "reuse_theta": Bool(),
+    "theta_name": Str()
+}
+
+# change log style
+lc = artm.messages.ConfigureLoggingArgs()
+lc.minloglevel = 3
+lib = artm.wrapper.LibArtm(logging_config=lc)
+
+element = Any()
+base_schema = Map({
+    'regularizers': Seq(element),
+    Optional('scores'): Seq(element),
+    'stages': Seq(element),
+    'model': Map({
+        "dataset_path": Str(),
+        Optional("modalities_to_use"): Seq(Str()),
+        Optional("modalities_weights"): Any(),
+        "main_modality": Str(),
+    }),
+    'topics': Map({
+        "background_topics": Seq(Str()) | Int() | EmptyList(),
+        "specific_topics": Seq(Str()) | Int() | EmptyList(),
+    })
+})
+SUPPORTED_CUBES = [CubeCreator, RegularizersModifierCube]
+SUPPORTED_STRATEGIES = [PerplexityStrategy, GreedyStrategy]
+
+
+def choose_key(param):
+    """
+    Parameters
+    ----------
+    param : inspect.Parameter
+
+    Returns
+    -------
+    str or strictyaml.Optional
+    """
+    if param.default is not Parameter.empty:
+        return Optional(param.name)
+    return param.name
+
+
+def choose_validator(param):
+    """
+    Parameters
+    ----------
+    param : inspect.Parameter
+
+    Returns
+    -------
+    instance of strictyaml.Validator
+    """
+    if param.annotation is int:
+        return Int()
+    if param.annotation is float:
+        return Float()
+    if param.annotation is bool:
+        return Bool()
+    if param.annotation is str:
+        return Str()
+    if param.name in ARTM_TYPES:
+        return ARTM_TYPES[param.name]
+    return Any()
+
+
+def build_schema_from_signature(class_of_object, use_optional=True):
+    """
+    Parameters
+    ----------
+    class_of_object : class
+
+    Returns
+    -------
+    dict
+        each element is either str -> Validator or Optional(str) -> Validator
+    """
+    choose_key_func = choose_key if use_optional else (lambda param: param.name)
+    return {choose_key_func(param): choose_validator(param)
+            for param in signature(class_of_object.__init__).parameters.values()
+            if param.name != 'self'}
+
+
+def wrap_in_map(dictionary):
+    could_be_empty = all(isinstance(key, Optional) for key in dictionary)
+    if could_be_empty:
+        return Map(dictionary) | EmptyDict()
+    return Map(dictionary)
+
+
+def build_schema_for_scores():
+    """
+    Returns
+    -------
+    strictyaml.Map
+        schema used for validation and type-coercion
+    """
+    schemas = {}
+    for elem in artm.scores.__all__:
+        if "Score" in elem:
+            class_of_object = getattr(artm.scores, elem)
+            # TODO: check if every key is Optional. If it is, then "| EmptyDict()"
+            # otherwise, just Map()
+            res = wrap_in_map(build_schema_from_signature(class_of_object))
+
+            specific_schema = Map({class_of_object.__name__: res})
+            schemas[class_of_object.__name__] = specific_schema
+
+    for elem in tnscores.__all__:
+        if "Score" in elem:
+            class_of_object = getattr(tnscores, elem)
+            res = build_schema_from_signature(class_of_object)
+            # res["name"] = Str()  # TODO: support custom names
+            res = wrap_in_map(res)
+
+            specific_schema = Map({class_of_object.__name__: res})
+            schemas[class_of_object.__name__] = specific_schema
+
+    return schemas
+
+
+def build_schema_for_regs():
+    """
+    Returns
+    -------
+    strictyaml.Map
+        schema used for validation and type-coercion
+    """
+    schemas = {}
+    for elem in artm.regularizers.__all__:
+        if "Regularizer" in elem:
+            class_of_object = getattr(artm.regularizers, elem)
+            res = build_schema_from_signature(class_of_object)
+            if elem in ["SmoothSparseThetaRegularizer", "SmoothSparsePhiRegularizer",
+                        "DecorrelatorPhiRegularizer"]:
+                res[Optional("relative", default=None)] = Bool()
+            res = wrap_in_map(res)
+
+            specific_schema = Map({class_of_object.__name__: res})
+            schemas[class_of_object.__name__] = specific_schema
+
+    return schemas
+
+
+def is_key_in_schema(key, schema):
+    if key in schema:
+        return True
+    return any(
+        key_val.key == key for key_val in schema
+        if isinstance(key_val, Optional)
+    )
+
+
+def build_schema_for_cubes():
+    """
+    Returns
+    -------
+    dict
+        each element is str -> strictyaml.Map
+        where key is name of cube,
+        value is a schema used for validation and type-coercion
+    """
+    schemas = {}
+    for class_of_object in SUPPORTED_CUBES:
+        res = build_schema_from_signature(class_of_object)
+
+        # "selection" isn't used in __init__, but we will need it later
+        res["selection"] = Seq(Str())
+
+        # shortcut for strategy intialization
+        if is_key_in_schema("strategy", res):
+            signature_validation = {}
+            for strategy_class in SUPPORTED_STRATEGIES:
+                local_signature_validation = build_schema_from_signature(strategy_class)
+                signature_validation.update(local_signature_validation)
+            res[Optional("strategy_params")] = Map(signature_validation)
+
+        # we will deal with "values" later, but we can check at least some simple things already
+        if class_of_object.__name__ == "CubeCreator":
+            element = Map({"name": Str(), "values": Seq(Any())})
+            res["parameters"] = Seq(element)
+        if class_of_object.__name__ == "RegularizersModifierCube":
+            element = Map({
+                Optional("name"): Str(),
+                Optional("regularizer"): Any(),
+                Optional("tau_grid"): Seq(Float())
+            })
+            res["regularizer_parameters"] = element | Seq(element)
+
+        res = Map(res)
+
+        specific_schema = Map({class_of_object.__name__: res})
+        schemas[class_of_object.__name__] = specific_schema
+    return schemas
+
+
+def preprocess_parameters_for_cube_creator(elem_args):
+    """
+    This function does two things:
+        1) convert class_ids from
+            name: class_ids@text, values: [0, 1, 2, 3]
+           to
+            name: class_ids, values: {"@text": [0, 1, 2, 3]}
+        2) type conversion for "values" field.
+
+    Parameters
+    ----------
+    elem_args: strictyaml.YAML object
+        (contains dict inside)
+
+    Returns
+    -------
+    new_elem_args: dict
+    """
+
+    for param_portion in elem_args["parameters"]:
+        name = str(param_portion["name"])
+        if name.startswith("class_ids"):
+            validator = Float() | Seq(Float())
+        else:
+            validator = Seq(ARTM_TYPES[name])
+        param_schema = Map({
+            "name": Str(),
+            "values": validator
+        })
+        param_portion.revalidate(param_schema)
+
+
+def handle_special_cases(elem_args, kwargs):
+    """
+    In-place fixes kwargs, handling special cases and shortcuts
+    (only strategy for now)
+    Parameters
+    ----------
+    elem_args: dict
+    kwargs: dict
+    """
+    # special case: shortcut for strategy
+    if "strategy" in elem_args:
+        strategy = None
+        for strategy_class in SUPPORTED_STRATEGIES:
+            if strategy_class.__name__ == elem_args["strategy"]:
+                strat_schema = build_schema_from_signature(strategy_class, use_optional=False)
+                strat_kwargs = {}
+
+                for key, value in elem_args["strategy_params"].items():
+                    key = str(key)
+                    value.revalidate(strat_schema[key])
+                    strat_kwargs[key] = value.data
+
+                strategy = strategy_class(**strat_kwargs)
+
+        kwargs["strategy"] = strategy  # or None if failed to identify it
+
+
+def build_score(elemtype, elem_args, is_artm_score):
+    """
+    Parameters
+    ----------
+    elemtype : str
+        name of score
+    elem_args: dict
+    is_artm_score: bool
+
+    Returns
+    -------
+    instance of artm.Score or topicnet.BaseScore
+    """
+    module = artm.scores if is_artm_score else tnscores
+    class_of_object = getattr(module, elemtype)
+    kwargs = {name: value
+              for name, value in elem_args.items()}
+
+    return class_of_object(**kwargs)
+
+
+def build_regularizer(elemtype, elem_args, specific_topic_names, background_topic_names):
+    """
+    Parameters
+    ----------
+    elemtype : str
+        name of regularizer
+    elem_args: dict
+    parsed: strictyaml.YAML object
+
+    Returns
+    -------
+    instance of artm.Regularizer
+    """
+    class_of_object = getattr(artm.regularizers, elemtype)
+    kwargs = {name: value
+              for name, value in elem_args.items()}
+    # special case: shortcut for topic_names
+    if "topic_names" in kwargs:
+        if kwargs["topic_names"] == "background_topics":
+            kwargs["topic_names"] = background_topic_names
+        if kwargs["topic_names"] == "specific_topics":
+            kwargs["topic_names"] = specific_topic_names
+
+    return class_of_object(**kwargs)
+
+
+def build_cube_settings(elemtype, elem_args):
+    """
+    Parameters
+    ----------
+    elemtype : str
+        name of regularizer
+    elem_args: strictyaml.YAML object
+        (contains dict inside)
+
+    Returns
+    -------
+    list of dict
+    """
+    if elemtype == "CubeCreator":
+        preprocess_parameters_for_cube_creator(elem_args)
+
+    kwargs = {name: value
+              for name, value in elem_args.data.items()
+              if name not in ['selection', 'strategy', 'strategy_params']}
+
+    handle_special_cases(elem_args, kwargs)
+    return {elemtype: kwargs,
+            "selection": elem_args['selection'].data}
+
+
+def _add_parsed_scores(parsed, topic_model):
+    """ """
+    for score in parsed.data.get('scores', []):
+        for elemtype, elem_args in score.items():
+            is_artm_score = elemtype in artm.scores.__all__
+            score_object = build_score(elemtype, elem_args, is_artm_score)
+            if is_artm_score:
+                topic_model._model.scores.add(score_object, overwrite=True)
+            else:
+                topic_model.custom_scores[elemtype] = score_object
+
+
+def _add_parsed_regularizers(
+    parsed, model, specific_topic_names, background_topic_names, data_stats
+):
+    """ """
+    regularizers = []
+    for stage in parsed.data['regularizers']:
+        for elemtype, elem_args in stage.items():
+            should_be_relative = None
+            if "relative" in elem_args:
+                should_be_relative = elem_args["relative"]
+                elem_args.pop("relative")
+
+            regularizer_object = build_regularizer(
+                elemtype, elem_args, specific_topic_names, background_topic_names
+            )
+            handle_regularizer(should_be_relative, model, regularizer_object, data_stats)
+            regularizers.append(model.regularizers[regularizer_object.name])
+    return regularizers
+
+
+def parse_modalities_data(parsed):
+    has_modalities_to_use = is_key_in_schema("modalities_to_use", parsed["model"])
+    has_weights = is_key_in_schema("modalities_weights", parsed["model"])
+    main_modality = parsed["model"]["main_modality"]
+
+    # exactly one should be specified
+    if has_modalities_to_use == has_weights:
+        raise ValueError(f"Either 'modalities_to_use' or 'modalities_weights' should be specified")
+
+    if has_weights:
+        modalities_to_use = list(parsed["model"]["modalities_weights"].data)
+        if main_modality not in modalities_to_use:
+            modalities_to_use.append(main_modality)
+        local_schema = Map({
+            key: Float() for key in modalities_to_use
+        })
+        parsed["model"]["modalities_weights"].revalidate(local_schema)
+        modalities_weights = parsed["model"]["modalities_weights"].data
+    else:
+        modalities_weights = None
+        modalities_to_use = parsed.data["model"]["modalities_to_use"]
+    return modalities_to_use, modalities_weights
+
+
+def parse(yaml_string, force_single_thread=False):
+    """
+    Parameters
+    ----------
+    yaml_string : str
+    force_single_thread : bool
+
+    Returns
+    -------
+    cube_settings: list of dict
+    regularizers: list
+    topic_model: TopicModel
+    dataset: Dataset
+    """
+    parsed = dirty_load(yaml_string, base_schema, allow_flow_style=True)
+
+    specific_topic_names, background_topic_names = create_default_topics(
+        parsed.data["topics"]["specific_topics"],
+        parsed.data["topics"]["background_topics"]
+    )
+
+    revalidate_section(parsed, "stages")
+    revalidate_section(parsed, "regularizers")
+    if "scores" in parsed:
+        revalidate_section(parsed, "scores")
+
+    cube_settings = []
+
+    dataset = Dataset(parsed.data["model"]["dataset_path"])
+
+    modalities_to_use, modalities_weights = parse_modalities_data(parsed)
+
+    data_stats = count_vocab_size(dataset.get_dictionary(), modalities_to_use)
+    model = init_simple_default_model(
+        dataset=dataset,
+        modalities_to_use=modalities_to_use,
+        main_modality=parsed.data["model"]["main_modality"],
+        specific_topics=parsed.data["topics"]["specific_topics"],
+        background_topics=parsed.data["topics"]["background_topics"],
+        modalities_weights=modalities_weights
+    )
+
+    regularizers = _add_parsed_regularizers(
+        parsed, model, specific_topic_names, background_topic_names, data_stats
+    )
+    topic_model = TopicModel(model)
+    _add_parsed_scores(parsed, topic_model)
+
+    for stage in parsed['stages']:
+        for elemtype, elem_args in stage.items():
+            settings = build_cube_settings(elemtype.data, elem_args)
+            if force_single_thread:
+                settings[elemtype]["separate_thread"] = False
+            cube_settings.append(settings)
+
+    return cube_settings, regularizers, topic_model, dataset
+
+
+def revalidate_section(parsed, section):
+    """
+    Perofrms in-place type coercion and validation
+
+    Parameters
+    ----------
+    parsed : strictyaml.YAML object
+        (half-parsed, half-validated chunk of config)
+    section: str
+    """
+    if section == "stages":
+        schemas = build_schema_for_cubes()
+    elif section == "regularizers":
+        schemas = build_schema_for_regs()
+    elif section == "scores":
+        schemas = build_schema_for_scores()
+    else:
+        raise ValueError(f"Unknown section name '{section}'")
+
+    for i, stage in enumerate(parsed[section]):
+        assert len(stage) == 1
+        name = list(stage.data)[0]
+
+        if name not in schemas:
+            raise ValueError(f"Unsupported {section} value: {name} at line {stage.start_line}")
+        local_schema = schemas[name]
+
+        stage.revalidate(local_schema)
+
+
+def build_experiment_environment_from_yaml_config(yaml_string, experiment_id,
+                                                  save_path, force_single_thread=False):
+    settings, regs, model, dataset = parse(yaml_string, force_single_thread)
+    # TODO: handle dynamic addition of regularizers
+    experiment = Experiment(experiment_id=experiment_id, save_path=save_path, topic_model=model)
+    experiment.build(settings)
+    return experiment, dataset
+
@@ -81,12 +642,52 @@

Returns

list of dict
 
+
+ +Expand source code + +
def build_cube_settings(elemtype, elem_args):
+    """
+    Parameters
+    ----------
+    elemtype : str
+        name of regularizer
+    elem_args: strictyaml.YAML object
+        (contains dict inside)
+
+    Returns
+    -------
+    list of dict
+    """
+    if elemtype == "CubeCreator":
+        preprocess_parameters_for_cube_creator(elem_args)
+
+    kwargs = {name: value
+              for name, value in elem_args.data.items()
+              if name not in ['selection', 'strategy', 'strategy_params']}
+
+    handle_special_cases(elem_args, kwargs)
+    return {elemtype: kwargs,
+            "selection": elem_args['selection'].data}
+
def build_experiment_environment_from_yaml_config(yaml_string, experiment_id, save_path, force_single_thread=False)
+
+ +Expand source code + +
def build_experiment_environment_from_yaml_config(yaml_string, experiment_id,
+                                                  save_path, force_single_thread=False):
+    settings, regs, model, dataset = parse(yaml_string, force_single_thread)
+    # TODO: handle dynamic addition of regularizers
+    experiment = Experiment(experiment_id=experiment_id, save_path=save_path, topic_model=model)
+    experiment.build(settings)
+    return experiment, dataset
+
def build_regularizer(elemtype, elem_args, specific_topic_names, background_topic_names) @@ -106,6 +707,35 @@

Returns

instance of artm.Regularizer
 
+
+ +Expand source code + +
def build_regularizer(elemtype, elem_args, specific_topic_names, background_topic_names):
+    """
+    Parameters
+    ----------
+    elemtype : str
+        name of regularizer
+    elem_args: dict
+    parsed: strictyaml.YAML object
+
+    Returns
+    -------
+    instance of artm.Regularizer
+    """
+    class_of_object = getattr(artm.regularizers, elemtype)
+    kwargs = {name: value
+              for name, value in elem_args.items()}
+    # special case: shortcut for topic_names
+    if "topic_names" in kwargs:
+        if kwargs["topic_names"] == "background_topics":
+            kwargs["topic_names"] = background_topic_names
+        if kwargs["topic_names"] == "specific_topics":
+            kwargs["topic_names"] = specific_topic_names
+
+    return class_of_object(**kwargs)
+
def build_schema_for_cubes() @@ -118,6 +748,52 @@

Returns

where key is name of cube, value is a schema used for validation and type-coercion +
+ +Expand source code + +
def build_schema_for_cubes():
+    """
+    Returns
+    -------
+    dict
+        each element is str -> strictyaml.Map
+        where key is name of cube,
+        value is a schema used for validation and type-coercion
+    """
+    schemas = {}
+    for class_of_object in SUPPORTED_CUBES:
+        res = build_schema_from_signature(class_of_object)
+
+        # "selection" isn't used in __init__, but we will need it later
+        res["selection"] = Seq(Str())
+
+        # shortcut for strategy intialization
+        if is_key_in_schema("strategy", res):
+            signature_validation = {}
+            for strategy_class in SUPPORTED_STRATEGIES:
+                local_signature_validation = build_schema_from_signature(strategy_class)
+                signature_validation.update(local_signature_validation)
+            res[Optional("strategy_params")] = Map(signature_validation)
+
+        # we will deal with "values" later, but we can check at least some simple things already
+        if class_of_object.__name__ == "CubeCreator":
+            element = Map({"name": Str(), "values": Seq(Any())})
+            res["parameters"] = Seq(element)
+        if class_of_object.__name__ == "RegularizersModifierCube":
+            element = Map({
+                Optional("name"): Str(),
+                Optional("regularizer"): Any(),
+                Optional("tau_grid"): Seq(Float())
+            })
+            res["regularizer_parameters"] = element | Seq(element)
+
+        res = Map(res)
+
+        specific_schema = Map({class_of_object.__name__: res})
+        schemas[class_of_object.__name__] = specific_schema
+    return schemas
+
def build_schema_for_regs() @@ -128,6 +804,32 @@

Returns

strictyaml.Map
schema used for validation and type-coercion
+
+ +Expand source code + +
def build_schema_for_regs():
+    """
+    Returns
+    -------
+    strictyaml.Map
+        schema used for validation and type-coercion
+    """
+    schemas = {}
+    for elem in artm.regularizers.__all__:
+        if "Regularizer" in elem:
+            class_of_object = getattr(artm.regularizers, elem)
+            res = build_schema_from_signature(class_of_object)
+            if elem in ["SmoothSparseThetaRegularizer", "SmoothSparsePhiRegularizer",
+                        "DecorrelatorPhiRegularizer"]:
+                res[Optional("relative", default=None)] = Bool()
+            res = wrap_in_map(res)
+
+            specific_schema = Map({class_of_object.__name__: res})
+            schemas[class_of_object.__name__] = specific_schema
+
+    return schemas
+
def build_schema_for_scores() @@ -138,6 +840,40 @@

Returns

strictyaml.Map
schema used for validation and type-coercion
+
+ +Expand source code + +
def build_schema_for_scores():
+    """
+    Returns
+    -------
+    strictyaml.Map
+        schema used for validation and type-coercion
+    """
+    schemas = {}
+    for elem in artm.scores.__all__:
+        if "Score" in elem:
+            class_of_object = getattr(artm.scores, elem)
+            # TODO: check if every key is Optional. If it is, then "| EmptyDict()"
+            # otherwise, just Map()
+            res = wrap_in_map(build_schema_from_signature(class_of_object))
+
+            specific_schema = Map({class_of_object.__name__: res})
+            schemas[class_of_object.__name__] = specific_schema
+
+    for elem in tnscores.__all__:
+        if "Score" in elem:
+            class_of_object = getattr(tnscores, elem)
+            res = build_schema_from_signature(class_of_object)
+            # res["name"] = Str()  # TODO: support custom names
+            res = wrap_in_map(res)
+
+            specific_schema = Map({class_of_object.__name__: res})
+            schemas[class_of_object.__name__] = specific_schema
+
+    return schemas
+
def build_schema_from_signature(class_of_object, use_optional=True) @@ -153,6 +889,26 @@

Returns

dict
each element is either str -> Validator or Optional(str) -> Validator
+
+ +Expand source code + +
def build_schema_from_signature(class_of_object, use_optional=True):
+    """
+    Parameters
+    ----------
+    class_of_object : class
+
+    Returns
+    -------
+    dict
+        each element is either str -> Validator or Optional(str) -> Validator
+    """
+    choose_key_func = choose_key if use_optional else (lambda param: param.name)
+    return {choose_key_func(param): choose_validator(param)
+            for param in signature(class_of_object.__init__).parameters.values()
+            if param.name != 'self'}
+
def build_score(elemtype, elem_args, is_artm_score) @@ -172,6 +928,30 @@

Returns

instance of artm.Score or topicnet.BaseScore
 
+
+ +Expand source code + +
def build_score(elemtype, elem_args, is_artm_score):
+    """
+    Parameters
+    ----------
+    elemtype : str
+        name of score
+    elem_args: dict
+    is_artm_score: bool
+
+    Returns
+    -------
+    instance of artm.Score or topicnet.BaseScore
+    """
+    module = artm.scores if is_artm_score else tnscores
+    class_of_object = getattr(module, elemtype)
+    kwargs = {name: value
+              for name, value in elem_args.items()}
+
+    return class_of_object(**kwargs)
+
def choose_key(param) @@ -187,6 +967,24 @@

Returns

str or strictyaml.Optional
 
+
+ +Expand source code + +
def choose_key(param):
+    """
+    Parameters
+    ----------
+    param : inspect.Parameter
+
+    Returns
+    -------
+    str or strictyaml.Optional
+    """
+    if param.default is not Parameter.empty:
+        return Optional(param.name)
+    return param.name
+
def choose_validator(param) @@ -202,6 +1000,32 @@

Returns

instance of strictyaml.Validator
 
+
+ +Expand source code + +
def choose_validator(param):
+    """
+    Parameters
+    ----------
+    param : inspect.Parameter
+
+    Returns
+    -------
+    instance of strictyaml.Validator
+    """
+    if param.annotation is int:
+        return Int()
+    if param.annotation is float:
+        return Float()
+    if param.annotation is bool:
+        return Bool()
+    if param.annotation is str:
+        return Str()
+    if param.name in ARTM_TYPES:
+        return ARTM_TYPES[param.name]
+    return Any()
+
def handle_special_cases(elem_args, kwargs) @@ -217,12 +1041,54 @@

Returns

kwargs : dict
 
+
+ +Expand source code + +
def handle_special_cases(elem_args, kwargs):
+    """
+    In-place fixes kwargs, handling special cases and shortcuts
+    (only strategy for now)
+    Parameters
+    ----------
+    elem_args: dict
+    kwargs: dict
+    """
+    # special case: shortcut for strategy
+    if "strategy" in elem_args:
+        strategy = None
+        for strategy_class in SUPPORTED_STRATEGIES:
+            if strategy_class.__name__ == elem_args["strategy"]:
+                strat_schema = build_schema_from_signature(strategy_class, use_optional=False)
+                strat_kwargs = {}
+
+                for key, value in elem_args["strategy_params"].items():
+                    key = str(key)
+                    value.revalidate(strat_schema[key])
+                    strat_kwargs[key] = value.data
+
+                strategy = strategy_class(**strat_kwargs)
+
+        kwargs["strategy"] = strategy  # or None if failed to identify it
+
def is_key_in_schema(key, schema)
+
+ +Expand source code + +
def is_key_in_schema(key, schema):
+    if key in schema:
+        return True
+    return any(
+        key_val.key == key for key_val in schema
+        if isinstance(key_val, Optional)
+    )
+
def parse(yaml_string, force_single_thread=False) @@ -246,6 +1112,100 @@

Returns

dataset : Dataset
 
+
+ +Expand source code + +
def parse(yaml_string, force_single_thread=False):
+    """
+    Parameters
+    ----------
+    yaml_string : str
+    force_single_thread : bool
+
+    Returns
+    -------
+    cube_settings: list of dict
+    regularizers: list
+    topic_model: TopicModel
+    dataset: Dataset
+    """
+    parsed = dirty_load(yaml_string, base_schema, allow_flow_style=True)
+
+    specific_topic_names, background_topic_names = create_default_topics(
+        parsed.data["topics"]["specific_topics"],
+        parsed.data["topics"]["background_topics"]
+    )
+
+    revalidate_section(parsed, "stages")
+    revalidate_section(parsed, "regularizers")
+    if "scores" in parsed:
+        revalidate_section(parsed, "scores")
+
+    cube_settings = []
+
+    dataset = Dataset(parsed.data["model"]["dataset_path"])
+
+    modalities_to_use, modalities_weights = parse_modalities_data(parsed)
+
+    data_stats = count_vocab_size(dataset.get_dictionary(), modalities_to_use)
+    model = init_simple_default_model(
+        dataset=dataset,
+        modalities_to_use=modalities_to_use,
+        main_modality=parsed.data["model"]["main_modality"],
+        specific_topics=parsed.data["topics"]["specific_topics"],
+        background_topics=parsed.data["topics"]["background_topics"],
+        modalities_weights=modalities_weights
+    )
+
+    regularizers = _add_parsed_regularizers(
+        parsed, model, specific_topic_names, background_topic_names, data_stats
+    )
+    topic_model = TopicModel(model)
+    _add_parsed_scores(parsed, topic_model)
+
+    for stage in parsed['stages']:
+        for elemtype, elem_args in stage.items():
+            settings = build_cube_settings(elemtype.data, elem_args)
+            if force_single_thread:
+                settings[elemtype]["separate_thread"] = False
+            cube_settings.append(settings)
+
+    return cube_settings, regularizers, topic_model, dataset
+
+ +
+def parse_modalities_data(parsed) +
+
+
+
+ +Expand source code + +
def parse_modalities_data(parsed):
+    has_modalities_to_use = is_key_in_schema("modalities_to_use", parsed["model"])
+    has_weights = is_key_in_schema("modalities_weights", parsed["model"])
+    main_modality = parsed["model"]["main_modality"]
+
+    # exactly one should be specified
+    if has_modalities_to_use == has_weights:
+        raise ValueError(f"Either 'modalities_to_use' or 'modalities_weights' should be specified")
+
+    if has_weights:
+        modalities_to_use = list(parsed["model"]["modalities_weights"].data)
+        if main_modality not in modalities_to_use:
+            modalities_to_use.append(main_modality)
+        local_schema = Map({
+            key: Float() for key in modalities_to_use
+        })
+        parsed["model"]["modalities_weights"].revalidate(local_schema)
+        modalities_weights = parsed["model"]["modalities_weights"].data
+    else:
+        modalities_weights = None
+        modalities_to_use = parsed.data["model"]["modalities_to_use"]
+    return modalities_to_use, modalities_weights
+
def preprocess_parameters_for_cube_creator(elem_args) @@ -267,6 +1227,41 @@

Returns

new_elem_args : dict
 
+
+ +Expand source code + +
def preprocess_parameters_for_cube_creator(elem_args):
+    """
+    This function does two things:
+        1) convert class_ids from
+            name: class_ids@text, values: [0, 1, 2, 3]
+           to
+            name: class_ids, values: {"@text": [0, 1, 2, 3]}
+        2) type conversion for "values" field.
+
+    Parameters
+    ----------
+    elem_args: strictyaml.YAML object
+        (contains dict inside)
+
+    Returns
+    -------
+    new_elem_args: dict
+    """
+
+    for param_portion in elem_args["parameters"]:
+        name = str(param_portion["name"])
+        if name.startswith("class_ids"):
+            validator = Float() | Seq(Float())
+        else:
+            validator = Seq(ARTM_TYPES[name])
+        param_schema = Map({
+            "name": Str(),
+            "values": validator
+        })
+        param_portion.revalidate(param_schema)
+
def revalidate_section(parsed, section) @@ -280,12 +1275,55 @@

Parameters

section : str
 
+
+ +Expand source code + +
def revalidate_section(parsed, section):
+    """
+    Perofrms in-place type coercion and validation
+
+    Parameters
+    ----------
+    parsed : strictyaml.YAML object
+        (half-parsed, half-validated chunk of config)
+    section: str
+    """
+    if section == "stages":
+        schemas = build_schema_for_cubes()
+    elif section == "regularizers":
+        schemas = build_schema_for_regs()
+    elif section == "scores":
+        schemas = build_schema_for_scores()
+    else:
+        raise ValueError(f"Unknown section name '{section}'")
+
+    for i, stage in enumerate(parsed[section]):
+        assert len(stage) == 1
+        name = list(stage.data)[0]
+
+        if name not in schemas:
+            raise ValueError(f"Unsupported {section} value: {name} at line {stage.start_line}")
+        local_schema = schemas[name]
+
+        stage.revalidate(local_schema)
+
def wrap_in_map(dictionary)
+
+ +Expand source code + +
def wrap_in_map(dictionary):
+    could_be_empty = all(isinstance(key, Optional) for key in dictionary)
+    if could_be_empty:
+        return Map(dictionary) | EmptyDict()
+    return Map(dictionary)
+
@@ -318,6 +1356,7 @@

Index

  • handle_special_cases
  • is_key_in_schema
  • parse
  • +
  • parse_modalities_data
  • preprocess_parameters_for_cube_creator
  • revalidate_section
  • wrap_in_map
  • @@ -327,7 +1366,9 @@

    Index

    + + \ No newline at end of file diff --git a/docs/cooking_machine/cubes/base_cube.html b/docs/cooking_machine/cubes/base_cube.html index 000e08b..cf8991a 100644 --- a/docs/cooking_machine/cubes/base_cube.html +++ b/docs/cooking_machine/cubes/base_cube.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.cubes.base_cube API documentation - + + @@ -19,6 +20,360 @@

    Module topicnet.cooking_machine.cubes.base_cube

    +
    + +Expand source code + +
    import os
    +from tqdm import tqdm
    +import warnings
    +from multiprocessing import Queue, Process
    +# from queue import Empty
    +from artm.wrapper.exceptions import ArtmException
    +
    +from .strategy import BaseStrategy
    +from ..models.base_model import padd_model_name
    +from ..routine import get_timestamp_in_str_format
    +
    +NUM_MODELS_ERROR = "Failed to retrive number of trained models"
    +MODEL_RETRIEVE_ERROR = "Retrieved only {0} models out of {1}"
    +STRATEGY_RETRIEVE_ERROR = 'Failed to retrieve strategy parameters'
    +WARNINGS_RETRIEVE_ERROR = 'Failed to return warnings'
    +
    +
    +def check_experiment_existence(topic_model):
    +    """
    +    Checks if topic_model has experiment.
    +
    +    Parameters
    +    ----------
    +    topic_model : TopicModel
    +        topic model
    +
    +    Returns
    +    -------
    +    bool
    +        True if experiment exists, in other case False.
    +
    +    """
    +    is_experiment = topic_model.experiment is not None
    +
    +    return is_experiment
    +
    +
    +class retrieve_score_for_strategy:
    +    def __init__(self, score_name):
    +        self.score_name = score_name
    +
    +    def __call__(self, model):
    +        if isinstance(model, str):
    +            self.score_name = model
    +        else:
    +            return model.scores[self.score_name][-1]
    +
    +
    +# exists for multiprocessing debug
    +def put_to_queue(queue, puttable):
    +    queue.put(puttable)
    +
    +
    +# exists for multiprocessing debug
    +def get_from_queue_till_fail(queue,  error_message='',):
    +    while True:
    +        return queue.get()
    +
    +
    +class BaseCube:
    +    """
    +    Abstract class for all cubes.
    +
    +    """
    +    def __init__(self, num_iter, action=None, reg_search="grid",
    +                 strategy=None, tracked_score_function=None,
    +                 verbose=False, separate_thread=True):
    +        """
    +        Initialize stage.
    +        Checks params and update .parameters attribute.
    +
    +        Parameters
    +        ----------
    +        num_iter : int
    +            number of iterations or method
    +        action : str
    +            stage of creation
    +        reg_search : str
    +            "grid" or "pair". "pair" for elementwise grid search in the case
    +            of several regularizers, "grid" for the fullgrid search in the
    +            case of several regularizers
    +        strategy : BaseStrategy
    +            optimization approach
    +        tracked_score_function : str or callable
    +            optimizable function for strategy
    +        verbose : bool
    +            visualization flag
    +        separate_thread : bool
    +            will train models inside a separate thread if True
    +
    +        """
    +        self.num_iter = num_iter
    +        self.parameters = []
    +        self.action = action
    +        self.reg_search = reg_search
    +        if not strategy:
    +            strategy = BaseStrategy()
    +        self.strategy = strategy
    +        self.verbose = verbose
    +        self.separate_thread = separate_thread
    +
    +        if isinstance(tracked_score_function, str):
    +            tracked_score_function = retrieve_score_for_strategy(tracked_score_function)
    +        self.tracked_score_function = tracked_score_function
    +
    +    def apply(self, topic_model, one_cube_parameter, dictionary=None, model_id=None):
    +        """
    +        "apply" method changes topic_model in way that is defined by one_cube_parameter.
    +
    +        Parameters
    +        ----------
    +        topic_model : TopicModel
    +            topic model
    +        one_cube_parameter : optional
    +            parameters of one experiment
    +        dictionary : dict
    +            dictionary so that the it can be used
    +            on the basis of the model (Default value = None)
    +        model_id : str
    +            id of created model if necessary (Default value = None)
    +
    +        Returns
    +        -------
    +
    +        """
    +        raise NotImplementedError('must be implemented in subclass')
    +
    +    # TODO: из-за метода get_description на эту фунцию налагется больше требований чем тут написано
    +    def get_jsonable_from_parameters(self):
    +        """
    +        Transform self.parameters to something that can be downloaded as json.
    +
    +        Parameters
    +        ----------
    +
    +        Returns
    +        -------
    +        optional
    +            something jsonable
    +
    +        """
    +        return self.parameters
    +
    +    def _train_models(self, experiment, topic_model, dataset, search_space):
    +        """
    +        This function trains models
    +        """
    +        dataset_trainable = dataset._transform_data_for_training()
    +        dataset_dictionary = dataset.get_dictionary()
    +        returned_paths = []
    +        experiment_save_path = experiment.save_path
    +        experiment_id = experiment.experiment_id
    +        save_folder = os.path.join(experiment_save_path, experiment_id)
    +        for search_point in search_space:
    +            candidate_name = get_timestamp_in_str_format()
    +            new_model_id = padd_model_name(candidate_name)
    +            new_model_save_path = os.path.join(save_folder, new_model_id)
    +            model_index = 0
    +            while os.path.exists(new_model_save_path):
    +                model_index += 1
    +                new_model_id = padd_model_name("{0}{1:_>5}".format(candidate_name, model_index))
    +                new_model_save_path = os.path.join(save_folder, new_model_id)
    +
    +            model_cube = {
    +                "action": self.action,
    +                "num_iter": self.num_iter,
    +                "params": repr(search_point)
    +            }
    +
    +            try:
    +                # alter the model according to cube parameters
    +                new_model = self.apply(topic_model, search_point, dataset_dictionary, new_model_id)
    +                # train new model for a number of iterations (might be zero)
    +                new_model._fit(
    +                    dataset_trainable=dataset_trainable,
    +                    num_iterations=self.num_iter
    +                )
    +            except ArtmException as e:
    +                error_message = repr(e)
    +                raise ValueError(
    +                    f'Cannot alter and fit artm model with parameters {search_point}.\n'
    +                    "ARTM failed with following: " + error_message
    +
    +                )
    +            # add cube description to the model history
    +            new_model.add_cube(model_cube)
    +            new_model.experiment = experiment
    +            new_model.save()
    +            assert os.path.exists(new_model.model_default_save_path)
    +
    +            returned_paths.append(new_model.model_default_save_path)
    +
    +            # some strategies depend on previous train results, therefore scores must be updated
    +            if self.tracked_score_function:
    +                current_score = self.tracked_score_function(new_model)
    +                self.strategy.update_scores(current_score)
    +            # else:
    +                # we return number of iterations as a placeholder
    +                # current_score = len(returned_paths)
    +
    +        return returned_paths
    +
    +    def _retrieve_results_from_process(self, queue, experiment):
    +        from ..models import DummyTopicModel
    +        models_num = get_from_queue_till_fail(queue, NUM_MODELS_ERROR)
    +        topic_models = []
    +        for _ in range(models_num):
    +            path = get_from_queue_till_fail(queue,
    +                                            MODEL_RETRIEVE_ERROR.format(_, models_num))
    +            topic_models.append(DummyTopicModel.load(path, experiment=experiment))
    +
    +        strategy_parameters = get_from_queue_till_fail(queue, STRATEGY_RETRIEVE_ERROR)
    +        caught_warnings = get_from_queue_till_fail(queue, WARNINGS_RETRIEVE_ERROR)
    +        self.strategy._set_strategy_parameters(strategy_parameters)
    +
    +        for (warning_message, warning_class) in caught_warnings:
    +            # if issubclass(warning_class, UserWarning):
    +            warnings.warn(warning_message)
    +
    +        return topic_models
    +
    +    def _train_models_and_report_results(self, queue, experiment, topic_model, dataset,
    +                                         search_space, search_length):
    +        """
    +        This function trains models in separate thread, saves them
    +        and returns all paths for save with respect to train order.
    +        To preserve train order model number is also returned.
    +
    +        """
    +        with warnings.catch_warnings(record=True) as caught_warnings:
    +            returned_paths = self._train_models(experiment, topic_model, dataset, search_space)
    +            put_to_queue(queue, len(returned_paths))
    +            for path in returned_paths:
    +                put_to_queue(queue, path)
    +
    +            # to work with strategy we recover consistency by sending important parameters
    +            strategy_parameters = self.strategy._get_strategy_parameters(saveable_only=True)
    +            put_to_queue(queue, strategy_parameters)
    +
    +            caught_warnings = [(warning.message, warning.category)
    +                               for warning in caught_warnings]
    +            put_to_queue(queue, caught_warnings)
    +
    +    def _run_cube(self, topic_model, dataset):
    +        """
    +        Apply cube to topic_model. Get new models and fit them on batch_vectorizer.
    +        Return list of all trained models.
    +
    +        Parameters
    +        ----------
    +        topic_model : TopicModel
    +        dataset : Dataset
    +
    +        Returns
    +        -------
    +        TopicModel
    +
    +        """
    +
    +        from ..models import DummyTopicModel
    +        if isinstance(topic_model, DummyTopicModel):
    +            topic_model = topic_model.restore()
    +
    +        # create log
    +        # TODO: будет странно работать, если бесконечный список
    +        parameter_description = self.get_jsonable_from_parameters()
    +        cube_description = {
    +                'action': self.action,
    +                'params': parameter_description
    +        }
    +
    +        # at one level only one cube can be implemented
    +        if not check_experiment_existence(topic_model):
    +            raise ValueError("TopicModel has no experiment. You should create Experiment.")
    +        experiment = topic_model.experiment
    +        topic_model_depth_in_tree = topic_model.depth
    +        if topic_model_depth_in_tree < len(experiment.cubes):
    +            existed_cube = experiment.cubes[topic_model_depth_in_tree]
    +            if existed_cube['params'] != cube_description['params'] or \
    +                    existed_cube['action'] != cube_description['action']:
    +                error_message = (
    +                    "\nYou can not change strategy to another on this level in "
    +                    "this experiment.\n"
    +                    "If you want you can create another experiment with this "
    +                    "model with parameter new_experiment=True."
    +                    f"the existing cube is \n {existed_cube['params']} \n, "
    +                    f"but the proposed cube is \n {cube_description['params']} \n"
    +                )
    +                raise ValueError(error_message)
    +            is_new_exp_cube = False
    +        else:
    +            is_new_exp_cube = True
    +
    +        # perform all experiments
    +        self.strategy.prepare_grid(self.parameters, self.reg_search)
    +        search_space = self.strategy.grid_visit_generator(self.parameters, self.reg_search)
    +        search_length = getattr(self.strategy, 'grid_len', None)
    +
    +        if self.verbose:
    +            search_space = tqdm(search_space, total=search_length)
    +
    +        if self.separate_thread:
    +            queue = Queue()
    +            process = Process(
    +                target=self._train_models_and_report_results,
    +                args=(queue, experiment, topic_model, dataset,
    +                      search_space, search_length),
    +                daemon=True
    +            )
    +            process.start()
    +            topic_models = self._retrieve_results_from_process(queue, experiment)
    +        else:
    +            returned_paths = self._train_models(experiment, topic_model, dataset, search_space)
    +            topic_models = [
    +                DummyTopicModel.load(path, experiment=experiment)
    +                for path in returned_paths
    +            ]
    +
    +        for topic_model in topic_models:
    +            topic_model.data_path = dataset._data_path
    +            experiment.add_model(topic_model)
    +
    +        if is_new_exp_cube:
    +            experiment.add_cube(cube_description)
    +
    +        return topic_models
    +
    +    def __call__(self, topic_model_input, dataset):
    +        """
    +        Apply cube to topic_model. Get new models and fit them on batch_vectorizer.
    +        Return list of all trained models.
    +
    +        Parameters
    +        ----------
    +        topic_model_input: TopicModel or list of TopicModel
    +        dataset: Dataset
    +
    +        Returns
    +        -------
    +        list of TopicModel
    +
    +        """
    +        if isinstance(topic_model_input, (list, set)):
    +            results = [
    +                self._run_cube(topic_model, dataset)
    +                for topic_model in topic_model_input
    +            ]
    +            return results
    +        return self._run_cube(topic_model_input, dataset)
    +
    @@ -42,12 +397,56 @@

    Returns

    bool
    True if experiment exists, in other case False.
    +
    + +Expand source code + +
    def check_experiment_existence(topic_model):
    +    """
    +    Checks if topic_model has experiment.
    +
    +    Parameters
    +    ----------
    +    topic_model : TopicModel
    +        topic model
    +
    +    Returns
    +    -------
    +    bool
    +        True if experiment exists, in other case False.
    +
    +    """
    +    is_experiment = topic_model.experiment is not None
    +
    +    return is_experiment
    +
    -def get_from_queue_till_fail(queue, error_message='', fail_margin=1) +def get_from_queue_till_fail(queue, error_message='')
    +
    + +Expand source code + +
    def get_from_queue_till_fail(queue,  error_message='',):
    +    while True:
    +        return queue.get()
    +
    +
    +
    +def put_to_queue(queue, puttable) +
    +
    +
    +
    + +Expand source code + +
    def put_to_queue(queue, puttable):
    +    queue.put(puttable)
    +
    @@ -81,6 +480,301 @@

    Parameters

    separate_thread : bool
    will train models inside a separate thread if True
    +
    + +Expand source code + +
    class BaseCube:
    +    """
    +    Abstract class for all cubes.
    +
    +    """
    +    def __init__(self, num_iter, action=None, reg_search="grid",
    +                 strategy=None, tracked_score_function=None,
    +                 verbose=False, separate_thread=True):
    +        """
    +        Initialize stage.
    +        Checks params and update .parameters attribute.
    +
    +        Parameters
    +        ----------
    +        num_iter : int
    +            number of iterations or method
    +        action : str
    +            stage of creation
    +        reg_search : str
    +            "grid" or "pair". "pair" for elementwise grid search in the case
    +            of several regularizers, "grid" for the fullgrid search in the
    +            case of several regularizers
    +        strategy : BaseStrategy
    +            optimization approach
    +        tracked_score_function : str or callable
    +            optimizable function for strategy
    +        verbose : bool
    +            visualization flag
    +        separate_thread : bool
    +            will train models inside a separate thread if True
    +
    +        """
    +        self.num_iter = num_iter
    +        self.parameters = []
    +        self.action = action
    +        self.reg_search = reg_search
    +        if not strategy:
    +            strategy = BaseStrategy()
    +        self.strategy = strategy
    +        self.verbose = verbose
    +        self.separate_thread = separate_thread
    +
    +        if isinstance(tracked_score_function, str):
    +            tracked_score_function = retrieve_score_for_strategy(tracked_score_function)
    +        self.tracked_score_function = tracked_score_function
    +
    +    def apply(self, topic_model, one_cube_parameter, dictionary=None, model_id=None):
    +        """
    +        "apply" method changes topic_model in way that is defined by one_cube_parameter.
    +
    +        Parameters
    +        ----------
    +        topic_model : TopicModel
    +            topic model
    +        one_cube_parameter : optional
    +            parameters of one experiment
    +        dictionary : dict
    +            dictionary so that the it can be used
    +            on the basis of the model (Default value = None)
    +        model_id : str
    +            id of created model if necessary (Default value = None)
    +
    +        Returns
    +        -------
    +
    +        """
    +        raise NotImplementedError('must be implemented in subclass')
    +
    +    # TODO: из-за метода get_description на эту фунцию налагется больше требований чем тут написано
    +    def get_jsonable_from_parameters(self):
    +        """
    +        Transform self.parameters to something that can be downloaded as json.
    +
    +        Parameters
    +        ----------
    +
    +        Returns
    +        -------
    +        optional
    +            something jsonable
    +
    +        """
    +        return self.parameters
    +
    +    def _train_models(self, experiment, topic_model, dataset, search_space):
    +        """
    +        This function trains models
    +        """
    +        dataset_trainable = dataset._transform_data_for_training()
    +        dataset_dictionary = dataset.get_dictionary()
    +        returned_paths = []
    +        experiment_save_path = experiment.save_path
    +        experiment_id = experiment.experiment_id
    +        save_folder = os.path.join(experiment_save_path, experiment_id)
    +        for search_point in search_space:
    +            candidate_name = get_timestamp_in_str_format()
    +            new_model_id = padd_model_name(candidate_name)
    +            new_model_save_path = os.path.join(save_folder, new_model_id)
    +            model_index = 0
    +            while os.path.exists(new_model_save_path):
    +                model_index += 1
    +                new_model_id = padd_model_name("{0}{1:_>5}".format(candidate_name, model_index))
    +                new_model_save_path = os.path.join(save_folder, new_model_id)
    +
    +            model_cube = {
    +                "action": self.action,
    +                "num_iter": self.num_iter,
    +                "params": repr(search_point)
    +            }
    +
    +            try:
    +                # alter the model according to cube parameters
    +                new_model = self.apply(topic_model, search_point, dataset_dictionary, new_model_id)
    +                # train new model for a number of iterations (might be zero)
    +                new_model._fit(
    +                    dataset_trainable=dataset_trainable,
    +                    num_iterations=self.num_iter
    +                )
    +            except ArtmException as e:
    +                error_message = repr(e)
    +                raise ValueError(
    +                    f'Cannot alter and fit artm model with parameters {search_point}.\n'
    +                    "ARTM failed with following: " + error_message
    +
    +                )
    +            # add cube description to the model history
    +            new_model.add_cube(model_cube)
    +            new_model.experiment = experiment
    +            new_model.save()
    +            assert os.path.exists(new_model.model_default_save_path)
    +
    +            returned_paths.append(new_model.model_default_save_path)
    +
    +            # some strategies depend on previous train results, therefore scores must be updated
    +            if self.tracked_score_function:
    +                current_score = self.tracked_score_function(new_model)
    +                self.strategy.update_scores(current_score)
    +            # else:
    +                # we return number of iterations as a placeholder
    +                # current_score = len(returned_paths)
    +
    +        return returned_paths
    +
    +    def _retrieve_results_from_process(self, queue, experiment):
    +        from ..models import DummyTopicModel
    +        models_num = get_from_queue_till_fail(queue, NUM_MODELS_ERROR)
    +        topic_models = []
    +        for _ in range(models_num):
    +            path = get_from_queue_till_fail(queue,
    +                                            MODEL_RETRIEVE_ERROR.format(_, models_num))
    +            topic_models.append(DummyTopicModel.load(path, experiment=experiment))
    +
    +        strategy_parameters = get_from_queue_till_fail(queue, STRATEGY_RETRIEVE_ERROR)
    +        caught_warnings = get_from_queue_till_fail(queue, WARNINGS_RETRIEVE_ERROR)
    +        self.strategy._set_strategy_parameters(strategy_parameters)
    +
    +        for (warning_message, warning_class) in caught_warnings:
    +            # if issubclass(warning_class, UserWarning):
    +            warnings.warn(warning_message)
    +
    +        return topic_models
    +
    +    def _train_models_and_report_results(self, queue, experiment, topic_model, dataset,
    +                                         search_space, search_length):
    +        """
    +        This function trains models in separate thread, saves them
    +        and returns all paths for save with respect to train order.
    +        To preserve train order model number is also returned.
    +
    +        """
    +        with warnings.catch_warnings(record=True) as caught_warnings:
    +            returned_paths = self._train_models(experiment, topic_model, dataset, search_space)
    +            put_to_queue(queue, len(returned_paths))
    +            for path in returned_paths:
    +                put_to_queue(queue, path)
    +
    +            # to work with strategy we recover consistency by sending important parameters
    +            strategy_parameters = self.strategy._get_strategy_parameters(saveable_only=True)
    +            put_to_queue(queue, strategy_parameters)
    +
    +            caught_warnings = [(warning.message, warning.category)
    +                               for warning in caught_warnings]
    +            put_to_queue(queue, caught_warnings)
    +
    +    def _run_cube(self, topic_model, dataset):
    +        """
    +        Apply cube to topic_model. Get new models and fit them on batch_vectorizer.
    +        Return list of all trained models.
    +
    +        Parameters
    +        ----------
    +        topic_model : TopicModel
    +        dataset : Dataset
    +
    +        Returns
    +        -------
    +        TopicModel
    +
    +        """
    +
    +        from ..models import DummyTopicModel
    +        if isinstance(topic_model, DummyTopicModel):
    +            topic_model = topic_model.restore()
    +
    +        # create log
    +        # TODO: будет странно работать, если бесконечный список
    +        parameter_description = self.get_jsonable_from_parameters()
    +        cube_description = {
    +                'action': self.action,
    +                'params': parameter_description
    +        }
    +
    +        # at one level only one cube can be implemented
    +        if not check_experiment_existence(topic_model):
    +            raise ValueError("TopicModel has no experiment. You should create Experiment.")
    +        experiment = topic_model.experiment
    +        topic_model_depth_in_tree = topic_model.depth
    +        if topic_model_depth_in_tree < len(experiment.cubes):
    +            existed_cube = experiment.cubes[topic_model_depth_in_tree]
    +            if existed_cube['params'] != cube_description['params'] or \
    +                    existed_cube['action'] != cube_description['action']:
    +                error_message = (
    +                    "\nYou can not change strategy to another on this level in "
    +                    "this experiment.\n"
    +                    "If you want you can create another experiment with this "
    +                    "model with parameter new_experiment=True."
    +                    f"the existing cube is \n {existed_cube['params']} \n, "
    +                    f"but the proposed cube is \n {cube_description['params']} \n"
    +                )
    +                raise ValueError(error_message)
    +            is_new_exp_cube = False
    +        else:
    +            is_new_exp_cube = True
    +
    +        # perform all experiments
    +        self.strategy.prepare_grid(self.parameters, self.reg_search)
    +        search_space = self.strategy.grid_visit_generator(self.parameters, self.reg_search)
    +        search_length = getattr(self.strategy, 'grid_len', None)
    +
    +        if self.verbose:
    +            search_space = tqdm(search_space, total=search_length)
    +
    +        if self.separate_thread:
    +            queue = Queue()
    +            process = Process(
    +                target=self._train_models_and_report_results,
    +                args=(queue, experiment, topic_model, dataset,
    +                      search_space, search_length),
    +                daemon=True
    +            )
    +            process.start()
    +            topic_models = self._retrieve_results_from_process(queue, experiment)
    +        else:
    +            returned_paths = self._train_models(experiment, topic_model, dataset, search_space)
    +            topic_models = [
    +                DummyTopicModel.load(path, experiment=experiment)
    +                for path in returned_paths
    +            ]
    +
    +        for topic_model in topic_models:
    +            topic_model.data_path = dataset._data_path
    +            experiment.add_model(topic_model)
    +
    +        if is_new_exp_cube:
    +            experiment.add_cube(cube_description)
    +
    +        return topic_models
    +
    +    def __call__(self, topic_model_input, dataset):
    +        """
    +        Apply cube to topic_model. Get new models and fit them on batch_vectorizer.
    +        Return list of all trained models.
    +
    +        Parameters
    +        ----------
    +        topic_model_input: TopicModel or list of TopicModel
    +        dataset: Dataset
    +
    +        Returns
    +        -------
    +        list of TopicModel
    +
    +        """
    +        if isinstance(topic_model_input, (list, set)):
    +            results = [
    +                self._run_cube(topic_model, dataset)
    +                for topic_model in topic_model_input
    +            ]
    +            return results
    +        return self._run_cube(topic_model_input, dataset)
    +

    Subclasses

    • RegularizersModifierCube
    • @@ -107,6 +801,32 @@

      Parameters

      id of created model if necessary (Default value = None)

      Returns

      +
      + +Expand source code + +
      def apply(self, topic_model, one_cube_parameter, dictionary=None, model_id=None):
      +    """
      +    "apply" method changes topic_model in way that is defined by one_cube_parameter.
      +
      +    Parameters
      +    ----------
      +    topic_model : TopicModel
      +        topic model
      +    one_cube_parameter : optional
      +        parameters of one experiment
      +    dictionary : dict
      +        dictionary so that the it can be used
      +        on the basis of the model (Default value = None)
      +    model_id : str
      +        id of created model if necessary (Default value = None)
      +
      +    Returns
      +    -------
      +
      +    """
      +    raise NotImplementedError('must be implemented in subclass')
      +
      def get_jsonable_from_parameters(self) @@ -119,6 +839,25 @@

      Returns

      optional
      something jsonable
      +
      + +Expand source code + +
      def get_jsonable_from_parameters(self):
      +    """
      +    Transform self.parameters to something that can be downloaded as json.
      +
      +    Parameters
      +    ----------
      +
      +    Returns
      +    -------
      +    optional
      +        something jsonable
      +
      +    """
      +    return self.parameters
      +
      @@ -128,6 +867,20 @@

      Returns

      +
      + +Expand source code + +
      class retrieve_score_for_strategy:
      +    def __init__(self, score_name):
      +        self.score_name = score_name
      +
      +    def __call__(self, model):
      +        if isinstance(model, str):
      +            self.score_name = model
      +        else:
      +            return model.scores[self.score_name][-1]
      +
      @@ -147,6 +900,7 @@

      Index

    • Classes

      @@ -167,7 +921,9 @@

      -

      Generated by pdoc 0.6.3.

      +

      Generated by pdoc 0.7.2.

      + + \ No newline at end of file diff --git a/docs/cooking_machine/cubes/controller_cube.html b/docs/cooking_machine/cubes/controller_cube.html index 252e493..18d284b 100644 --- a/docs/cooking_machine/cubes/controller_cube.html +++ b/docs/cooking_machine/cubes/controller_cube.html @@ -3,13 +3,14 @@ - + topicnet.cooking_machine.cubes.controller_cube API documentation - + + @@ -37,64 +38,31 @@

      Fields

      We assume that if that metric is 'sort of decreasing', then everything is OK and we are allowed to change tau coefficient further; otherwise we revert back to the last "safe" value and stop

      -

      More formal definition of "sort of decreasing": if we divide a curve into two parts like so: -##################################### -#. . . .. . . . .. -. .. . . -… . # -#%. . . -. . . . -.. . . . . . -. ..# -#:t . . . . . . . . . . . . . . . -.# -# t: . . . . . . . . . . . . . . …# -#. %. . . . . . . . . . . . . . . -.# -#. :t. . . . . . . . . -. -. . . . .# -#.. ;; . . -. . . . -. . . . -. . ..# -# -..t.. -. . -. . . . . . . . . . .# -#. . :t .. . . . -. . . . . . . . ..# -#. .. t: . . . . . . . . . . . . . .# -#. -..S: . . . . . . . . . . . . ..# -#. . . .:;: . . . . . -. . . . . . .# -#. . . -. :;; -. . . . . . . . . . .# -#. . . . .. :%. -nmmMMmmn -. -.# -# . -. . -. .tt%.ztttt"' '""ttttttt# -#. . . -. . . '"' . . . . . . . . # -##################################### -| -| -| -| -left part -| -| -global minimum -| -| -right part -| -then the right part is no higher than 5% of global minimum +

      More formal definition of "sort of decreasing": if we divide a curve into two parts like so:

      +
      ##################################### 
      +#. . . .. . . . ..  . .. . .  ... . # 
      +#%. . .  . . . .  .. . . . . .  . ..# 
      +#:t . . . . . . . . . . . . . . .  .# 
      +# t: . . . . . . . . . . . . . . ...# 
      +#. %. . . . . . . . . . . . . . .  .# 
      +#. :t. . . . . . . . .  .  . . . . .# 
      +#.. ;; . .  . . . .  . . . .  . . ..# 
      +#  ..t..  . .  . . . . . . . . . . .# 
      +#. . :t .. . . .  . . . . . . . . ..# 
      +#. .. t: . . . . . . . . . . . . . .# 
      +#.   ..S: . . . . . . . . . . . . ..# 
      +#. . . .:;: . . . . .  . . . . . . .# 
      +#. . .  . :;;  . . . . . . . . . . .# 
      +#. . . . .. :%.      nmmMMmmn   .  .# 
      +# .   . .  . .tt%.ztttt"' '""ttttttt# 
      +#. . .    . . . '"' . . . . . . . . # 
      +##################################### 
      +|                |                  | 
      +|   left part    |                  | 
      +           global minimum           | 
      +                 |     right part   |
      +
      +

      then the right part is no higher than 5% of global minimum (you can change 5% if you like by adjusting fraction_threshold in is_score_out_of_control() function)

      If score_to_track is None, then ControllerAgent will never stop @@ -104,56 +72,44 @@

      Fields

      Notably, def-style functions and lambda functions are allowed If it is function, then it should accept four arguments: -(initial_tau, prev_tau, cur_iter, user_value) +(initial_tau, prev_tau, cur_iter, user_value) For example:

      -
      -
      -

      lambda initial_tau, prev_tau, cur_iter, user_value: -initial_tau if cur_iter % 2 == 0 else 0

      -
      -
      -
      (Note that experiment description might display lambda functions incorrectly;
      - Try to keep them to a single line or use def-style functions instead)
      +
      >> lambda initial_tau, prev_tau, cur_iter, user_value:
      +>>     initial_tau if cur_iter % 2 == 0 else 0
      +
      +

      (Note that experiment description might display lambda functions incorrectly; +Try to keep them to a single line or use def-style functions instead)

      +
      >> def func(initial_tau, prev_tau, cur_iter, user_value):
      +>>     relu_grower = user_value * (cur_iter - 8) if cur_iter > 8 else 0
      +>>     return 0 if cur_iter % 2 else relu_grower
       
      -
      -
      -

      def func(initial_tau, prev_tau, cur_iter, user_value): -relu_grower = user_value * (cur_iter - 8) if cur_iter > 8 else 0 -return 0 if cur_iter % 2 else relu_grower

      -
      -

      If it is a string, then it should be an expression consisting of numbers, operations -and variables (four are allowed: initial_tau, prev_tau, cur_iter, user_value) +and variables (four are allowed: initial_tau, prev_tau, cur_iter, user_value) For example:

      -
      -
      -

      "initial_tau * ((cur_iter + 1) % 2)" -or -"prev_tau * user_value"

      -
      -
      +

      >> "initial_tau * ((cur_iter + 1) % 2)"

      +

      or

      +

      >> "prev_tau * user_value"

      user_value_grid : list of numeric

      Values for user_value variable When writing tau_converter, you can use user_value variable.

      For example:

      -
      -
      -

      tau_converter: "prev_tau * user_value" -user_value_grid: [1, 0.99, 0.95, 0.90, 0.80, 0.5] -(I know that tau should decay exponentially, but I'm unsure of exact half-life)

      -

      tau_converter: "prev_tau + user_value" -user_value_grid: [50, 100, 150, 200, 250] -(I know that tau should increase linearly, but I'm unsure of exact speed)

      -

      def func(initial_tau, prev_tau, cur_iter, user_value): -new_tau = 50 * (cur_iter - user_value) if cur_iter > user_value else 0 -return new_tau -tau_converter: func -user_value_grid: [10, 15, 20, 25, 30] -(Tau should start with zero, then increase linearly. I don't know when to start this process)

      -
      -
      +
      >> tau_converter: "prev_tau * user_value"
      +>> user_value_grid: [1, 0.99, 0.95, 0.90, 0.80, 0.5]
      +
      +

      (I know that tau should decay exponentially, but I'm unsure of exact half-life)

      +
      >> tau_converter: "prev_tau + user_value"
      +>> user_value_grid: [50, 100, 150, 200, 250]
      +
      +

      (I know that tau should increase linearly, but I'm unsure of exact speed)

      +
      >> def func(initial_tau, prev_tau, cur_iter, user_value):
      +>>     new_tau = 50 * (cur_iter - user_value) if cur_iter > user_value else 0
      +>>     return new_tau
      +>> tau_converter: func
      +>> user_value_grid: [10, 15, 20, 25, 30]
      +
      +

      (Tau should start with zero, then increase linearly. I don't know when to start this process)

      max_iter : numeric
      Optional (default value is num_iter specified for cube) @@ -161,6 +117,436 @@

      Fields

      max_iters could be float("NaN") and float("inf") values: that way agent will continue operating even outside this RegularizationControllerCube
      +
      + +Expand source code + +
      """
      +Allows to add `ControllerAgent` (with unknown parameters) to the model, which enables user to
      +change `tau` during the `_fit` method.
      +
      +
      +`parameters` is a dict with four fields:
      +
      +Fields
      +------
      +reg_name: str
      +    The name of regularizer. We want to change the tau coefficient of it during training
      +    Note that only one of ("reg_name", "regularizer") should be provided
      +regularizer: artm.regularizer.Regularizer
      +    Regularizer object (if we want to add non-existing regularizer to the model)
      +    Note that only one of ("reg_name", "regularizer") should be provided
      +score_to_track: str
      +    The name of metric which we will track.
      +    We assume that if that metric is 'sort of decreasing', then everything is OK
      +    and we are allowed to change tau coefficient further; otherwise we revert back
      +    to the last "safe" value and stop
      +
      +    More formal definition of "sort of decreasing": if we divide a curve into two parts like so:
      +
      +
      +        ##################################### 
      +        #. . . .. . . . ..  . .. . .  ... . # 
      +        #%. . .  . . . .  .. . . . . .  . ..# 
      +        #:t . . . . . . . . . . . . . . .  .# 
      +        # t: . . . . . . . . . . . . . . ...# 
      +        #. %. . . . . . . . . . . . . . .  .# 
      +        #. :t. . . . . . . . .  .  . . . . .# 
      +        #.. ;; . .  . . . .  . . . .  . . ..# 
      +        #  ..t..  . .  . . . . . . . . . . .# 
      +        #. . :t .. . . .  . . . . . . . . ..# 
      +        #. .. t: . . . . . . . . . . . . . .# 
      +        #.   ..S: . . . . . . . . . . . . ..# 
      +        #. . . .:;: . . . . .  . . . . . . .# 
      +        #. . .  . :;;  . . . . . . . . . . .# 
      +        #. . . . .. :%.      nmmMMmmn   .  .# 
      +        # .   . .  . .tt%.ztttt"' '""ttttttt# 
      +        #. . .    . . . '"' . . . . . . . . # 
      +        ##################################### 
      +        |                |                  | 
      +        |   left part    |                  | 
      +                   global minimum           | 
      +                         |     right part   | 
      +
      +    then the right part is no higher than 5% of global minimum
      +    (you can change 5% if you like by adjusting `fraction_threshold`
      +     in `is_score_out_of_control` function)
      +
      +    If score_to_track is None, then `ControllerAgent` will never stop
      +    (useful for e.g. decaying coefficients)
      +
      +tau_converter: str or callable
      +    Notably, def-style functions and lambda functions are allowed
      +    If it is function, then it should accept four arguments:
      +        `(initial_tau, prev_tau, cur_iter, user_value)`
      +    For example:
      +
      +        >> lambda initial_tau, prev_tau, cur_iter, user_value:
      +        >>     initial_tau if cur_iter % 2 == 0 else 0
      +
      +    (Note that experiment description might display lambda functions incorrectly;
      +     Try to keep them to a single line or use def-style functions instead)
      +
      +        >> def func(initial_tau, prev_tau, cur_iter, user_value):
      +        >>     relu_grower = user_value * (cur_iter - 8) if cur_iter > 8 else 0
      +        >>     return 0 if cur_iter % 2 else relu_grower
      +
      +    If it is a string, then it should be an expression consisting of numbers, operations
      +        and variables (four are allowed: `initial_tau, prev_tau, cur_iter, user_value`)
      +    For example:
      +
      +    `>> "initial_tau * ((cur_iter + 1) % 2)"`
      +
      +    or
      +
      +    `>> "prev_tau * user_value"`
      +
      +user_value_grid: list of numeric
      +    Values for user_value variable
      +    When writing `tau_converter`, you can use user_value variable.
      +
      +    For example:
      +
      +        >> tau_converter: "prev_tau * user_value"
      +        >> user_value_grid: [1, 0.99, 0.95, 0.90, 0.80, 0.5]
      +
      +    (I know that tau should decay exponentially, but I'm unsure of exact half-life)
      +
      +        >> tau_converter: "prev_tau + user_value"
      +        >> user_value_grid: [50, 100, 150, 200, 250]
      +
      +    (I know that tau should increase linearly, but I'm unsure of exact speed)
      +
      +        >> def func(initial_tau, prev_tau, cur_iter, user_value):
      +        >>     new_tau = 50 * (cur_iter - user_value) if cur_iter > user_value else 0
      +        >>     return new_tau
      +        >> tau_converter: func
      +        >> user_value_grid: [10, 15, 20, 25, 30]
      +
      +    (Tau should start with zero, then increase linearly. I don't know when to start this process)
      +
      +max_iter: numeric
      +    Optional (default value is `num_iter` specified for cube)
      +    Agent will stop changing tau after `max_iters` iterations
      +    `max_iters` could be `float("NaN")` and `float("inf")` values:
      +    that way agent will continue operating even outside this `RegularizationControllerCube`
      +"""  # noqa: W291
      +
      +from .base_cube import BaseCube
      +from ..rel_toolbox_lite import count_vocab_size, handle_regularizer
      +
      +import numexpr as ne
      +import warnings
      +from dill.source import getsource
      +from copy import deepcopy
      +import numpy as np
      +
      +
      +W_HALT_CONTROL = "Process of dynamically changing tau was stopped at {} iteration"
      +W_MAX_ITERS = "Maximum number of iterations is exceeded; turning off"
      +
      +
      +def is_score_out_of_control(model, score_name, fraction_threshold=0.05):
      +    """
      +    Returns True if score isn't 'sort of decreasing' anymore.
      +
      +    See docstring for RegularizationControllerCube for details
      +
      +    Parameters
      +    ----------
      +    model : TopicModel
      +    score_name : str or None
      +    fraction_threshold : float
      +
      +    Returns
      +    -------
      +    bool
      +
      +    """
      +
      +    if score_name not in model.scores:  # case of None is handled here as well
      +        return False
      +
      +    vals = model.scores[score_name]
      +    if len(vals) == 0:
      +        return False
      +
      +    idxmin = np.argmin(vals)
      +
      +    if idxmin == len(vals):  # score is monotonically decreasing
      +        return False
      +    maxval = max(vals[idxmin:])
      +    minval = vals[idxmin]
      +    answer = ((maxval - minval)/abs(minval) - 1.0) > fraction_threshold
      +    if answer:
      +        msg = (f"Score {score_name} is too high: during training the value {maxval}"
      +               f" passed a treshold of {(1 + fraction_threshold) * minval}"
      +               f" (estimate is based on {idxmin} iteration)")
      +        warnings.warn(msg)
      +    return answer
      +
      +
      +class ControllerAgent:
      +    """
      +    Allows to change `tau` during the `_fit` method.
      +
      +    Each `TopicModel` has a `.callbacks` attribute.
      +    This is a list consisting of various `ControllerAgent`s.
      +    Each agent is described by:
      +
      +    * reg_name: the name of regularizer having `tau` which needs to be changed
      +    * score_to_track: score providing control of the callback execution
      +    * tau_converter: function or string describing how to get new `tau` from old `tau`
      +    * local_dict: dictionary containing values of several variables,
      +            most notably, `user_value`
      +    * is_working:
      +            if True, agent will attempt to change tau until something breaks.
      +            if False, agent will assume that something had been broken and will
      +            revert to the last known safe value (without trying to change anything further)
      +
      +    See top-level docstring for details.
      +    """
      +    def __init__(self, reg_name, score_to_track, tau_converter, max_iters, local_dict=dict()):
      +        """
      +
      +        Parameters
      +        ----------
      +        reg_name : str
      +        score_to_track : str or None
      +        tau_converter : callable or str
      +        local_dict : dict
      +        max_iters : int or float
      +            Agent will stop changing tau after `max_iters` iterations
      +            `max_iters` could be `float("NaN")` and `float("inf")` values:
      +            that way agent will continue operating even outside this `RegularizationControllerCube`
      +        """
      +        self.reg_name = reg_name
      +        self.tau_converter = tau_converter
      +        self.score_to_track = score_to_track
      +        self.is_working = True
      +        self.local_dict = local_dict
      +        self.tau_history = []
      +        self.max_iters = max_iters
      +
      +    def _convert_tau(self):
      +        """ """
      +        if isinstance(self.tau_converter, str):
      +            new_tau = ne.evaluate(self.tau_converter, local_dict=self.local_dict)
      +            # numexpr returns np.ndarray (which is a scalar in our case)
      +            new_tau = float(new_tau)
      +        else:
      +            new_tau = self.tau_converter(**self.local_dict)
      +        return new_tau
      +
      +    def _find_safe_tau(self):
      +        """ """
      +        if len(self.tau_history) < 2:
      +            warnings.warn("Reverting tau to 0")
      +            safe_tau = 0
      +        else:
      +            safe_tau = self.tau_history[-2]
      +        return safe_tau
      +
      +    def invoke(self, model, cur_iter):
      +        """
      +        Attempts to change tau if `is_working == True`. Otherwise, keeps to the last safe value.
      +
      +        Parameters
      +        ----------
      +        model : TopicModel
      +        cur_iter : int
      +            Note that zero means "cube just started", not "the model is brand new"
      +
      +        """
      +        current_tau = model.regularizers[self.reg_name].tau
      +        self.tau_history.append(current_tau)
      +        self.local_dict["prev_tau"] = current_tau
      +        self.local_dict["cur_iter"] = cur_iter
      +
      +        if "initial_tau" not in self.local_dict:
      +            self.local_dict["initial_tau"] = current_tau
      +
      +        if self.is_working and len(self.tau_history) > self.max_iters:
      +            warnings.warn(W_MAX_ITERS)
      +            self.is_working = False
      +
      +        if self.is_working:
      +            should_stop = is_score_out_of_control(model, self.score_to_track)
      +            if should_stop:
      +                warnings.warn(W_HALT_CONTROL.format(len(self.tau_history)))
      +                self.is_working = False
      +                model.regularizers[self.reg_name].tau = self._find_safe_tau()
      +            else:
      +                model.regularizers[self.reg_name].tau = self._convert_tau()
      +
      +
      +class RegularizationControllerCube(BaseCube):
      +    def __init__(self, num_iter: int, parameters,
      +                 reg_search='grid', use_relative_coefficients: bool = True, strategy=None,
      +                 tracked_score_function=None, verbose: bool = False, separate_thread: bool = True):
      +        """
      +        Initialize stage. Checks params and update internal attributes.
      +
      +        Parameters
      +        ----------
      +        num_iter : int
      +            number of iterations or method
      +        parameters : list[dict] or dict
      +            regularizers params
      +            each dict should contain the following fields: 
      +                ("reg_name" or "regularizer"),
      +                "score_to_track" (optional),
      +                "tau_converter",
      +                "user_value_grid"
      +                See top-level docstring for details.
      +            Examples:
      +
      +                    >>  {"regularizer": artm.regularizers.<...>,
      +                    >>   "score_to_track": "PerplexityScore@all",
      +                    >>   "tau_converter": "prev_tau * user_value",
      +                    >>   "user_value_grid": [0.5, 1, 2]}
      +
      +
      +            -----------
      +
      +                    >>  {"reg_name": "decorrelator_for_ngramms",
      +                    >>   "score_to_track": None,
      +                    >>   "tau_converter": (
      +                    >>       lambda initial_tau, prev_tau, cur_iter, user_value:
      +                    >>       initial_tau * (cur_iter % 2) + user_value
      +                    >>   )
      +                    >>   "user_value_grid": [0, 1]}
      +
      +        reg_search : str
      +            "grid", "pair", "add" or "mul". 
      +            "pair" for elementwise grid search in the case of several regularizers 
      +            "grid" for the fullgrid search in the case of several regularizers 
      +            "add" and "mul" for the ariphmetic and geometric progression
      +            respectively for PerplexityStrategy 
      +            (Default value = "grid")
      +        use_relative_coefficients : bool
      +            forces the regularizer coefficient to be in relative form
      +            i.e. normalized over collection properties
      +        strategy : BaseStrategy
      +            optimization approach (Default value = None)
      +        tracked_score_function : str ot callable
      +            optimizable function for strategy (Default value = None)
      +        verbose : bool
      +            visualization flag (Default value = False)
      +
      +        """  # noqa: W291
      +        super().__init__(num_iter=num_iter, action='reg_controller',
      +                         reg_search=reg_search, strategy=strategy, verbose=verbose,
      +                         tracked_score_function=tracked_score_function,
      +                         separate_thread=separate_thread)
      +        self._relative = use_relative_coefficients
      +        self.data_stats = None
      +        self.raw_parameters = parameters
      +        if isinstance(parameters, dict):
      +            parameters = [parameters]
      +        self._convert_parameters(parameters)
      +
      +    def _convert_parameters(self, all_parameters):
      +        """
      +
      +        Parameters
      +        ----------
      +        all_parameters : list of dict
      +
      +        """
      +        for params_dict in all_parameters:
      +            assert ("reg_name" in params_dict) != ("regularizer" in params_dict)
      +            if "regularizer" in params_dict:
      +                assert params_dict["regularizer"].tau is not None
      +
      +        self.parameters = [
      +            {
      +                "object": {
      +                    "reg_name": params_dict.get("reg_name", None),
      +                    "regularizer": params_dict.get("regularizer", None),
      +                    "score_to_track": params_dict.get("score_to_track", None),
      +                    "tau_converter": params_dict["tau_converter"],
      +                    "local_dict": {"user_value": None},
      +                    "max_iters": params_dict.get("max_iters", self.num_iter)
      +                },
      +                "field": "callback",
      +                "values": params_dict.get('user_value_grid', [])
      +            }
      +            for params_dict in all_parameters
      +        ]
      +
      +    def apply(self, topic_model, one_model_parameter, dictionary=None, model_id=None):
      +        """
      +        Applies regularizers and controller agents to model
      +
      +        Parameters
      +        ----------
      +        topic_model : TopicModel
      +        one_model_parameter : list or tuple
      +        dictionary : Dictionary
      +            (Default value = None)
      +        model_id : str
      +            (Default value = None)
      +
      +        Returns
      +        -------
      +        TopicModel
      +
      +        """
      +        new_model = topic_model.clone(model_id)
      +        new_model.parent_model_id = topic_model.model_id
      +
      +        modalities = dict()
      +        if self._relative:
      +            modalities = new_model.class_ids
      +            if self.data_stats is None:
      +                self.data_stats = count_vocab_size(dictionary, modalities)
      +
      +        for (agent_blueprint_template, field_name, current_user_value) in one_model_parameter:
      +            agent_blueprint = dict(agent_blueprint_template)
      +            if agent_blueprint["reg_name"] is None:
      +                regularizer = agent_blueprint["regularizer"]
      +                new_regularizer = deepcopy(regularizer)
      +                handle_regularizer(
      +                    self._relative,
      +                    new_model,
      +                    new_regularizer,
      +                    self.data_stats,
      +                )
      +                agent_blueprint["reg_name"] = new_regularizer.name
      +            else:
      +                if agent_blueprint['reg_name'] not in new_model.regularizers.data:
      +                    error_msg = (f"Regularizer {agent_blueprint['reg_name']} does not exist. "
      +                                 f"Cannot be modified.")
      +                    raise ValueError(error_msg)
      +
      +            agent_blueprint['local_dict']['user_value'] = current_user_value
      +            # ControllerAgent needs only reg_name in constructor
      +            agent_blueprint.pop("regularizer")
      +            agent = ControllerAgent(**agent_blueprint)
      +            new_model.callbacks.append(agent)
      +        return new_model
      +
      +    def get_jsonable_from_parameters(self):
      +        """ """
      +        jsonable_parameters = []
      +
      +        for one_model_parameters in self.raw_parameters:
      +            one_jsonable = dict(one_model_parameters)
      +            converter = one_model_parameters['tau_converter']
      +
      +            if not isinstance(converter, str):
      +                try:
      +                    # not always works, but this is not important
      +                    one_jsonable["tau_converter"] = str(getsource(converter))
      +                except (TypeError, OSError):
      +                    # OSError: may arise if working in Jupyter Notebook
      +                    one_jsonable["tau_converter"] = "<NOT AVAILABLE>"
      +
      +            jsonable_parameters.append(one_jsonable)
      +
      +        return jsonable_parameters
      +
      @@ -189,6 +575,49 @@

      Returns

      bool
       
      +
      + +Expand source code + +
      def is_score_out_of_control(model, score_name, fraction_threshold=0.05):
      +    """
      +    Returns True if score isn't 'sort of decreasing' anymore.
      +
      +    See docstring for RegularizationControllerCube for details
      +
      +    Parameters
      +    ----------
      +    model : TopicModel
      +    score_name : str or None
      +    fraction_threshold : float
      +
      +    Returns
      +    -------
      +    bool
      +
      +    """
      +
      +    if score_name not in model.scores:  # case of None is handled here as well
      +        return False
      +
      +    vals = model.scores[score_name]
      +    if len(vals) == 0:
      +        return False
      +
      +    idxmin = np.argmin(vals)
      +
      +    if idxmin == len(vals):  # score is monotonically decreasing
      +        return False
      +    maxval = max(vals[idxmin:])
      +    minval = vals[idxmin]
      +    answer = ((maxval - minval)/abs(minval) - 1.0) > fraction_threshold
      +    if answer:
      +        msg = (f"Score {score_name} is too high: during training the value {maxval}"
      +               f" passed a treshold of {(1 + fraction_threshold) * minval}"
      +               f" (estimate is based on {idxmin} iteration)")
      +        warnings.warn(msg)
      +    return answer
      +
      @@ -231,6 +660,103 @@

      Parameters

      max_iters could be float("NaN") and float("inf") values: that way agent will continue operating even outside this RegularizationControllerCube +
      + +Expand source code + +
      class ControllerAgent:
      +    """
      +    Allows to change `tau` during the `_fit` method.
      +
      +    Each `TopicModel` has a `.callbacks` attribute.
      +    This is a list consisting of various `ControllerAgent`s.
      +    Each agent is described by:
      +
      +    * reg_name: the name of regularizer having `tau` which needs to be changed
      +    * score_to_track: score providing control of the callback execution
      +    * tau_converter: function or string describing how to get new `tau` from old `tau`
      +    * local_dict: dictionary containing values of several variables,
      +            most notably, `user_value`
      +    * is_working:
      +            if True, agent will attempt to change tau until something breaks.
      +            if False, agent will assume that something had been broken and will
      +            revert to the last known safe value (without trying to change anything further)
      +
      +    See top-level docstring for details.
      +    """
      +    def __init__(self, reg_name, score_to_track, tau_converter, max_iters, local_dict=dict()):
      +        """
      +
      +        Parameters
      +        ----------
      +        reg_name : str
      +        score_to_track : str or None
      +        tau_converter : callable or str
      +        local_dict : dict
      +        max_iters : int or float
      +            Agent will stop changing tau after `max_iters` iterations
      +            `max_iters` could be `float("NaN")` and `float("inf")` values:
      +            that way agent will continue operating even outside this `RegularizationControllerCube`
      +        """
      +        self.reg_name = reg_name
      +        self.tau_converter = tau_converter
      +        self.score_to_track = score_to_track
      +        self.is_working = True
      +        self.local_dict = local_dict
      +        self.tau_history = []
      +        self.max_iters = max_iters
      +
      +    def _convert_tau(self):
      +        """ """
      +        if isinstance(self.tau_converter, str):
      +            new_tau = ne.evaluate(self.tau_converter, local_dict=self.local_dict)
      +            # numexpr returns np.ndarray (which is a scalar in our case)
      +            new_tau = float(new_tau)
      +        else:
      +            new_tau = self.tau_converter(**self.local_dict)
      +        return new_tau
      +
      +    def _find_safe_tau(self):
      +        """ """
      +        if len(self.tau_history) < 2:
      +            warnings.warn("Reverting tau to 0")
      +            safe_tau = 0
      +        else:
      +            safe_tau = self.tau_history[-2]
      +        return safe_tau
      +
      +    def invoke(self, model, cur_iter):
      +        """
      +        Attempts to change tau if `is_working == True`. Otherwise, keeps to the last safe value.
      +
      +        Parameters
      +        ----------
      +        model : TopicModel
      +        cur_iter : int
      +            Note that zero means "cube just started", not "the model is brand new"
      +
      +        """
      +        current_tau = model.regularizers[self.reg_name].tau
      +        self.tau_history.append(current_tau)
      +        self.local_dict["prev_tau"] = current_tau
      +        self.local_dict["cur_iter"] = cur_iter
      +
      +        if "initial_tau" not in self.local_dict:
      +            self.local_dict["initial_tau"] = current_tau
      +
      +        if self.is_working and len(self.tau_history) > self.max_iters:
      +            warnings.warn(W_MAX_ITERS)
      +            self.is_working = False
      +
      +        if self.is_working:
      +            should_stop = is_score_out_of_control(model, self.score_to_track)
      +            if should_stop:
      +                warnings.warn(W_HALT_CONTROL.format(len(self.tau_history)))
      +                self.is_working = False
      +                model.regularizers[self.reg_name].tau = self._find_safe_tau()
      +            else:
      +                model.regularizers[self.reg_name].tau = self._convert_tau()
      +

      Methods

      @@ -245,6 +771,42 @@

      Parameters

      cur_iter : int
      Note that zero means "cube just started", not "the model is brand new"
      +
      + +Expand source code + +
      def invoke(self, model, cur_iter):
      +    """
      +    Attempts to change tau if `is_working == True`. Otherwise, keeps to the last safe value.
      +
      +    Parameters
      +    ----------
      +    model : TopicModel
      +    cur_iter : int
      +        Note that zero means "cube just started", not "the model is brand new"
      +
      +    """
      +    current_tau = model.regularizers[self.reg_name].tau
      +    self.tau_history.append(current_tau)
      +    self.local_dict["prev_tau"] = current_tau
      +    self.local_dict["cur_iter"] = cur_iter
      +
      +    if "initial_tau" not in self.local_dict:
      +        self.local_dict["initial_tau"] = current_tau
      +
      +    if self.is_working and len(self.tau_history) > self.max_iters:
      +        warnings.warn(W_MAX_ITERS)
      +        self.is_working = False
      +
      +    if self.is_working:
      +        should_stop = is_score_out_of_control(model, self.score_to_track)
      +        if should_stop:
      +            warnings.warn(W_HALT_CONTROL.format(len(self.tau_history)))
      +            self.is_working = False
      +            model.regularizers[self.reg_name].tau = self._find_safe_tau()
      +        else:
      +            model.regularizers[self.reg_name].tau = self._convert_tau()
      +
      @@ -269,21 +831,20 @@

      Parameters

      "user_value_grid" See top-level docstring for details. Examples:

      -
      -
      -

      {"regularizer": artm.regularizers.<…>, -"score_to_track": "PerplexityScore@all", -"tau_converter": "prev_tau * user_value", -"user_value_grid": [0.5, 1, 2]}

      -

      {"reg_name": "decorrelator_for_ngramms", -"score_to_track": None, -"tau_converter": ( -lambda initial_tau, prev_tau, cur_iter, user_value: -initial_tau * (cur_iter % 2) + user_value -) -"user_value_grid": [0, 1]}

      -
      -
      +
          >>  {"regularizer": artm.regularizers.<...>,
      +    >>   "score_to_track": "PerplexityScore@all",
      +    >>   "tau_converter": "prev_tau * user_value",
      +    >>   "user_value_grid": [0.5, 1, 2]}
      +
      +
      +
          >>  {"reg_name": "decorrelator_for_ngramms",
      +    >>   "score_to_track": None,
      +    >>   "tau_converter": (
      +    >>       lambda initial_tau, prev_tau, cur_iter, user_value:
      +    >>       initial_tau * (cur_iter % 2) + user_value
      +    >>   )
      +    >>   "user_value_grid": [0, 1]}
      +
      reg_search : str
      "grid", "pair", "add" or "mul". @@ -302,6 +863,177 @@

      Parameters

      verbose : bool
      visualization flag (Default value = False)
      +
      + +Expand source code + +
      class RegularizationControllerCube(BaseCube):
      +    def __init__(self, num_iter: int, parameters,
      +                 reg_search='grid', use_relative_coefficients: bool = True, strategy=None,
      +                 tracked_score_function=None, verbose: bool = False, separate_thread: bool = True):
      +        """
      +        Initialize stage. Checks params and update internal attributes.
      +
      +        Parameters
      +        ----------
      +        num_iter : int
      +            number of iterations or method
      +        parameters : list[dict] or dict
      +            regularizers params
      +            each dict should contain the following fields: 
      +                ("reg_name" or "regularizer"),
      +                "score_to_track" (optional),
      +                "tau_converter",
      +                "user_value_grid"
      +                See top-level docstring for details.
      +            Examples:
      +
      +                    >>  {"regularizer": artm.regularizers.<...>,
      +                    >>   "score_to_track": "PerplexityScore@all",
      +                    >>   "tau_converter": "prev_tau * user_value",
      +                    >>   "user_value_grid": [0.5, 1, 2]}
      +
      +
      +            -----------
      +
      +                    >>  {"reg_name": "decorrelator_for_ngramms",
      +                    >>   "score_to_track": None,
      +                    >>   "tau_converter": (
      +                    >>       lambda initial_tau, prev_tau, cur_iter, user_value:
      +                    >>       initial_tau * (cur_iter % 2) + user_value
      +                    >>   )
      +                    >>   "user_value_grid": [0, 1]}
      +
      +        reg_search : str
      +            "grid", "pair", "add" or "mul". 
      +            "pair" for elementwise grid search in the case of several regularizers 
      +            "grid" for the fullgrid search in the case of several regularizers 
      +            "add" and "mul" for the ariphmetic and geometric progression
      +            respectively for PerplexityStrategy 
      +            (Default value = "grid")
      +        use_relative_coefficients : bool
      +            forces the regularizer coefficient to be in relative form
      +            i.e. normalized over collection properties
      +        strategy : BaseStrategy
      +            optimization approach (Default value = None)
      +        tracked_score_function : str ot callable
      +            optimizable function for strategy (Default value = None)
      +        verbose : bool
      +            visualization flag (Default value = False)
      +
      +        """  # noqa: W291
      +        super().__init__(num_iter=num_iter, action='reg_controller',
      +                         reg_search=reg_search, strategy=strategy, verbose=verbose,
      +                         tracked_score_function=tracked_score_function,
      +                         separate_thread=separate_thread)
      +        self._relative = use_relative_coefficients
      +        self.data_stats = None
      +        self.raw_parameters = parameters
      +        if isinstance(parameters, dict):
      +            parameters = [parameters]
      +        self._convert_parameters(parameters)
      +
      +    def _convert_parameters(self, all_parameters):
      +        """
      +
      +        Parameters
      +        ----------
      +        all_parameters : list of dict
      +
      +        """
      +        for params_dict in all_parameters:
      +            assert ("reg_name" in params_dict) != ("regularizer" in params_dict)
      +            if "regularizer" in params_dict:
      +                assert params_dict["regularizer"].tau is not None
      +
      +        self.parameters = [
      +            {
      +                "object": {
      +                    "reg_name": params_dict.get("reg_name", None),
      +                    "regularizer": params_dict.get("regularizer", None),
      +                    "score_to_track": params_dict.get("score_to_track", None),
      +                    "tau_converter": params_dict["tau_converter"],
      +                    "local_dict": {"user_value": None},
      +                    "max_iters": params_dict.get("max_iters", self.num_iter)
      +                },
      +                "field": "callback",
      +                "values": params_dict.get('user_value_grid', [])
      +            }
      +            for params_dict in all_parameters
      +        ]
      +
      +    def apply(self, topic_model, one_model_parameter, dictionary=None, model_id=None):
      +        """
      +        Applies regularizers and controller agents to model
      +
      +        Parameters
      +        ----------
      +        topic_model : TopicModel
      +        one_model_parameter : list or tuple
      +        dictionary : Dictionary
      +            (Default value = None)
      +        model_id : str
      +            (Default value = None)
      +
      +        Returns
      +        -------
      +        TopicModel
      +
      +        """
      +        new_model = topic_model.clone(model_id)
      +        new_model.parent_model_id = topic_model.model_id
      +
      +        modalities = dict()
      +        if self._relative:
      +            modalities = new_model.class_ids
      +            if self.data_stats is None:
      +                self.data_stats = count_vocab_size(dictionary, modalities)
      +
      +        for (agent_blueprint_template, field_name, current_user_value) in one_model_parameter:
      +            agent_blueprint = dict(agent_blueprint_template)
      +            if agent_blueprint["reg_name"] is None:
      +                regularizer = agent_blueprint["regularizer"]
      +                new_regularizer = deepcopy(regularizer)
      +                handle_regularizer(
      +                    self._relative,
      +                    new_model,
      +                    new_regularizer,
      +                    self.data_stats,
      +                )
      +                agent_blueprint["reg_name"] = new_regularizer.name
      +            else:
      +                if agent_blueprint['reg_name'] not in new_model.regularizers.data:
      +                    error_msg = (f"Regularizer {agent_blueprint['reg_name']} does not exist. "
      +                                 f"Cannot be modified.")
      +                    raise ValueError(error_msg)
      +
      +            agent_blueprint['local_dict']['user_value'] = current_user_value
      +            # ControllerAgent needs only reg_name in constructor
      +            agent_blueprint.pop("regularizer")
      +            agent = ControllerAgent(**agent_blueprint)
      +            new_model.callbacks.append(agent)
      +        return new_model
      +
      +    def get_jsonable_from_parameters(self):
      +        """ """
      +        jsonable_parameters = []
      +
      +        for one_model_parameters in self.raw_parameters:
      +            one_jsonable = dict(one_model_parameters)
      +            converter = one_model_parameters['tau_converter']
      +
      +            if not isinstance(converter, str):
      +                try:
      +                    # not always works, but this is not important
      +                    one_jsonable["tau_converter"] = str(getsource(converter))
      +                except (TypeError, OSError):
      +                    # OSError: may arise if working in Jupyter Notebook
      +                    one_jsonable["tau_converter"] = "<NOT AVAILABLE>"
      +
      +            jsonable_parameters.append(one_jsonable)
      +
      +        return jsonable_parameters
      +

      Ancestors

      • BaseCube
      • @@ -329,6 +1061,62 @@

        Returns

        TopicModel
         
        +
        + +Expand source code + +
        def apply(self, topic_model, one_model_parameter, dictionary=None, model_id=None):
        +    """
        +    Applies regularizers and controller agents to model
        +
        +    Parameters
        +    ----------
        +    topic_model : TopicModel
        +    one_model_parameter : list or tuple
        +    dictionary : Dictionary
        +        (Default value = None)
        +    model_id : str
        +        (Default value = None)
        +
        +    Returns
        +    -------
        +    TopicModel
        +
        +    """
        +    new_model = topic_model.clone(model_id)
        +    new_model.parent_model_id = topic_model.model_id
        +
        +    modalities = dict()
        +    if self._relative:
        +        modalities = new_model.class_ids
        +        if self.data_stats is None:
        +            self.data_stats = count_vocab_size(dictionary, modalities)
        +
        +    for (agent_blueprint_template, field_name, current_user_value) in one_model_parameter:
        +        agent_blueprint = dict(agent_blueprint_template)
        +        if agent_blueprint["reg_name"] is None:
        +            regularizer = agent_blueprint["regularizer"]
        +            new_regularizer = deepcopy(regularizer)
        +            handle_regularizer(
        +                self._relative,
        +                new_model,
        +                new_regularizer,
        +                self.data_stats,
        +            )
        +            agent_blueprint["reg_name"] = new_regularizer.name
        +        else:
        +            if agent_blueprint['reg_name'] not in new_model.regularizers.data:
        +                error_msg = (f"Regularizer {agent_blueprint['reg_name']} does not exist. "
        +                             f"Cannot be modified.")
        +                raise ValueError(error_msg)
        +
        +        agent_blueprint['local_dict']['user_value'] = current_user_value
        +        # ControllerAgent needs only reg_name in constructor
        +        agent_blueprint.pop("regularizer")
        +        agent = ControllerAgent(**agent_blueprint)
        +        new_model.callbacks.append(agent)
        +    return new_model
        +

        Inherited members

        @@ -381,7 +1169,9 @@

        -

        Generated by pdoc 0.6.3.

        +

        Generated by pdoc 0.7.2.

        + + \ No newline at end of file diff --git a/docs/cooking_machine/cubes/cube_creator.html b/docs/cooking_machine/cubes/cube_creator.html index ac179bf..123029d 100644 --- a/docs/cooking_machine/cubes/cube_creator.html +++ b/docs/cooking_machine/cubes/cube_creator.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.cubes.cube_creator API documentation - + + @@ -19,6 +20,244 @@

        Module topicnet.cooking_machine.cubes.cube_creator

        +
        + +Expand source code + +
        from .base_cube import BaseCube
        +from inspect import signature
        +from copy import deepcopy
        +import warnings
        +
        +
        +class CubeCreator(BaseCube):
        +    """
        +    Class for creating models with different initial parameters.
        +
        +    """
        +    DEFAULT_SEED_VALUE = 4
        +
        +    def __init__(self, num_iter: int, parameters, reg_search="grid", strategy=None,
        +                 model_class='TopicModel', second_level=False,
        +                 tracked_score_function=None, verbose=False, separate_thread=True):
        +        """
        +
        +        Parameters
        +        ----------
        +        model : TopicModel
        +            TopicModel instance
        +        num_iter : int
        +            number of iterations or method
        +        parameters : list[dict] or dict
        +            parameters for model initialization
        +        reg_search: str
        +            "grid" or "pair"
        +        strategy : BaseStrategy
        +            optimization approach (Default value = None)
        +        second_level : bool
        +            if this cube is a second model level (Default value = False)
        +        tracked_score_function : retrieve_score_for_strategy
        +            optimizable function for strategy (Default value = None)
        +        verbose : bool
        +            visualization flag (Default value = False)
        +        separate_thread : bool
        +            will train models inside a separate thread if True
        +
        +        """
        +        import topicnet.cooking_machine.models as tnmodels
        +
        +        if second_level:
        +            action = 'HIER: LEVEL 2'
        +        else:
        +            action = 'INIT + TRAIN'
        +        super().__init__(num_iter=num_iter, action=action, strategy=strategy,
        +                         tracked_score_function=tracked_score_function,
        +                         reg_search=reg_search, verbose=verbose, separate_thread=separate_thread)
        +
        +        if isinstance(parameters, dict):
        +            parameters = [parameters]
        +        parameters = self._preprocess_parameters(parameters)
        +        self._raw_parameters = parameters
        +
        +        try:
        +            if model_class == 'TopicModel':
        +                model = getattr(tnmodels, model_class)(num_topics=-1)
        +            else:
        +                model = getattr(tnmodels, model_class)()
        +        except AttributeError:
        +            raise AttributeError('This model is not implemented')
        +
        +        self._model_class = model.__class__
        +        self._library_version = model._model.library_version
        +
        +        param_set = [dictionary['name'] for dictionary in parameters]
        +        topic_related = set(['topic_names', 'num_topics']) & set(param_set)
        +        not_include = ['topic_names', ] if len(topic_related) > 0 else list()
        +        self._not_include = not_include
        +
        +        self._second_level = second_level
        +        self._check_all_parameters(parameters)
        +        self._prepare_models_parameters(parameters)
        +
        +    def _preprocess_parameters(self, parameters):
        +        clean_parameters = []
        +        for params in parameters:
        +            if "name" in params:
        +                clean_parameters.append(params)
        +            else:
        +                for (name, values) in params.items():
        +                    new_params = {"name": name, "values": values}
        +                    clean_parameters.append(new_params)
        +        return clean_parameters
        +
        +    def _check_all_parameters(self, parameters):
        +        """
        +        Checks input parameters.
        +
        +        Parameters
        +        ----------
        +        parameters : dict
        +
        +        Returns
        +        -------
        +
        +        """
        +        if len(parameters) <= 0:
        +            raise ValueError("There are no parameters.")
        +
        +        possible_init_params = list(signature(self._model_class.__init__).
        +                                    parameters.keys())[1:]
        +        is_args_or_kwargs = ('kwargs' in possible_init_params) or ('args' in possible_init_params)
        +        for parameter in parameters:
        +            if not isinstance(parameter, dict):
        +                wrong_type = type(parameter)
        +                raise ValueError(f"Parameter should be dict, not {wrong_type}")
        +            if not is_args_or_kwargs and parameter['name'] not in possible_init_params:
        +                raise ValueError(
        +                    f"There is no parameter {parameter['name']} in {self._model_class}"
        +                )
        +
        +        if self.reg_search == "pair":
        +            grid_size = len(parameters[0]["values"])
        +            for parameter in parameters:
        +                if len(parameter["values"]) != grid_size:
        +                    raise ValueError("Grid size is not the same.")
        +
        +    def _prepare_models_parameters(self, parameters):
        +        """
        +
        +        Parameters
        +        ----------
        +        parameters : dict
        +
        +        Returns
        +        -------
        +
        +        """
        +        self.parameters = []
        +        for params in parameters:
        +            name = params['name']
        +            if not name.startswith('class_ids'):
        +                self.parameters.append({
        +                    "object": "",
        +                    "field": params["name"],
        +                    "values": params["values"]
        +                })
        +            else:
        +                if name == "class_ids":
        +                    new_params = params
        +                else:
        +                    _, class_id = name.split("class_ids")
        +
        +                    weights = [float(w) for w in params["values"]]
        +                    new_params = {
        +                        "name": "class_ids",
        +                        "values": {class_id: weights}
        +                    }
        +
        +                for modality_name, modality_values in new_params['values'].items():
        +                    if modality_name[0] == '@':
        +                        self.parameters.append({
        +                            "object": "",
        +                            "field": modality_name,
        +                            "values": modality_values
        +                        })
        +                    else:
        +                        warnings.warn(f'Unexpected parameter {modality_name} was encountered.')
        +
        +    def get_jsonable_from_parameters(self):
        +        """ """
        +        jsonable_parameters = dict()
        +
        +        for one_parameter in self._raw_parameters:
        +            jsonable_values = []
        +            for parameter in one_parameter['values']:
        +                jsonable_values.append(str(parameter))
        +            jsonable_parameters[one_parameter['name']] = jsonable_values
        +
        +        if self._second_level:
        +            jsonable_parameters['additional_info'] = 'hierarchical: Second level.'
        +
        +        try:
        +            jsonable_parameters['version'] = self._library_version
        +        except AttributeError:
        +            jsonable_parameters['version'] = "undefined"
        +        return [jsonable_parameters]
        +
        +    def apply(self, topic_model, one_cube_parameter, dictionary=None, model_id=None):
        +        """
        +
        +        Parameters
        +        ----------
        +        topic_model : TopicModel
        +        one_cube_parameter : list or tuple
        +        dictionary : Dictionary
        +            (Default value = None)
        +        model_id : str
        +            (Default value = None)
        +
        +        Returns
        +        -------
        +
        +        """
        +        new_model_parameters = deepcopy(
        +            topic_model.get_init_parameters(not_include=self._not_include)
        +        )
        +        for parameter_entry in one_cube_parameter:
        +            _, parameter_name, parameter_value = parameter_entry
        +            if parameter_name[0] == '@':
        +                new_model_parameters['class_ids'][parameter_name] = parameter_value
        +            else:
        +                new_model_parameters[parameter_name] = parameter_value
        +        experiment = topic_model.experiment
        +        model_class = topic_model.__class__
        +        if self._second_level:
        +            new_model_parameters['parent_model'] = topic_model._model
        +            if new_model_parameters.get('seed', -1) == -1:
        +                # for some reason, for the second level you need to specify seed
        +                new_model_parameters['seed'] = self.DEFAULT_SEED_VALUE
        +            # for the tree
        +            parent_model_id = topic_model.model_id
        +            description = list(topic_model.description)
        +        else:
        +            parent_model_id = experiment.tree.tree['model_id']
        +            description = None
        +
        +        new_model_parameters['dictionary'] = dictionary
        +        new_model = model_class(
        +            experiment=experiment,
        +            model_id=model_id,
        +            parent_model_id=parent_model_id,
        +            description=description,
        +            custom_scores=deepcopy(topic_model.custom_scores),
        +            **new_model_parameters
        +        )
        +        for reg_name, reg in topic_model._model.regularizers.data.items():
        +            new_model._model.regularizers.add(deepcopy(reg))
        +        for score_name, score in topic_model._model._scores.data.items():
        +            new_model._model.scores.add(deepcopy(score))
        +        return new_model
        +
        @@ -56,6 +295,238 @@

        Parameters

        separate_thread : bool
        will train models inside a separate thread if True
        +
        + +Expand source code + +
        class CubeCreator(BaseCube):
        +    """
        +    Class for creating models with different initial parameters.
        +
        +    """
        +    DEFAULT_SEED_VALUE = 4
        +
        +    def __init__(self, num_iter: int, parameters, reg_search="grid", strategy=None,
        +                 model_class='TopicModel', second_level=False,
        +                 tracked_score_function=None, verbose=False, separate_thread=True):
        +        """
        +
        +        Parameters
        +        ----------
        +        model : TopicModel
        +            TopicModel instance
        +        num_iter : int
        +            number of iterations or method
        +        parameters : list[dict] or dict
        +            parameters for model initialization
        +        reg_search: str
        +            "grid" or "pair"
        +        strategy : BaseStrategy
        +            optimization approach (Default value = None)
        +        second_level : bool
        +            if this cube is a second model level (Default value = False)
        +        tracked_score_function : retrieve_score_for_strategy
        +            optimizable function for strategy (Default value = None)
        +        verbose : bool
        +            visualization flag (Default value = False)
        +        separate_thread : bool
        +            will train models inside a separate thread if True
        +
        +        """
        +        import topicnet.cooking_machine.models as tnmodels
        +
        +        if second_level:
        +            action = 'HIER: LEVEL 2'
        +        else:
        +            action = 'INIT + TRAIN'
        +        super().__init__(num_iter=num_iter, action=action, strategy=strategy,
        +                         tracked_score_function=tracked_score_function,
        +                         reg_search=reg_search, verbose=verbose, separate_thread=separate_thread)
        +
        +        if isinstance(parameters, dict):
        +            parameters = [parameters]
        +        parameters = self._preprocess_parameters(parameters)
        +        self._raw_parameters = parameters
        +
        +        try:
        +            if model_class == 'TopicModel':
        +                model = getattr(tnmodels, model_class)(num_topics=-1)
        +            else:
        +                model = getattr(tnmodels, model_class)()
        +        except AttributeError:
        +            raise AttributeError('This model is not implemented')
        +
        +        self._model_class = model.__class__
        +        self._library_version = model._model.library_version
        +
        +        param_set = [dictionary['name'] for dictionary in parameters]
        +        topic_related = set(['topic_names', 'num_topics']) & set(param_set)
        +        not_include = ['topic_names', ] if len(topic_related) > 0 else list()
        +        self._not_include = not_include
        +
        +        self._second_level = second_level
        +        self._check_all_parameters(parameters)
        +        self._prepare_models_parameters(parameters)
        +
        +    def _preprocess_parameters(self, parameters):
        +        clean_parameters = []
        +        for params in parameters:
        +            if "name" in params:
        +                clean_parameters.append(params)
        +            else:
        +                for (name, values) in params.items():
        +                    new_params = {"name": name, "values": values}
        +                    clean_parameters.append(new_params)
        +        return clean_parameters
        +
        +    def _check_all_parameters(self, parameters):
        +        """
        +        Checks input parameters.
        +
        +        Parameters
        +        ----------
        +        parameters : dict
        +
        +        Returns
        +        -------
        +
        +        """
        +        if len(parameters) <= 0:
        +            raise ValueError("There are no parameters.")
        +
        +        possible_init_params = list(signature(self._model_class.__init__).
        +                                    parameters.keys())[1:]
        +        is_args_or_kwargs = ('kwargs' in possible_init_params) or ('args' in possible_init_params)
        +        for parameter in parameters:
        +            if not isinstance(parameter, dict):
        +                wrong_type = type(parameter)
        +                raise ValueError(f"Parameter should be dict, not {wrong_type}")
        +            if not is_args_or_kwargs and parameter['name'] not in possible_init_params:
        +                raise ValueError(
        +                    f"There is no parameter {parameter['name']} in {self._model_class}"
        +                )
        +
        +        if self.reg_search == "pair":
        +            grid_size = len(parameters[0]["values"])
        +            for parameter in parameters:
        +                if len(parameter["values"]) != grid_size:
        +                    raise ValueError("Grid size is not the same.")
        +
        +    def _prepare_models_parameters(self, parameters):
        +        """
        +
        +        Parameters
        +        ----------
        +        parameters : dict
        +
        +        Returns
        +        -------
        +
        +        """
        +        self.parameters = []
        +        for params in parameters:
        +            name = params['name']
        +            if not name.startswith('class_ids'):
        +                self.parameters.append({
        +                    "object": "",
        +                    "field": params["name"],
        +                    "values": params["values"]
        +                })
        +            else:
        +                if name == "class_ids":
        +                    new_params = params
        +                else:
        +                    _, class_id = name.split("class_ids")
        +
        +                    weights = [float(w) for w in params["values"]]
        +                    new_params = {
        +                        "name": "class_ids",
        +                        "values": {class_id: weights}
        +                    }
        +
        +                for modality_name, modality_values in new_params['values'].items():
        +                    if modality_name[0] == '@':
        +                        self.parameters.append({
        +                            "object": "",
        +                            "field": modality_name,
        +                            "values": modality_values
        +                        })
        +                    else:
        +                        warnings.warn(f'Unexpected parameter {modality_name} was encountered.')
        +
        +    def get_jsonable_from_parameters(self):
        +        """ """
        +        jsonable_parameters = dict()
        +
        +        for one_parameter in self._raw_parameters:
        +            jsonable_values = []
        +            for parameter in one_parameter['values']:
        +                jsonable_values.append(str(parameter))
        +            jsonable_parameters[one_parameter['name']] = jsonable_values
        +
        +        if self._second_level:
        +            jsonable_parameters['additional_info'] = 'hierarchical: Second level.'
        +
        +        try:
        +            jsonable_parameters['version'] = self._library_version
        +        except AttributeError:
        +            jsonable_parameters['version'] = "undefined"
        +        return [jsonable_parameters]
        +
        +    def apply(self, topic_model, one_cube_parameter, dictionary=None, model_id=None):
        +        """
        +
        +        Parameters
        +        ----------
        +        topic_model : TopicModel
        +        one_cube_parameter : list or tuple
        +        dictionary : Dictionary
        +            (Default value = None)
        +        model_id : str
        +            (Default value = None)
        +
        +        Returns
        +        -------
        +
        +        """
        +        new_model_parameters = deepcopy(
        +            topic_model.get_init_parameters(not_include=self._not_include)
        +        )
        +        for parameter_entry in one_cube_parameter:
        +            _, parameter_name, parameter_value = parameter_entry
        +            if parameter_name[0] == '@':
        +                new_model_parameters['class_ids'][parameter_name] = parameter_value
        +            else:
        +                new_model_parameters[parameter_name] = parameter_value
        +        experiment = topic_model.experiment
        +        model_class = topic_model.__class__
        +        if self._second_level:
        +            new_model_parameters['parent_model'] = topic_model._model
        +            if new_model_parameters.get('seed', -1) == -1:
        +                # for some reason, for the second level you need to specify seed
        +                new_model_parameters['seed'] = self.DEFAULT_SEED_VALUE
        +            # for the tree
        +            parent_model_id = topic_model.model_id
        +            description = list(topic_model.description)
        +        else:
        +            parent_model_id = experiment.tree.tree['model_id']
        +            description = None
        +
        +        new_model_parameters['dictionary'] = dictionary
        +        new_model = model_class(
        +            experiment=experiment,
        +            model_id=model_id,
        +            parent_model_id=parent_model_id,
        +            description=description,
        +            custom_scores=deepcopy(topic_model.custom_scores),
        +            **new_model_parameters
        +        )
        +        for reg_name, reg in topic_model._model.regularizers.data.items():
        +            new_model._model.regularizers.add(deepcopy(reg))
        +        for score_name, score in topic_model._model._scores.data.items():
        +            new_model._model.scores.add(deepcopy(score))
        +        return new_model
        +

        Ancestors

        • BaseCube
        • @@ -64,7 +535,24 @@

          Class variables

          var DEFAULT_SEED_VALUE
          -
          +

          int([x]) -> integer +int(x, base=10) -> integer

          +

          Convert a number or string to an integer, or return 0 if no arguments +are given. +If x is a number, return x.int(). +For floating point +numbers, this truncates towards zero.

          +

          If x is not a number or if base is given, then x must be a string, +bytes, or bytearray instance representing an integer literal in the +given base. +The literal can be preceded by '+' or '-' and be surrounded +by whitespace. +The base defaults to 10. +Valid bases are 0 and 2-36. +Base 0 means to interpret the base from the string as an integer literal.

          +
          >>> int('0b100', base=0)
          +4
          +

          Methods

          @@ -85,6 +573,64 @@

          Methods

          (Default value = None)

          Returns

          +
          + +Expand source code + +
          def apply(self, topic_model, one_cube_parameter, dictionary=None, model_id=None):
          +    """
          +
          +    Parameters
          +    ----------
          +    topic_model : TopicModel
          +    one_cube_parameter : list or tuple
          +    dictionary : Dictionary
          +        (Default value = None)
          +    model_id : str
          +        (Default value = None)
          +
          +    Returns
          +    -------
          +
          +    """
          +    new_model_parameters = deepcopy(
          +        topic_model.get_init_parameters(not_include=self._not_include)
          +    )
          +    for parameter_entry in one_cube_parameter:
          +        _, parameter_name, parameter_value = parameter_entry
          +        if parameter_name[0] == '@':
          +            new_model_parameters['class_ids'][parameter_name] = parameter_value
          +        else:
          +            new_model_parameters[parameter_name] = parameter_value
          +    experiment = topic_model.experiment
          +    model_class = topic_model.__class__
          +    if self._second_level:
          +        new_model_parameters['parent_model'] = topic_model._model
          +        if new_model_parameters.get('seed', -1) == -1:
          +            # for some reason, for the second level you need to specify seed
          +            new_model_parameters['seed'] = self.DEFAULT_SEED_VALUE
          +        # for the tree
          +        parent_model_id = topic_model.model_id
          +        description = list(topic_model.description)
          +    else:
          +        parent_model_id = experiment.tree.tree['model_id']
          +        description = None
          +
          +    new_model_parameters['dictionary'] = dictionary
          +    new_model = model_class(
          +        experiment=experiment,
          +        model_id=model_id,
          +        parent_model_id=parent_model_id,
          +        description=description,
          +        custom_scores=deepcopy(topic_model.custom_scores),
          +        **new_model_parameters
          +    )
          +    for reg_name, reg in topic_model._model.regularizers.data.items():
          +        new_model._model.regularizers.add(deepcopy(reg))
          +    for score_name, score in topic_model._model._scores.data.items():
          +        new_model._model.scores.add(deepcopy(score))
          +    return new_model
          +

          Inherited members

          @@ -125,7 +671,9 @@

          + + \ No newline at end of file diff --git a/docs/cooking_machine/cubes/greedy_strategy.html b/docs/cooking_machine/cubes/greedy_strategy.html index 321f1f2..938b928 100644 --- a/docs/cooking_machine/cubes/greedy_strategy.html +++ b/docs/cooking_machine/cubes/greedy_strategy.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.cubes.greedy_strategy API documentation - + + @@ -19,6 +20,179 @@

          Module topicnet.cooking_machine.cubes.greedy_strategy

          +
          + +Expand source code + +
          import numpy as np
          +from .strategy import BaseStrategy
          +
          +
          +class GreedyStrategy(BaseStrategy):
          +    """
          +    Allows to visit nodes of parameters' grid in a particular order.
          +
          +    The rough idea:  
          +        We are given grid of (values1 x values2 x values3).  
          +        This strategy will find best value among points of form [v1, 0, 0]
          +        and will mark first coordinate as finished.  
          +        Then we search for best v2 among [v1, v2, 0].  
          +        Then [v1, v2, v3] etc.
          +
          +    """  # noqa: W291
          +    def __init__(self, renormalize: bool = False):
          +        """
          +        Initialize stage. Updates internal attributes.
          +
          +        """
          +        self.score = []
          +        self.best_point = None
          +        self.grid_len = None
          +        self.renormalize = renormalize
          +
          +    def _check_parameters(self, parameters):
          +        """
          +
          +        Parameters
          +        ----------
          +        parameters : optional
          +
          +        """
          +        # TODO: check that [0, 1]
          +        # increasing
          +        # at least 2
          +
          +        # or maybe its not range but an interval..?
          +        pass
          +
          +    def _set_parameters(self, parameters):
          +        """
          +        Sets the parameters describing search space
          +        with some rudimentary sanity checking.
          +
          +        Parameters
          +        ----------
          +        parameters : dict or list of dict
          +
          +        Returns
          +        -------
          +
          +        """
          +        if isinstance(parameters, dict):
          +            parameters = [parameters]
          +        for entry in parameters:
          +            if any(key not in entry.keys() for key in ["field", "object", "values"]):
          +                raise ValueError(entry)
          +        self.parameters = parameters
          +
          +    def _get_strategy_parameters(self, saveable_only=False):
          +        """
          +        """
          +        strategy_parameters = {
          +            "score": self.score,
          +            "best_score": self.best_score,
          +            "best_point": self.best_point,
          +            "grid_len": self.grid_len
          +        }
          +
          +        if not saveable_only and hasattr(self, "parameters"):
          +            strategy_parameters["parameters"] = self.parameters
          +
          +        return strategy_parameters
          +
          +    def _convert_return_value(self, processed_coordinates, found_values):
          +        """
          +        Converts the search point given to the internal format
          +        Notably, pads with zero and (optionally) normalizes
          +
          +        Parameters
          +        ----------
          +        processed_coordinates : list of str
          +            names of the coordinates we already visited
          +        found_values : list of float
          +            coordinates of locally best points we already found
          +
          +        Returns
          +        -------
          +        list of lists
          +            internal lists contain coefficients of classes
          +
          +        """
          +        processed_coordinates = list(processed_coordinates)
          +        found_values = list(found_values)
          +        for params in self.parameters:
          +            class_name = params["field"]
          +            if class_name not in processed_coordinates:
          +                processed_coordinates.append(class_name)
          +                found_values.append(0)
          +
          +        if self.renormalize:
          +            found_values = np.asarray(found_values) / sum(found_values)
          +        return [
          +            [params["object"], class_name, class_id_coefficient]
          +            for class_name, class_id_coefficient in zip(processed_coordinates, found_values)
          +        ]
          +
          +    def prepare_grid(self, other_parameters, reg_search):
          +        """
          +        Sets parameters of grid and prepares grid length for verbosity.
          +
          +        Parameters
          +        ----------
          +        other_parameters : dict or list of dict
          +        reg_search : str
          +
          +        """
          +        self._set_parameters(other_parameters)
          +        self.grid_len = sum(map(lambda x: len(x['values']), self.parameters[1:]), 1)
          +
          +    def _iterate_over_line(self, params, processed_coordinates, found_values):
          +        processed_coordinates.append(params["field"])
          +        found_values.append(0)
          +        cur_scores = []
          +        for value in params["values"]:
          +            found_values[-1] = value
          +            yield self._convert_return_value(processed_coordinates, found_values)
          +            cur_scores.append(self.score[-1])
          +        cur_scores = np.asarray(cur_scores)
          +        best_index = cur_scores.argmax()
          +        best_value = params["values"][best_index]
          +        found_values[-1] = best_value
          +
          +    def grid_visit_generator(self, other_parameters, reg_search):
          +        """
          +        Converts the search point given to the internal format
          +        Notably, pads with zero and normalizees
          +        with some rudimentary sanity checking.
          +
          +        Parameters
          +        ----------
          +        other_parameters : dict or list of dict
          +        reg_search : str
          +
          +        Yields
          +        -------
          +        list of lists
          +
          +        """
          +        if reg_search != "grid":
          +            raise TypeError("currently only 'grid' search type is supported")
          +
          +        processed_coordinates = []
          +        found_values = []
          +        for params in self.parameters:
          +            if not processed_coordinates:
          +                if self.renormalize:
          +                    processed_coordinates.append(params["field"])
          +                    found_values.append(1)
          +                    yield self._convert_return_value(processed_coordinates, found_values)
          +                else:
          +                    yield from self._iterate_over_line(params, processed_coordinates, found_values)
          +            else:
          +                yield from self._iterate_over_line(params, processed_coordinates, found_values)
          +        self.best_point = self._convert_return_value(processed_coordinates, found_values)
          +        self.best_score = found_values[-1]
          +
          @@ -42,6 +216,175 @@

          Classes

          Then we search for best v2 among [v1, v2, 0].
          Then [v1, v2, v3] etc.

          Initialize stage. Updates internal attributes.

          +
          + +Expand source code + +
          class GreedyStrategy(BaseStrategy):
          +    """
          +    Allows to visit nodes of parameters' grid in a particular order.
          +
          +    The rough idea:  
          +        We are given grid of (values1 x values2 x values3).  
          +        This strategy will find best value among points of form [v1, 0, 0]
          +        and will mark first coordinate as finished.  
          +        Then we search for best v2 among [v1, v2, 0].  
          +        Then [v1, v2, v3] etc.
          +
          +    """  # noqa: W291
          +    def __init__(self, renormalize: bool = False):
          +        """
          +        Initialize stage. Updates internal attributes.
          +
          +        """
          +        self.score = []
          +        self.best_point = None
          +        self.grid_len = None
          +        self.renormalize = renormalize
          +
          +    def _check_parameters(self, parameters):
          +        """
          +
          +        Parameters
          +        ----------
          +        parameters : optional
          +
          +        """
          +        # TODO: check that [0, 1]
          +        # increasing
          +        # at least 2
          +
          +        # or maybe its not range but an interval..?
          +        pass
          +
          +    def _set_parameters(self, parameters):
          +        """
          +        Sets the parameters describing search space
          +        with some rudimentary sanity checking.
          +
          +        Parameters
          +        ----------
          +        parameters : dict or list of dict
          +
          +        Returns
          +        -------
          +
          +        """
          +        if isinstance(parameters, dict):
          +            parameters = [parameters]
          +        for entry in parameters:
          +            if any(key not in entry.keys() for key in ["field", "object", "values"]):
          +                raise ValueError(entry)
          +        self.parameters = parameters
          +
          +    def _get_strategy_parameters(self, saveable_only=False):
          +        """
          +        """
          +        strategy_parameters = {
          +            "score": self.score,
          +            "best_score": self.best_score,
          +            "best_point": self.best_point,
          +            "grid_len": self.grid_len
          +        }
          +
          +        if not saveable_only and hasattr(self, "parameters"):
          +            strategy_parameters["parameters"] = self.parameters
          +
          +        return strategy_parameters
          +
          +    def _convert_return_value(self, processed_coordinates, found_values):
          +        """
          +        Converts the search point given to the internal format
          +        Notably, pads with zero and (optionally) normalizes
          +
          +        Parameters
          +        ----------
          +        processed_coordinates : list of str
          +            names of the coordinates we already visited
          +        found_values : list of float
          +            coordinates of locally best points we already found
          +
          +        Returns
          +        -------
          +        list of lists
          +            internal lists contain coefficients of classes
          +
          +        """
          +        processed_coordinates = list(processed_coordinates)
          +        found_values = list(found_values)
          +        for params in self.parameters:
          +            class_name = params["field"]
          +            if class_name not in processed_coordinates:
          +                processed_coordinates.append(class_name)
          +                found_values.append(0)
          +
          +        if self.renormalize:
          +            found_values = np.asarray(found_values) / sum(found_values)
          +        return [
          +            [params["object"], class_name, class_id_coefficient]
          +            for class_name, class_id_coefficient in zip(processed_coordinates, found_values)
          +        ]
          +
          +    def prepare_grid(self, other_parameters, reg_search):
          +        """
          +        Sets parameters of grid and prepares grid length for verbosity.
          +
          +        Parameters
          +        ----------
          +        other_parameters : dict or list of dict
          +        reg_search : str
          +
          +        """
          +        self._set_parameters(other_parameters)
          +        self.grid_len = sum(map(lambda x: len(x['values']), self.parameters[1:]), 1)
          +
          +    def _iterate_over_line(self, params, processed_coordinates, found_values):
          +        processed_coordinates.append(params["field"])
          +        found_values.append(0)
          +        cur_scores = []
          +        for value in params["values"]:
          +            found_values[-1] = value
          +            yield self._convert_return_value(processed_coordinates, found_values)
          +            cur_scores.append(self.score[-1])
          +        cur_scores = np.asarray(cur_scores)
          +        best_index = cur_scores.argmax()
          +        best_value = params["values"][best_index]
          +        found_values[-1] = best_value
          +
          +    def grid_visit_generator(self, other_parameters, reg_search):
          +        """
          +        Converts the search point given to the internal format
          +        Notably, pads with zero and normalizees
          +        with some rudimentary sanity checking.
          +
          +        Parameters
          +        ----------
          +        other_parameters : dict or list of dict
          +        reg_search : str
          +
          +        Yields
          +        -------
          +        list of lists
          +
          +        """
          +        if reg_search != "grid":
          +            raise TypeError("currently only 'grid' search type is supported")
          +
          +        processed_coordinates = []
          +        found_values = []
          +        for params in self.parameters:
          +            if not processed_coordinates:
          +                if self.renormalize:
          +                    processed_coordinates.append(params["field"])
          +                    found_values.append(1)
          +                    yield self._convert_return_value(processed_coordinates, found_values)
          +                else:
          +                    yield from self._iterate_over_line(params, processed_coordinates, found_values)
          +            else:
          +                yield from self._iterate_over_line(params, processed_coordinates, found_values)
          +        self.best_point = self._convert_return_value(processed_coordinates, found_values)
          +        self.best_score = found_values[-1]
          +

          Ancestors

          • BaseStrategy
          • @@ -67,6 +410,44 @@

            Yields

            list of lists
             
            +
            + +Expand source code + +
            def grid_visit_generator(self, other_parameters, reg_search):
            +    """
            +    Converts the search point given to the internal format
            +    Notably, pads with zero and normalizees
            +    with some rudimentary sanity checking.
            +
            +    Parameters
            +    ----------
            +    other_parameters : dict or list of dict
            +    reg_search : str
            +
            +    Yields
            +    -------
            +    list of lists
            +
            +    """
            +    if reg_search != "grid":
            +        raise TypeError("currently only 'grid' search type is supported")
            +
            +    processed_coordinates = []
            +    found_values = []
            +    for params in self.parameters:
            +        if not processed_coordinates:
            +            if self.renormalize:
            +                processed_coordinates.append(params["field"])
            +                found_values.append(1)
            +                yield self._convert_return_value(processed_coordinates, found_values)
            +            else:
            +                yield from self._iterate_over_line(params, processed_coordinates, found_values)
            +        else:
            +            yield from self._iterate_over_line(params, processed_coordinates, found_values)
            +    self.best_point = self._convert_return_value(processed_coordinates, found_values)
            +    self.best_score = found_values[-1]
            +
            def prepare_grid(self, other_parameters, reg_search) @@ -80,6 +461,23 @@

            Parameters

            reg_search : str
             
            +
            + +Expand source code + +
            def prepare_grid(self, other_parameters, reg_search):
            +    """
            +    Sets parameters of grid and prepares grid length for verbosity.
            +
            +    Parameters
            +    ----------
            +    other_parameters : dict or list of dict
            +    reg_search : str
            +
            +    """
            +    self._set_parameters(other_parameters)
            +    self.grid_len = sum(map(lambda x: len(x['values']), self.parameters[1:]), 1)
            +

            Inherited members

            @@ -120,7 +518,9 @@

            -

            Generated by pdoc 0.6.3.

            +

            Generated by pdoc 0.7.2.

            + + \ No newline at end of file diff --git a/docs/cooking_machine/cubes/index.html b/docs/cooking_machine/cubes/index.html index cb99807..76d92b5 100644 --- a/docs/cooking_machine/cubes/index.html +++ b/docs/cooking_machine/cubes/index.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.cubes API documentation - + + @@ -18,7 +19,7 @@

            Module topicnet.cooking_machine.cubes

            -

            Cubes and their Strategies

            +

            <<<<<<< HEAD # Cubes and their Strategies

            Cube types:

            • BaseCube — a parent class for all the Cubes
            • @@ -54,6 +55,18 @@

              What do you need to create a new
            • get_jsonable_from_parameters()[i] corresponds to the same cube step as parameters[i].

            • +
              + +Expand source code + +
              from .base_cube import BaseCube, retrieve_score_for_strategy
              +from .regularizer_cube import RegularizersModifierCube
              +from .controller_cube import RegularizationControllerCube
              +from .cube_creator import CubeCreator
              +from .perplexity_strategy import PerplexityStrategy
              +from .greedy_strategy import GreedyStrategy
              +from .strategy import BaseStrategy
              +

              Sub-modules

              @@ -97,7 +110,7 @@

              Sub-modules

              + + \ No newline at end of file diff --git a/docs/cooking_machine/cubes/perplexity_strategy.html b/docs/cooking_machine/cubes/perplexity_strategy.html index 32a4c88..6341f9a 100644 --- a/docs/cooking_machine/cubes/perplexity_strategy.html +++ b/docs/cooking_machine/cubes/perplexity_strategy.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.cubes.perplexity_strategy API documentation - + + @@ -19,6 +20,239 @@

              Module topicnet.cooking_machine.cubes.perplexity_strategy

              +
              + +Expand source code + +
              import numpy as np
              +from itertools import product
              +import warnings
              +
              +from .strategy import BaseStrategy
              +
              +
              +class PerplexityStrategy(BaseStrategy):
              +    """
              +    Search for the best perplexity score.
              +
              +    """
              +    def __init__(self, start_point: float = None, step: float = None,
              +                 max_len: float = 25, threshold: float = 1.05):
              +        """
              +        Initialize stage.
              +
              +        Parameters
              +        ----------
              +        start_point : float
              +           first point for tau progression
              +        step : float
              +            step in tau progression
              +        max_len : int
              +            length of progression
              +        threshold : float
              +            threshold for "perplexity out of control"
              +
              +        """
              +        self.score = []
              +        self.threshold = threshold
              +        self.best_point = None
              +        self.last_point = None
              +        self.grid = None
              +        self.grid_len = None
              +
              +        self.start_point = start_point
              +        self.step = step
              +        self.max_len = max_len
              +
              +    def _set_parameters(self, parameters):
              +        """
              +
              +        Parameters
              +        ----------
              +        parameters : dict
              +
              +        """
              +        if isinstance(parameters, dict):
              +            parameters = [parameters]
              +        for entry in parameters:
              +            if any(key not in entry.keys() for key in ["field", "object", "values"]):
              +                raise ValueError(entry)
              +        self.parameters = parameters
              +
              +    def _get_strategy_parameters(self, saveable_only=False):
              +        """
              +        """
              +        strategy_parameters = {
              +            "score": self.score,
              +            "threshold": self.threshold,
              +            "grid_len": self.grid_len,
              +            "start_point": self.start_point,
              +            "step": self.step,
              +            "max_len": self.max_len
              +        }
              +
              +        if not saveable_only:
              +            strategy_parameters["best_point"] = self.best_point
              +            strategy_parameters["last_point"] = self.last_point
              +            strategy_parameters["grid"] = self.grid
              +            if hasattr(self, "parameters"):
              +                strategy_parameters["parameters"] = self.parameters
              +        else:
              +            strategy_parameters["best_point"] = self.best_point[0][-1]
              +            strategy_parameters["last_point"] = self.last_point[0][-1]
              +
              +        return strategy_parameters
              +
              +    def _set_strategy_parameters(self, strategy_parameters):
              +        """
              +        """
              +        if not isinstance(strategy_parameters, dict):
              +            raise ValueError("Input parameters must be dict.")
              +
              +        for parameter_name in strategy_parameters.keys():
              +            if parameter_name in ["best_point", "last_point"]:
              +                if isinstance(strategy_parameters[parameter_name], (int, float)):
              +                    setattr(self, parameter_name,
              +                            self._implement_tau(strategy_parameters[parameter_name]))
              +            else:
              +                setattr(self, parameter_name, strategy_parameters[parameter_name])
              +
              +    def _implement_tau(self, tau):
              +        """
              +        Converts the tau value given to the internal format.
              +
              +        Parameters
              +        ----------
              +        tau : float
              +
              +        Returns
              +        -------
              +        tuple
              +
              +        """
              +        return ([self.parameters[0]["object"], self.parameters[0]["field"], tau],)
              +
              +    def _endless_generator(self, mode):
              +        """
              +
              +        Parameters
              +        ----------
              +        mode : str
              +            "add" or "mul"
              +
              +        Yields
              +        ------
              +        float in internal format
              +
              +        """
              +        yield self._implement_tau(0)
              +
              +        start_point = self.start_point
              +        step = self.step
              +
              +        if mode == "add":
              +            if step == 0:
              +                warnings.warn('The hyperparameter search space is limited to one point',
              +                              UserWarning)
              +            while True:
              +                yield self._implement_tau(start_point)
              +                start_point += step
              +        else:
              +            if start_point == 0:
              +                raise ValueError("Invalid start point {} for mul strategy".format(start_point))
              +            if step <= 1:
              +                raise ValueError("Invalid step {} for mul strategy".format(step))
              +            while True:
              +                yield self._implement_tau(start_point)
              +                start_point *= step
              +
              +    def prepare_grid(self, other_parameters, reg_search="add"):
              +        """
              +        Creates search space and length for tqdm.
              +        Note, that first point in sequence is always 0.
              +
              +        Parameters
              +        ----------
              +        other_parameters : dict or list of dict
              +            the parameters describing search space. This is a list of entries like
              +            {"object": "smoothSparsePhi", "field": "tau", "values": []}
              +        reg_search : str
              +            "grid", "add" or "mul"
              +            defines grid search or arithmetic or geometric progression
              +
              +        """
              +        self.score = []
              +        if self.start_point and self.step:
              +            if reg_search == "grid":
              +                warnings.warn(f"Grid would be used "
              +                              f"instead of start point {self.start_point} and step {self.step}")
              +            elif reg_search not in ["add", "mul"]:
              +                raise TypeError("Invalid search type")
              +
              +        self._set_parameters(other_parameters)
              +        if reg_search == "grid":
              +            self.parameters[0]["values"] = [0] + self.parameters[0]["values"]
              +        all_coeffs_grid = [
              +            [[params["object"], params["field"], one_value] for one_value in params["values"]]
              +            for params in self.parameters
              +        ]
              +
              +        if reg_search != "grid" and self.start_point is not None and self.step is not None:
              +            self.grid = self._endless_generator(reg_search)
              +        elif reg_search == "grid":
              +            self.grid = product(*all_coeffs_grid)
              +            self.grid_len = len(all_coeffs_grid[0])
              +        if self.grid is None:
              +            raise ValueError(f'Failed to initialize self.grid, check initial parameters.')
              +
              +    def grid_visit_generator(self, other_parameters, reg_search):
              +        """
              +        Yields points from search space with sanity checking of current result.
              +
              +        Parameters
              +        ----------
              +        other_parameters : dict
              +
              +        reg_search : str
              +            "add", "mul" or "grid"
              +
              +        Yields
              +        ------
              +        sequence of points in search space
              +
              +        """
              +        for one_model_values in self.grid:
              +            yield one_model_values
              +
              +            if reg_search != "grid":
              +                self.parameters[0]["values"].append(one_model_values[0][2])
              +                if self.score[-1] / max(self.score[0], 1e-5) > self.threshold:
              +                    warnings.warn(f"Perplexity is too high for threshold {self.threshold}")
              +                    break
              +
              +            if len(self.score) > 4 and len(set(self.score[:-6:-1])) == 1:
              +                warnings.warn("Last five scores are equal, interrupting search")
              +                break
              +            if len(self.score) > self.max_len:
              +                warnings.warn("Max progression length exceeded")
              +                break
              +
              +        best_tau = self.parameters[0]["values"][1:][np.argmin(self.score[1:])]
              +        self.best_point = self._implement_tau(best_tau)
              +        self.last_point = self._implement_tau(self.parameters[0]["values"][-1])
              +
              +    def update_scores(self, new_value):
              +        """
              +
              +        Parameters
              +        ----------
              +        new_value : float
              +
              +        """
              +        if isinstance(new_value, list):
              +            new_value = new_value[0]
              +        self.score.append(new_value)
              +
              @@ -48,6 +282,232 @@

              Parameters

              threshold : float
              threshold for "perplexity out of control"
              +
              + +Expand source code + +
              class PerplexityStrategy(BaseStrategy):
              +    """
              +    Search for the best perplexity score.
              +
              +    """
              +    def __init__(self, start_point: float = None, step: float = None,
              +                 max_len: float = 25, threshold: float = 1.05):
              +        """
              +        Initialize stage.
              +
              +        Parameters
              +        ----------
              +        start_point : float
              +           first point for tau progression
              +        step : float
              +            step in tau progression
              +        max_len : int
              +            length of progression
              +        threshold : float
              +            threshold for "perplexity out of control"
              +
              +        """
              +        self.score = []
              +        self.threshold = threshold
              +        self.best_point = None
              +        self.last_point = None
              +        self.grid = None
              +        self.grid_len = None
              +
              +        self.start_point = start_point
              +        self.step = step
              +        self.max_len = max_len
              +
              +    def _set_parameters(self, parameters):
              +        """
              +
              +        Parameters
              +        ----------
              +        parameters : dict
              +
              +        """
              +        if isinstance(parameters, dict):
              +            parameters = [parameters]
              +        for entry in parameters:
              +            if any(key not in entry.keys() for key in ["field", "object", "values"]):
              +                raise ValueError(entry)
              +        self.parameters = parameters
              +
              +    def _get_strategy_parameters(self, saveable_only=False):
              +        """
              +        """
              +        strategy_parameters = {
              +            "score": self.score,
              +            "threshold": self.threshold,
              +            "grid_len": self.grid_len,
              +            "start_point": self.start_point,
              +            "step": self.step,
              +            "max_len": self.max_len
              +        }
              +
              +        if not saveable_only:
              +            strategy_parameters["best_point"] = self.best_point
              +            strategy_parameters["last_point"] = self.last_point
              +            strategy_parameters["grid"] = self.grid
              +            if hasattr(self, "parameters"):
              +                strategy_parameters["parameters"] = self.parameters
              +        else:
              +            strategy_parameters["best_point"] = self.best_point[0][-1]
              +            strategy_parameters["last_point"] = self.last_point[0][-1]
              +
              +        return strategy_parameters
              +
              +    def _set_strategy_parameters(self, strategy_parameters):
              +        """
              +        """
              +        if not isinstance(strategy_parameters, dict):
              +            raise ValueError("Input parameters must be dict.")
              +
              +        for parameter_name in strategy_parameters.keys():
              +            if parameter_name in ["best_point", "last_point"]:
              +                if isinstance(strategy_parameters[parameter_name], (int, float)):
              +                    setattr(self, parameter_name,
              +                            self._implement_tau(strategy_parameters[parameter_name]))
              +            else:
              +                setattr(self, parameter_name, strategy_parameters[parameter_name])
              +
              +    def _implement_tau(self, tau):
              +        """
              +        Converts the tau value given to the internal format.
              +
              +        Parameters
              +        ----------
              +        tau : float
              +
              +        Returns
              +        -------
              +        tuple
              +
              +        """
              +        return ([self.parameters[0]["object"], self.parameters[0]["field"], tau],)
              +
              +    def _endless_generator(self, mode):
              +        """
              +
              +        Parameters
              +        ----------
              +        mode : str
              +            "add" or "mul"
              +
              +        Yields
              +        ------
              +        float in internal format
              +
              +        """
              +        yield self._implement_tau(0)
              +
              +        start_point = self.start_point
              +        step = self.step
              +
              +        if mode == "add":
              +            if step == 0:
              +                warnings.warn('The hyperparameter search space is limited to one point',
              +                              UserWarning)
              +            while True:
              +                yield self._implement_tau(start_point)
              +                start_point += step
              +        else:
              +            if start_point == 0:
              +                raise ValueError("Invalid start point {} for mul strategy".format(start_point))
              +            if step <= 1:
              +                raise ValueError("Invalid step {} for mul strategy".format(step))
              +            while True:
              +                yield self._implement_tau(start_point)
              +                start_point *= step
              +
              +    def prepare_grid(self, other_parameters, reg_search="add"):
              +        """
              +        Creates search space and length for tqdm.
              +        Note, that first point in sequence is always 0.
              +
              +        Parameters
              +        ----------
              +        other_parameters : dict or list of dict
              +            the parameters describing search space. This is a list of entries like
              +            {"object": "smoothSparsePhi", "field": "tau", "values": []}
              +        reg_search : str
              +            "grid", "add" or "mul"
              +            defines grid search or arithmetic or geometric progression
              +
              +        """
              +        self.score = []
              +        if self.start_point and self.step:
              +            if reg_search == "grid":
              +                warnings.warn(f"Grid would be used "
              +                              f"instead of start point {self.start_point} and step {self.step}")
              +            elif reg_search not in ["add", "mul"]:
              +                raise TypeError("Invalid search type")
              +
              +        self._set_parameters(other_parameters)
              +        if reg_search == "grid":
              +            self.parameters[0]["values"] = [0] + self.parameters[0]["values"]
              +        all_coeffs_grid = [
              +            [[params["object"], params["field"], one_value] for one_value in params["values"]]
              +            for params in self.parameters
              +        ]
              +
              +        if reg_search != "grid" and self.start_point is not None and self.step is not None:
              +            self.grid = self._endless_generator(reg_search)
              +        elif reg_search == "grid":
              +            self.grid = product(*all_coeffs_grid)
              +            self.grid_len = len(all_coeffs_grid[0])
              +        if self.grid is None:
              +            raise ValueError(f'Failed to initialize self.grid, check initial parameters.')
              +
              +    def grid_visit_generator(self, other_parameters, reg_search):
              +        """
              +        Yields points from search space with sanity checking of current result.
              +
              +        Parameters
              +        ----------
              +        other_parameters : dict
              +
              +        reg_search : str
              +            "add", "mul" or "grid"
              +
              +        Yields
              +        ------
              +        sequence of points in search space
              +
              +        """
              +        for one_model_values in self.grid:
              +            yield one_model_values
              +
              +            if reg_search != "grid":
              +                self.parameters[0]["values"].append(one_model_values[0][2])
              +                if self.score[-1] / max(self.score[0], 1e-5) > self.threshold:
              +                    warnings.warn(f"Perplexity is too high for threshold {self.threshold}")
              +                    break
              +
              +            if len(self.score) > 4 and len(set(self.score[:-6:-1])) == 1:
              +                warnings.warn("Last five scores are equal, interrupting search")
              +                break
              +            if len(self.score) > self.max_len:
              +                warnings.warn("Max progression length exceeded")
              +                break
              +
              +        best_tau = self.parameters[0]["values"][1:][np.argmin(self.score[1:])]
              +        self.best_point = self._implement_tau(best_tau)
              +        self.last_point = self._implement_tau(self.parameters[0]["values"][-1])
              +
              +    def update_scores(self, new_value):
              +        """
              +
              +        Parameters
              +        ----------
              +        new_value : float
              +
              +        """
              +        if isinstance(new_value, list):
              +            new_value = new_value[0]
              +        self.score.append(new_value)
              +

              Ancestors

              • BaseStrategy
              • @@ -71,6 +531,46 @@

                Yields

                sequence of points in search space
                 
                +
                + +Expand source code + +
                def grid_visit_generator(self, other_parameters, reg_search):
                +    """
                +    Yields points from search space with sanity checking of current result.
                +
                +    Parameters
                +    ----------
                +    other_parameters : dict
                +
                +    reg_search : str
                +        "add", "mul" or "grid"
                +
                +    Yields
                +    ------
                +    sequence of points in search space
                +
                +    """
                +    for one_model_values in self.grid:
                +        yield one_model_values
                +
                +        if reg_search != "grid":
                +            self.parameters[0]["values"].append(one_model_values[0][2])
                +            if self.score[-1] / max(self.score[0], 1e-5) > self.threshold:
                +                warnings.warn(f"Perplexity is too high for threshold {self.threshold}")
                +                break
                +
                +        if len(self.score) > 4 and len(set(self.score[:-6:-1])) == 1:
                +            warnings.warn("Last five scores are equal, interrupting search")
                +            break
                +        if len(self.score) > self.max_len:
                +            warnings.warn("Max progression length exceeded")
                +            break
                +
                +    best_tau = self.parameters[0]["values"][1:][np.argmin(self.score[1:])]
                +    self.best_point = self._implement_tau(best_tau)
                +    self.last_point = self._implement_tau(self.parameters[0]["values"][-1])
                +
                def prepare_grid(self, other_parameters, reg_search='add') @@ -86,6 +586,49 @@

                Parameters

                "grid", "add" or "mul" defines grid search or arithmetic or geometric progression
                +
                + +Expand source code + +
                def prepare_grid(self, other_parameters, reg_search="add"):
                +    """
                +    Creates search space and length for tqdm.
                +    Note, that first point in sequence is always 0.
                +
                +    Parameters
                +    ----------
                +    other_parameters : dict or list of dict
                +        the parameters describing search space. This is a list of entries like
                +        {"object": "smoothSparsePhi", "field": "tau", "values": []}
                +    reg_search : str
                +        "grid", "add" or "mul"
                +        defines grid search or arithmetic or geometric progression
                +
                +    """
                +    self.score = []
                +    if self.start_point and self.step:
                +        if reg_search == "grid":
                +            warnings.warn(f"Grid would be used "
                +                          f"instead of start point {self.start_point} and step {self.step}")
                +        elif reg_search not in ["add", "mul"]:
                +            raise TypeError("Invalid search type")
                +
                +    self._set_parameters(other_parameters)
                +    if reg_search == "grid":
                +        self.parameters[0]["values"] = [0] + self.parameters[0]["values"]
                +    all_coeffs_grid = [
                +        [[params["object"], params["field"], one_value] for one_value in params["values"]]
                +        for params in self.parameters
                +    ]
                +
                +    if reg_search != "grid" and self.start_point is not None and self.step is not None:
                +        self.grid = self._endless_generator(reg_search)
                +    elif reg_search == "grid":
                +        self.grid = product(*all_coeffs_grid)
                +        self.grid_len = len(all_coeffs_grid[0])
                +    if self.grid is None:
                +        raise ValueError(f'Failed to initialize self.grid, check initial parameters.')
                +

                Inherited members

                @@ -126,7 +669,9 @@

                -

                Generated by pdoc 0.6.3.

                +

                Generated by pdoc 0.7.2.

                + + \ No newline at end of file diff --git a/docs/cooking_machine/cubes/regularizer_cube.html b/docs/cooking_machine/cubes/regularizer_cube.html index 7e44083..8a09bfe 100644 --- a/docs/cooking_machine/cubes/regularizer_cube.html +++ b/docs/cooking_machine/cubes/regularizer_cube.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.cubes.regularizer_cube API documentation - + + @@ -19,6 +20,198 @@

                Module topicnet.cooking_machine.cubes.regularizer_cube

                +
                + +Expand source code + +
                from .base_cube import BaseCube
                +from ..routine import transform_complex_entity_to_dict
                +from ..rel_toolbox_lite import count_vocab_size, handle_regularizer
                +from copy import deepcopy
                +
                +
                +class RegularizersModifierCube(BaseCube):
                +    """
                +    Allows to create cubes of training and apply them to a topic model.
                +
                +    """
                +    def __init__(self, num_iter: int, regularizer_parameters,
                +                 reg_search='grid', use_relative_coefficients: bool = True, strategy=None,
                +                 tracked_score_function=None,
                +                 verbose: bool = False, separate_thread: bool = True):
                +        """
                +        Initialize stage. Checks params and update internal attributes.
                +
                +        Parameters
                +        ----------
                +        num_iter : int
                +            number of iterations or method
                +        regularizer_parameters : list[dict] or dict
                +            regularizers params
                +        reg_search : str
                +            "grid", "pair", "add" or "mul". 
                +            "pair" for elementwise grid search in the case of several regularizers 
                +            "grid" for the fullgrid search in the case of several regularizers 
                +            "add" and "mul" for the ariphmetic and geometric progression
                +            respectively for PerplexityStrategy 
                +            (Default value = "grid")
                +        use_relative_coefficients : bool
                +            forces the regularizer coefficient to be in relative form
                +            i.e. normalized over collection properties
                +        strategy : BaseStrategy
                +            optimization approach (Default value = None)
                +        tracked_score_function : retrieve_score_for_strategy
                +            optimizable function for strategy (Default value = None)
                +        verbose : bool
                +            visualization flag (Default value = False)
                +        separate_thread : bool
                +            will train models inside a separate thread if True
                +
                +        """  # noqa: W291
                +        super().__init__(num_iter=num_iter, action='reg_modifier',
                +                         reg_search=reg_search, strategy=strategy,
                +                         tracked_score_function=tracked_score_function, verbose=verbose,
                +                         separate_thread=separate_thread)
                +        self._relative = use_relative_coefficients
                +        if isinstance(regularizer_parameters, dict):
                +            regularizer_parameters = [regularizer_parameters]
                +        self._add_regularizers(regularizer_parameters)
                +
                +    def _check_all_regularizer_parameters(self, regularizer_parameters):
                +        """
                +        Checks and updates params of all regularizers. Inplace.
                +
                +        Parameters
                +        ----------
                +        regularizer_parameters : list of dict
                +
                +        """
                +        if len(regularizer_parameters) <= 0:
                +            raise ValueError("There is no parameters.")
                +
                +        for i, one_regularizer_parameters in enumerate(regularizer_parameters):
                +            if not isinstance(one_regularizer_parameters, dict):
                +                wrong_type = type(one_regularizer_parameters)
                +                raise ValueError(f"One regularizer should be dict, not {wrong_type}")
                +
                +        if self.reg_search == "pair":
                +            # TODO: infinite length support
                +            grid_size = len(regularizer_parameters[0]["tau_grid"])
                +            for one_regularizer_parameters in regularizer_parameters:
                +                if len(one_regularizer_parameters["tau_grid"]) != grid_size:
                +                    raise ValueError("Grid size is not the same.")
                +
                +    def _add_regularizers(self, all_regularizer_parameters):
                +        """
                +
                +        Parameters
                +        ----------
                +        all_regularizer_parameters : list of dict
                +
                +        """
                +        self._check_all_regularizer_parameters(all_regularizer_parameters)
                +        self.raw_parameters = all_regularizer_parameters
                +
                +        def _retrieve_object(params):
                +            """
                +
                +            Parameters
                +            ----------
                +            params : dict
                +
                +            Returns
                +            -------
                +
                +            """
                +            if "regularizer" in params:
                +                return params["regularizer"]
                +            else:
                +                return {"name": params["name"]}
                +
                +        self.parameters = [
                +            {
                +                "object": _retrieve_object(params),
                +                "field": "tau",
                +                "values": params.get('tau_grid', [])
                +            }
                +            for params in all_regularizer_parameters
                +        ]
                +
                +    def apply(self, topic_model, one_model_parameter, dictionary=None, model_id=None):
                +        """
                +        Applies regularizers and parameters to model
                +
                +        Parameters
                +        ----------
                +        topic_model : TopicModel
                +        one_model_parameter : list or tuple
                +        dictionary : Dictionary
                +            (Default value = None)
                +        model_id : str
                +            (Default value = None)
                +
                +        Returns
                +        -------
                +        TopicModel
                +
                +        """
                +        new_model = topic_model.clone(model_id)
                +        new_model.parent_model_id = topic_model.model_id
                +
                +        modalities = dict()
                +        self.data_stats = None
                +        if self._relative:
                +            modalities = new_model.class_ids
                +            if not getattr(self, 'data_stats', None):
                +                self.data_stats = count_vocab_size(dictionary, modalities)
                +
                +        for regularizer_data in one_model_parameter:
                +            regularizer, field_name, params = regularizer_data
                +            regularizer_type = str(type(regularizer))
                +            if isinstance(regularizer, dict):
                +                if regularizer['name'] in new_model.all_regularizers.keys():
                +                    new_regularizer = deepcopy(new_model.all_regularizers[regularizer['name']])
                +                    new_regularizer._tau = params
                +                    handle_regularizer(
                +                        self._relative,
                +                        new_model,
                +                        new_regularizer,
                +                        self.data_stats,
                +                    )
                +                else:
                +                    error_msg = (f"Regularizer {regularizer['name']} does not exist. "
                +                                 f"Cannot be modified.")
                +                    raise ValueError(error_msg)
                +            elif 'Regularizer' in regularizer_type:
                +                new_regularizer = deepcopy(regularizer)
                +                new_regularizer._tau = params
                +                handle_regularizer(
                +                    self._relative,
                +                    new_model,
                +                    new_regularizer,
                +                    self.data_stats,
                +                )
                +            else:
                +                error_msg = f"Regularizer instance or name must be specified for {regularizer}."
                +                raise ValueError(error_msg)
                +        return new_model
                +
                +    def get_jsonable_from_parameters(self):
                +        """ """
                +        jsonable_parameters = []
                +        for one_model_parameters in self.raw_parameters:
                +            one_jsonable = {"tau_grid": one_model_parameters.get("tau_grid", [])}
                +            if "regularizer" in one_model_parameters:
                +                one_regularizer = one_model_parameters['regularizer']
                +                if not isinstance(one_regularizer, dict):
                +                    one_regularizer = transform_complex_entity_to_dict(one_regularizer)
                +                one_jsonable["regularizer"] = one_regularizer
                +            else:
                +                one_jsonable["name"] = one_model_parameters["name"]
                +            jsonable_parameters.append(one_jsonable)
                +
                +        return jsonable_parameters
                +
                @@ -61,6 +254,192 @@

                Parameters

                separate_thread : bool
                will train models inside a separate thread if True
                +
                + +Expand source code + +
                class RegularizersModifierCube(BaseCube):
                +    """
                +    Allows to create cubes of training and apply them to a topic model.
                +
                +    """
                +    def __init__(self, num_iter: int, regularizer_parameters,
                +                 reg_search='grid', use_relative_coefficients: bool = True, strategy=None,
                +                 tracked_score_function=None,
                +                 verbose: bool = False, separate_thread: bool = True):
                +        """
                +        Initialize stage. Checks params and update internal attributes.
                +
                +        Parameters
                +        ----------
                +        num_iter : int
                +            number of iterations or method
                +        regularizer_parameters : list[dict] or dict
                +            regularizers params
                +        reg_search : str
                +            "grid", "pair", "add" or "mul". 
                +            "pair" for elementwise grid search in the case of several regularizers 
                +            "grid" for the fullgrid search in the case of several regularizers 
                +            "add" and "mul" for the ariphmetic and geometric progression
                +            respectively for PerplexityStrategy 
                +            (Default value = "grid")
                +        use_relative_coefficients : bool
                +            forces the regularizer coefficient to be in relative form
                +            i.e. normalized over collection properties
                +        strategy : BaseStrategy
                +            optimization approach (Default value = None)
                +        tracked_score_function : retrieve_score_for_strategy
                +            optimizable function for strategy (Default value = None)
                +        verbose : bool
                +            visualization flag (Default value = False)
                +        separate_thread : bool
                +            will train models inside a separate thread if True
                +
                +        """  # noqa: W291
                +        super().__init__(num_iter=num_iter, action='reg_modifier',
                +                         reg_search=reg_search, strategy=strategy,
                +                         tracked_score_function=tracked_score_function, verbose=verbose,
                +                         separate_thread=separate_thread)
                +        self._relative = use_relative_coefficients
                +        if isinstance(regularizer_parameters, dict):
                +            regularizer_parameters = [regularizer_parameters]
                +        self._add_regularizers(regularizer_parameters)
                +
                +    def _check_all_regularizer_parameters(self, regularizer_parameters):
                +        """
                +        Checks and updates params of all regularizers. Inplace.
                +
                +        Parameters
                +        ----------
                +        regularizer_parameters : list of dict
                +
                +        """
                +        if len(regularizer_parameters) <= 0:
                +            raise ValueError("There is no parameters.")
                +
                +        for i, one_regularizer_parameters in enumerate(regularizer_parameters):
                +            if not isinstance(one_regularizer_parameters, dict):
                +                wrong_type = type(one_regularizer_parameters)
                +                raise ValueError(f"One regularizer should be dict, not {wrong_type}")
                +
                +        if self.reg_search == "pair":
                +            # TODO: infinite length support
                +            grid_size = len(regularizer_parameters[0]["tau_grid"])
                +            for one_regularizer_parameters in regularizer_parameters:
                +                if len(one_regularizer_parameters["tau_grid"]) != grid_size:
                +                    raise ValueError("Grid size is not the same.")
                +
                +    def _add_regularizers(self, all_regularizer_parameters):
                +        """
                +
                +        Parameters
                +        ----------
                +        all_regularizer_parameters : list of dict
                +
                +        """
                +        self._check_all_regularizer_parameters(all_regularizer_parameters)
                +        self.raw_parameters = all_regularizer_parameters
                +
                +        def _retrieve_object(params):
                +            """
                +
                +            Parameters
                +            ----------
                +            params : dict
                +
                +            Returns
                +            -------
                +
                +            """
                +            if "regularizer" in params:
                +                return params["regularizer"]
                +            else:
                +                return {"name": params["name"]}
                +
                +        self.parameters = [
                +            {
                +                "object": _retrieve_object(params),
                +                "field": "tau",
                +                "values": params.get('tau_grid', [])
                +            }
                +            for params in all_regularizer_parameters
                +        ]
                +
                +    def apply(self, topic_model, one_model_parameter, dictionary=None, model_id=None):
                +        """
                +        Applies regularizers and parameters to model
                +
                +        Parameters
                +        ----------
                +        topic_model : TopicModel
                +        one_model_parameter : list or tuple
                +        dictionary : Dictionary
                +            (Default value = None)
                +        model_id : str
                +            (Default value = None)
                +
                +        Returns
                +        -------
                +        TopicModel
                +
                +        """
                +        new_model = topic_model.clone(model_id)
                +        new_model.parent_model_id = topic_model.model_id
                +
                +        modalities = dict()
                +        self.data_stats = None
                +        if self._relative:
                +            modalities = new_model.class_ids
                +            if not getattr(self, 'data_stats', None):
                +                self.data_stats = count_vocab_size(dictionary, modalities)
                +
                +        for regularizer_data in one_model_parameter:
                +            regularizer, field_name, params = regularizer_data
                +            regularizer_type = str(type(regularizer))
                +            if isinstance(regularizer, dict):
                +                if regularizer['name'] in new_model.all_regularizers.keys():
                +                    new_regularizer = deepcopy(new_model.all_regularizers[regularizer['name']])
                +                    new_regularizer._tau = params
                +                    handle_regularizer(
                +                        self._relative,
                +                        new_model,
                +                        new_regularizer,
                +                        self.data_stats,
                +                    )
                +                else:
                +                    error_msg = (f"Regularizer {regularizer['name']} does not exist. "
                +                                 f"Cannot be modified.")
                +                    raise ValueError(error_msg)
                +            elif 'Regularizer' in regularizer_type:
                +                new_regularizer = deepcopy(regularizer)
                +                new_regularizer._tau = params
                +                handle_regularizer(
                +                    self._relative,
                +                    new_model,
                +                    new_regularizer,
                +                    self.data_stats,
                +                )
                +            else:
                +                error_msg = f"Regularizer instance or name must be specified for {regularizer}."
                +                raise ValueError(error_msg)
                +        return new_model
                +
                +    def get_jsonable_from_parameters(self):
                +        """ """
                +        jsonable_parameters = []
                +        for one_model_parameters in self.raw_parameters:
                +            one_jsonable = {"tau_grid": one_model_parameters.get("tau_grid", [])}
                +            if "regularizer" in one_model_parameters:
                +                one_regularizer = one_model_parameters['regularizer']
                +                if not isinstance(one_regularizer, dict):
                +                    one_regularizer = transform_complex_entity_to_dict(one_regularizer)
                +                one_jsonable["regularizer"] = one_regularizer
                +            else:
                +                one_jsonable["name"] = one_model_parameters["name"]
                +            jsonable_parameters.append(one_jsonable)
                +
                +        return jsonable_parameters
                +

                Ancestors

                • BaseCube
                • @@ -88,6 +467,69 @@

                  Returns

                  TopicModel
                   
                  +
                  + +Expand source code + +
                  def apply(self, topic_model, one_model_parameter, dictionary=None, model_id=None):
                  +    """
                  +    Applies regularizers and parameters to model
                  +
                  +    Parameters
                  +    ----------
                  +    topic_model : TopicModel
                  +    one_model_parameter : list or tuple
                  +    dictionary : Dictionary
                  +        (Default value = None)
                  +    model_id : str
                  +        (Default value = None)
                  +
                  +    Returns
                  +    -------
                  +    TopicModel
                  +
                  +    """
                  +    new_model = topic_model.clone(model_id)
                  +    new_model.parent_model_id = topic_model.model_id
                  +
                  +    modalities = dict()
                  +    self.data_stats = None
                  +    if self._relative:
                  +        modalities = new_model.class_ids
                  +        if not getattr(self, 'data_stats', None):
                  +            self.data_stats = count_vocab_size(dictionary, modalities)
                  +
                  +    for regularizer_data in one_model_parameter:
                  +        regularizer, field_name, params = regularizer_data
                  +        regularizer_type = str(type(regularizer))
                  +        if isinstance(regularizer, dict):
                  +            if regularizer['name'] in new_model.all_regularizers.keys():
                  +                new_regularizer = deepcopy(new_model.all_regularizers[regularizer['name']])
                  +                new_regularizer._tau = params
                  +                handle_regularizer(
                  +                    self._relative,
                  +                    new_model,
                  +                    new_regularizer,
                  +                    self.data_stats,
                  +                )
                  +            else:
                  +                error_msg = (f"Regularizer {regularizer['name']} does not exist. "
                  +                             f"Cannot be modified.")
                  +                raise ValueError(error_msg)
                  +        elif 'Regularizer' in regularizer_type:
                  +            new_regularizer = deepcopy(regularizer)
                  +            new_regularizer._tau = params
                  +            handle_regularizer(
                  +                self._relative,
                  +                new_model,
                  +                new_regularizer,
                  +                self.data_stats,
                  +            )
                  +        else:
                  +            error_msg = f"Regularizer instance or name must be specified for {regularizer}."
                  +            raise ValueError(error_msg)
                  +    return new_model
                  +

                  Inherited members

                  @@ -127,7 +569,9 @@

                  -

                  Generated by pdoc 0.6.3.

                  +

                  Generated by pdoc 0.7.2.

                  + + \ No newline at end of file diff --git a/docs/cooking_machine/cubes/strategy.html b/docs/cooking_machine/cubes/strategy.html index 5e7c32b..7748640 100644 --- a/docs/cooking_machine/cubes/strategy.html +++ b/docs/cooking_machine/cubes/strategy.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.cubes.strategy API documentation - + + @@ -19,6 +20,119 @@

                  Module topicnet.cooking_machine.cubes.strategy

                  +
                  + +Expand source code + +
                  from itertools import product
                  +from functools import reduce
                  +from operator import mul
                  +
                  +
                  +class BaseStrategy():
                  +    """
                  +    Allows to visit nodes of parameters' grid in a particular order.
                  +
                  +    """
                  +    def __init__(self):
                  +        """
                  +        Initialize stage. Checks params and update internal attributes.
                  +
                  +        """
                  +        self.score = []
                  +        self.grid = []
                  +        self.grid_len = None
                  +
                  +    def _set_parameters(self, parameters):
                  +        """
                  +
                  +        Parameters
                  +        ----------
                  +        parameters : dict or list of dict
                  +
                  +        """
                  +        if isinstance(parameters, dict):
                  +            parameters = [parameters]
                  +        for entry in parameters:
                  +            if any(key not in entry.keys() for key in ["field", "object", "values"]):
                  +                raise ValueError(entry)
                  +        self.parameters = parameters
                  +
                  +    def _get_strategy_parameters(self, saveable_only=False):
                  +        """
                  +        """
                  +        strategy_parameters = {
                  +            "score": self.score,
                  +            "grid_len": self.grid_len
                  +        }
                  +
                  +        if not saveable_only:
                  +            strategy_parameters["grid"] = self.grid
                  +            if hasattr(self, "parameters"):
                  +                strategy_parameters["parameters"] = self.parameters
                  +
                  +        return strategy_parameters
                  +
                  +    def _set_strategy_parameters(self, strategy_parameters):
                  +        """
                  +        """
                  +        if not isinstance(strategy_parameters, dict):
                  +            raise ValueError("Input parameters must be dict.")
                  +
                  +        for parameter_name in strategy_parameters.keys():
                  +            setattr(self, parameter_name, strategy_parameters[parameter_name])
                  +
                  +    def prepare_grid(self, other_parameters, reg_search):
                  +        """
                  +        Creates grid for the search. Inplace.
                  +
                  +        Parameters
                  +        ----------
                  +        other_parameters : dict or list of dict
                  +        reg_search : str
                  +            "grid" or "pair" (and "add" or "mul" for perplexity)
                  +
                  +        """
                  +        self._set_parameters(other_parameters)
                  +        all_coeffs_grid = [
                  +            [[params["object"], params["field"], one_value] for one_value in params["values"]]
                  +            for params in self.parameters
                  +        ]
                  +
                  +        if reg_search == "grid":
                  +            self.grid = product(*all_coeffs_grid)
                  +            self.grid_len = reduce(mul, map(len, all_coeffs_grid), 1)
                  +        elif reg_search == "pair":
                  +            self.grid = zip(*all_coeffs_grid)
                  +            self.grid_len = len(all_coeffs_grid[0])
                  +
                  +    def grid_visit_generator(self, other_parameters, reg_search):
                  +        """
                  +
                  +        Parameters
                  +        ----------
                  +        other_parameters : dict or list of dict
                  +        reg_search : str
                  +
                  +        Yields
                  +        ------
                  +        list or tuple
                  +            one parameters set for model
                  +
                  +        """
                  +        for one_model_values in self.grid:
                  +            yield one_model_values
                  +
                  +    def update_scores(self, new_value):
                  +        """
                  +
                  +        Parameters
                  +        ----------
                  +        new_value : float
                  +
                  +        """
                  +        self.score.append(new_value)
                  +
                  @@ -35,6 +149,114 @@

                  Classes

                  Allows to visit nodes of parameters' grid in a particular order.

                  Initialize stage. Checks params and update internal attributes.

                  +
                  + +Expand source code + +
                  class BaseStrategy():
                  +    """
                  +    Allows to visit nodes of parameters' grid in a particular order.
                  +
                  +    """
                  +    def __init__(self):
                  +        """
                  +        Initialize stage. Checks params and update internal attributes.
                  +
                  +        """
                  +        self.score = []
                  +        self.grid = []
                  +        self.grid_len = None
                  +
                  +    def _set_parameters(self, parameters):
                  +        """
                  +
                  +        Parameters
                  +        ----------
                  +        parameters : dict or list of dict
                  +
                  +        """
                  +        if isinstance(parameters, dict):
                  +            parameters = [parameters]
                  +        for entry in parameters:
                  +            if any(key not in entry.keys() for key in ["field", "object", "values"]):
                  +                raise ValueError(entry)
                  +        self.parameters = parameters
                  +
                  +    def _get_strategy_parameters(self, saveable_only=False):
                  +        """
                  +        """
                  +        strategy_parameters = {
                  +            "score": self.score,
                  +            "grid_len": self.grid_len
                  +        }
                  +
                  +        if not saveable_only:
                  +            strategy_parameters["grid"] = self.grid
                  +            if hasattr(self, "parameters"):
                  +                strategy_parameters["parameters"] = self.parameters
                  +
                  +        return strategy_parameters
                  +
                  +    def _set_strategy_parameters(self, strategy_parameters):
                  +        """
                  +        """
                  +        if not isinstance(strategy_parameters, dict):
                  +            raise ValueError("Input parameters must be dict.")
                  +
                  +        for parameter_name in strategy_parameters.keys():
                  +            setattr(self, parameter_name, strategy_parameters[parameter_name])
                  +
                  +    def prepare_grid(self, other_parameters, reg_search):
                  +        """
                  +        Creates grid for the search. Inplace.
                  +
                  +        Parameters
                  +        ----------
                  +        other_parameters : dict or list of dict
                  +        reg_search : str
                  +            "grid" or "pair" (and "add" or "mul" for perplexity)
                  +
                  +        """
                  +        self._set_parameters(other_parameters)
                  +        all_coeffs_grid = [
                  +            [[params["object"], params["field"], one_value] for one_value in params["values"]]
                  +            for params in self.parameters
                  +        ]
                  +
                  +        if reg_search == "grid":
                  +            self.grid = product(*all_coeffs_grid)
                  +            self.grid_len = reduce(mul, map(len, all_coeffs_grid), 1)
                  +        elif reg_search == "pair":
                  +            self.grid = zip(*all_coeffs_grid)
                  +            self.grid_len = len(all_coeffs_grid[0])
                  +
                  +    def grid_visit_generator(self, other_parameters, reg_search):
                  +        """
                  +
                  +        Parameters
                  +        ----------
                  +        other_parameters : dict or list of dict
                  +        reg_search : str
                  +
                  +        Yields
                  +        ------
                  +        list or tuple
                  +            one parameters set for model
                  +
                  +        """
                  +        for one_model_values in self.grid:
                  +            yield one_model_values
                  +
                  +    def update_scores(self, new_value):
                  +        """
                  +
                  +        Parameters
                  +        ----------
                  +        new_value : float
                  +
                  +        """
                  +        self.score.append(new_value)
                  +

                  Subclasses

                  • PerplexityStrategy
                  • @@ -58,6 +280,27 @@

                    Yields

                    list or tuple
                    one parameters set for model
                    +
                    + +Expand source code + +
                    def grid_visit_generator(self, other_parameters, reg_search):
                    +    """
                    +
                    +    Parameters
                    +    ----------
                    +    other_parameters : dict or list of dict
                    +    reg_search : str
                    +
                    +    Yields
                    +    ------
                    +    list or tuple
                    +        one parameters set for model
                    +
                    +    """
                    +    for one_model_values in self.grid:
                    +        yield one_model_values
                    +
                  def prepare_grid(self, other_parameters, reg_search) @@ -71,6 +314,34 @@

                  Parameters

                  reg_search : str
                  "grid" or "pair" (and "add" or "mul" for perplexity)
                  +
                  + +Expand source code + +
                  def prepare_grid(self, other_parameters, reg_search):
                  +    """
                  +    Creates grid for the search. Inplace.
                  +
                  +    Parameters
                  +    ----------
                  +    other_parameters : dict or list of dict
                  +    reg_search : str
                  +        "grid" or "pair" (and "add" or "mul" for perplexity)
                  +
                  +    """
                  +    self._set_parameters(other_parameters)
                  +    all_coeffs_grid = [
                  +        [[params["object"], params["field"], one_value] for one_value in params["values"]]
                  +        for params in self.parameters
                  +    ]
                  +
                  +    if reg_search == "grid":
                  +        self.grid = product(*all_coeffs_grid)
                  +        self.grid_len = reduce(mul, map(len, all_coeffs_grid), 1)
                  +    elif reg_search == "pair":
                  +        self.grid = zip(*all_coeffs_grid)
                  +        self.grid_len = len(all_coeffs_grid[0])
                  +
                  def update_scores(self, new_value) @@ -81,6 +352,20 @@

                  Parameters

                  new_value : float
                   
                  +
                  + +Expand source code + +
                  def update_scores(self, new_value):
                  +    """
                  +
                  +    Parameters
                  +    ----------
                  +    new_value : float
                  +
                  +    """
                  +    self.score.append(new_value)
                  +
                  @@ -114,7 +399,9 @@

                  -

                  Generated by pdoc 0.6.3.

                  +

                  Generated by pdoc 0.7.2.

                  + + \ No newline at end of file diff --git a/docs/cooking_machine/dataset.html b/docs/cooking_machine/dataset.html index cda323d..f17d2e7 100644 --- a/docs/cooking_machine/dataset.html +++ b/docs/cooking_machine/dataset.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.dataset API documentation - + + @@ -19,6 +20,469 @@

                  Module topicnet.cooking_machine.dataset

                  +
                  + +Expand source code + +
                  import os
                  +import sys
                  +import csv
                  +import artm
                  +import shutil
                  +import warnings
                  +
                  +import pandas as pd
                  +from glob import glob
                  +from .routine import blake2bchecksum
                  +
                  +W_DIFF_BATCHES_1 = "Attempted to use batches for different dataset."
                  +W_DIFF_BATCHES_2 = "Overwriting batches in {0}"
                  +
                  +DEFAULT_ARTM_MODALITY = '@default_class'  # TODO: how to get this value from artm library?
                  +MODALITY_START_SYMBOL = '|'
                  +
                  +# change log style
                  +lc = artm.messages.ConfigureLoggingArgs()
                  +lc.minloglevel = 3
                  +lib = artm.wrapper.LibArtm(logging_config=lc)
                  +
                  +
                  +def _fix_max_string_size():
                  +    maxInt = sys.maxsize
                  +    while True:
                  +        # decrease the maxInt value by factor 10
                  +        # as long as the OverflowError occurs.
                  +        try:
                  +            csv.field_size_limit(maxInt)
                  +            break
                  +        except OverflowError:
                  +            maxInt = int(maxInt/10)
                  +
                  +
                  +def get_modality_names(vw_string):
                  +    """
                  +    Gets modality names from vw_string.
                  +
                  +    Parameters
                  +    ----------
                  +    vw_string : str
                  +        string in vw format
                  +
                  +    Returns
                  +    -------
                  +    str
                  +        document id
                  +    list of str
                  +        modalities in document
                  +
                  +    """
                  +    modalities = vw_string.split(MODALITY_START_SYMBOL)
                  +    modality_names = [mod.split(' ')[0] for mod in modalities]
                  +    doc_id = modality_names[0]
                  +    modality_names = list(set(modality_names[1:]))
                  +    return doc_id, modality_names
                  +
                  +
                  +def get_modality_vw(vw_string, modality_name):
                  +    """
                  +    Gets modality string from document vw string.
                  +
                  +    Parameters
                  +    ----------
                  +    vw_string : str
                  +        string in vw format
                  +    modality_name : str
                  +        name of the modality
                  +
                  +    Returns
                  +    -------
                  +    str
                  +        content of modality_name modality
                  +
                  +    """
                  +    modality_contents = vw_string.split(MODALITY_START_SYMBOL)
                  +    for one_modality_content in modality_contents:
                  +        if one_modality_content[:len(modality_name)] == modality_name:
                  +            return one_modality_content[len(modality_name):]
                  +    return ""
                  +
                  +
                  +VW_TEXT_COL = 'vw_text'
                  +RAW_TEXT_COL = 'raw_text'
                  +
                  +
                  +class BaseDataset:
                  +    """ """
                  +    def get_source_document(self, document_id):
                  +        """
                  +
                  +        Parameters
                  +        ----------
                  +        document_id : str
                  +
                  +        """
                  +        raise NotImplementedError
                  +
                  +    def _transform_data_for_training(self):
                  +        """ """
                  +        raise NotImplementedError
                  +
                  +
                  +class Dataset(BaseDataset):
                  +    """
                  +    Class for keeping training data and documents for creation models.
                  +
                  +    """
                  +    def __init__(self, data_path,
                  +                 keep_in_memory=True,
                  +                 batch_vectorizer_path=None,
                  +                 batch_size=1000):
                  +        """
                  +
                  +        Parameters
                  +        ----------
                  +        data_path : str
                  +            path to a CSV file with input data for training models,
                  +            format of the file is <id>,<raw text>,<Vowpal Wabbit text>
                  +        keep_in_memory: bool
                  +            a flag determining if the collection is small enough to
                  +            be kept in memory.
                  +        batch_vectorizer_path : str
                  +            path to the directory with collection batches
                  +        batch_size : int
                  +            number of documents in one batch
                  +
                  +        """
                  +        # set main data
                  +        self._data_path = data_path
                  +        self._small_data = keep_in_memory
                  +        # making document entry as big as possible
                  +        _fix_max_string_size()
                  +        self._data_hash = None
                  +        self._cached_dict = None
                  +        if os.path.exists(data_path):
                  +            self._data = self._read_data(data_path)
                  +        else:
                  +            raise ValueError('File {!r} doesn\'t exist'.format(data_path))
                  +
                  +        # set batch vectorizer path
                  +        if batch_vectorizer_path is not None:
                  +            self._batch_vectorizer_path = batch_vectorizer_path
                  +        else:
                  +            dot_position = data_path.rfind('.')
                  +            dot_position = dot_position if dot_position > 0 else len(data_path)
                  +            self._batch_vectorizer_path = data_path[:dot_position] + '_batches'
                  +
                  +        self._modalities = self._extract_possible_modalities()
                  +        self.batch_size = batch_size
                  +
                  +    def _read_data(self, data_path):
                  +        """
                  +
                  +        Parameters
                  +        ----------
                  +        data_path : str
                  +
                  +        Returns
                  +        -------
                  +        pd.DataFrame
                  +            data from data_path
                  +
                  +        """
                  +        dot_position = data_path.rfind('.')
                  +        if dot_position == -1:
                  +            raise TypeError('filename should contain . to define type')
                  +
                  +        file_type = data_path[dot_position + 1:]
                  +        if self._small_data:
                  +            import pandas as data_handle
                  +        else:
                  +            import dask.dataframe as data_handle
                  +
                  +        if file_type == 'csv':
                  +            data = data_handle.read_csv(
                  +                data_path,
                  +                engine='python',
                  +                error_bad_lines=False,
                  +            )
                  +        elif file_type == 'pkl':
                  +            try:
                  +                data = data_handle.read_pickle(
                  +                    data_path,
                  +                    engine='python',
                  +                    error_bad_lines=False,
                  +                )
                  +            except AttributeError:
                  +                raise('Cant handle big *.pkl files')
                  +        elif file_type == 'txt' or file_type == 'vw':
                  +            data = data_handle.read_csv(
                  +                data_path,
                  +                engine='python',
                  +                error_bad_lines=False,
                  +                sep='\n',
                  +                header=None,
                  +                names=[VW_TEXT_COL]
                  +            )
                  +            data[RAW_TEXT_COL] = ''
                  +
                  +            data['id'] = data[VW_TEXT_COL].str.partition(' ')[0]
                  +        else:
                  +            raise TypeError('Unknown file type')
                  +        data['id'] = data['id'].astype('str')
                  +        data = data.set_index('id')
                  +        if VW_TEXT_COL not in data.columns:
                  +            raise ValueError('data should contain VW field')
                  +        return data
                  +
                  +    def get_dataset(self):
                  +        """ """
                  +        return self._data
                  +
                  +    def get_vw_document(self, document_id):
                  +        """
                  +        Get 'vw_text' for the document with document_id.
                  +
                  +        Parameters
                  +        ----------
                  +        document_id : str
                  +
                  +        Returns
                  +        -------
                  +        list of str
                  +            document id and content of 'vw_text' column
                  +
                  +        """
                  +        if not isinstance(document_id, list):
                  +            document_id = [document_id]
                  +        if self._small_data:
                  +            in_index = self._data.index.intersection(document_id)
                  +            back_pd = pd.DataFrame(
                  +                self._data.loc[in_index, VW_TEXT_COL]
                  +                .reindex(document_id)
                  +                .fillna('Not Found')
                  +            )
                  +            return back_pd
                  +        else:
                  +            data_indices = self._data.index.compute()
                  +            in_index = [
                  +                doc_id for doc_id in document_id
                  +                if doc_id in data_indices
                  +            ]
                  +            back_pd = pd.DataFrame(
                  +                self._data.loc[in_index, VW_TEXT_COL].compute()
                  +                .reindex(document_id)
                  +                .fillna('Not Found')
                  +            )
                  +            return back_pd
                  +
                  +    def get_source_document(self, document_id):
                  +        """
                  +        Get 'raw_text' for the document with document_id.
                  +
                  +        Parameters
                  +        ----------
                  +        document_id : str
                  +
                  +        Returns
                  +        -------
                  +        list of str
                  +            document id and content of 'raw_text' column
                  +
                  +        """
                  +        if not isinstance(document_id, list):
                  +            document_id = [document_id]
                  +        if self._small_data:
                  +            in_index = self._data.index.intersection(document_id)
                  +            back_pd = pd.DataFrame(
                  +                self._data.loc[in_index, RAW_TEXT_COL]
                  +                .reindex(document_id)
                  +                .fillna('Not Found')
                  +            )
                  +            return back_pd
                  +        else:
                  +            data_indices = self._data.index.compute()
                  +            in_index = [
                  +                doc_id for doc_id in document_id
                  +                if doc_id in data_indices
                  +            ]
                  +            back_pd = pd.DataFrame(
                  +                self._data.loc[in_index, RAW_TEXT_COL].compute()
                  +                .reindex(document_id)
                  +                .fillna('Not Found')
                  +            )
                  +            return back_pd
                  +
                  +    def write_vw(self, file_path):
                  +        """ """
                  +        with open(file_path, 'w', encoding='utf-8') as f:
                  +            for index, data in self._data.iterrows():
                  +                vw_string = data[VW_TEXT_COL]
                  +                f.write(vw_string + '\n')
                  +
                  +    def _check_collection(self, data_path):
                  +        """
                  +        Checks if folder with collection:
                  +        1) Exists
                  +        2) Same as the one this dataset holds
                  +
                  +        Parameters
                  +        ----------
                  +        data_path : str
                  +            folder for the checking
                  +        Returns
                  +        -------
                  +        same_collection : bool
                  +        """
                  +        path_to_collection = os.path.join(data_path, 'vw.txt')
                  +        if not os.path.exists(data_path):
                  +            os.mkdir(data_path)
                  +            return False, path_to_collection
                  +
                  +        if self._data_hash is None:
                  +            temp_file_path = os.path.join(data_path, 'temp_vw.txt')
                  +            self.write_vw(temp_file_path)
                  +            self._data_hash = blake2bchecksum(temp_file_path)
                  +            os.remove(temp_file_path)
                  +
                  +        if os.path.isfile(path_to_collection):
                  +            same_collection = blake2bchecksum(path_to_collection) == self._data_hash
                  +        else:
                  +            same_collection = False
                  +        return same_collection, path_to_collection
                  +
                  +    def get_batch_vectorizer(self, batch_vectorizer_path=None):
                  +        """
                  +        Get batch vectorizer.
                  +
                  +        Parameters
                  +        ----------
                  +        batch_vectorizer_path : str
                  +             (Default value = None)
                  +
                  +        Returns
                  +        -------
                  +        batch_vectorizer :
                  +
                  +        """
                  +        if batch_vectorizer_path is None:
                  +            batch_vectorizer_path = self._batch_vectorizer_path
                  +
                  +        same_collection, path_to_collection = self._check_collection(
                  +            batch_vectorizer_path
                  +        )
                  +
                  +        if same_collection:
                  +            batches_exist = len(glob(os.path.join(batch_vectorizer_path, '*.batch'))) > 0
                  +            if not batches_exist:
                  +                self.write_vw(path_to_collection)
                  +                batch_vectorizer = artm.BatchVectorizer(
                  +                    data_path=path_to_collection,
                  +                    data_format='vowpal_wabbit',
                  +                    target_folder=batch_vectorizer_path,
                  +                    batch_size=self.batch_size
                  +                )
                  +            else:
                  +                batch_vectorizer = artm.BatchVectorizer(
                  +                    data_path=batch_vectorizer_path,
                  +                    data_format='batches'
                  +                )
                  +        else:
                  +            warnings.warn(W_DIFF_BATCHES_1 + W_DIFF_BATCHES_2.format(batch_vectorizer_path))
                  +            try:
                  +                shutil.rmtree(batch_vectorizer_path)
                  +            except FileNotFoundError:
                  +                pass
                  +            os.mkdir(batch_vectorizer_path)
                  +            self.write_vw(path_to_collection)
                  +
                  +            batch_vectorizer = artm.BatchVectorizer(
                  +                data_path=path_to_collection,
                  +                data_format='vowpal_wabbit',
                  +                target_folder=batch_vectorizer_path,
                  +                batch_size=self.batch_size
                  +            )
                  +
                  +        return batch_vectorizer
                  +
                  +    def get_dictionary(self, batch_vectorizer_path=None):
                  +        """
                  +        Get dictionary.
                  +
                  +        Parameters
                  +        ----------
                  +        batch_vectorizer_path : str
                  +             (Default value = None)
                  +
                  +        Returns
                  +        -------
                  +        dictionary :
                  +
                  +        """
                  +        if self._cached_dict is not None:
                  +            return self._cached_dict
                  +
                  +        if batch_vectorizer_path is None:
                  +            batch_vectorizer_path = self._batch_vectorizer_path
                  +
                  +        dictionary = artm.Dictionary()
                  +        dict_path = os.path.join(batch_vectorizer_path, 'dict.dict')
                  +
                  +        same_collection, path_to_collection = self._check_collection(
                  +            batch_vectorizer_path
                  +        )
                  +
                  +        if same_collection:
                  +            if not os.path.isfile(dict_path):
                  +                dictionary.gather(data_path=batch_vectorizer_path)
                  +                dictionary.save(dictionary_path=dict_path)
                  +            dictionary.load(dictionary_path=dict_path)
                  +            self._cached_dict = dictionary
                  +            return dictionary
                  +        else:
                  +            _ = self.get_batch_vectorizer(batch_vectorizer_path)
                  +            dictionary.gather(data_path=batch_vectorizer_path)
                  +            dictionary.save(dictionary_path=dict_path)
                  +            dictionary.load(dictionary_path=dict_path)
                  +            self._cached_dict = dictionary
                  +            return dictionary
                  +
                  +    def _transform_data_for_training(self):
                  +        """ """
                  +        return self.get_batch_vectorizer()
                  +
                  +    def _extract_possible_modalities(self):
                  +        """
                  +        Extracts all modalities from data.
                  +
                  +        Returns
                  +        -------
                  +        set
                  +            all modalities in Dataset
                  +
                  +        """
                  +        modalities_list = [
                  +            get_modality_names(vw_string[VW_TEXT_COL])[1]
                  +            for _, vw_string in self._data.iterrows()
                  +        ]
                  +        all_modalities = set([
                  +            modality
                  +            for modalities in modalities_list
                  +            for modality in modalities
                  +        ])
                  +        return all_modalities
                  +
                  +    def get_possible_modalities(self):
                  +        """
                  +        Returns extracted modalities.
                  +
                  +        Returns
                  +        -------
                  +        set
                  +            all modalities in Dataset
                  +
                  +        """
                  +        return self._modalities
                  +
                  @@ -44,6 +508,33 @@

                  Returns

                  list of str
                  modalities in document
                  +
                  + +Expand source code + +
                  def get_modality_names(vw_string):
                  +    """
                  +    Gets modality names from vw_string.
                  +
                  +    Parameters
                  +    ----------
                  +    vw_string : str
                  +        string in vw format
                  +
                  +    Returns
                  +    -------
                  +    str
                  +        document id
                  +    list of str
                  +        modalities in document
                  +
                  +    """
                  +    modalities = vw_string.split(MODALITY_START_SYMBOL)
                  +    modality_names = [mod.split(' ')[0] for mod in modalities]
                  +    doc_id = modality_names[0]
                  +    modality_names = list(set(modality_names[1:]))
                  +    return doc_id, modality_names
                  +
                  def get_modality_vw(vw_string, modality_name) @@ -62,6 +553,33 @@

                  Returns

                  str
                  content of modality_name modality
                  +
                  + +Expand source code + +
                  def get_modality_vw(vw_string, modality_name):
                  +    """
                  +    Gets modality string from document vw string.
                  +
                  +    Parameters
                  +    ----------
                  +    vw_string : str
                  +        string in vw format
                  +    modality_name : str
                  +        name of the modality
                  +
                  +    Returns
                  +    -------
                  +    str
                  +        content of modality_name modality
                  +
                  +    """
                  +    modality_contents = vw_string.split(MODALITY_START_SYMBOL)
                  +    for one_modality_content in modality_contents:
                  +        if one_modality_content[:len(modality_name)] == modality_name:
                  +            return one_modality_content[len(modality_name):]
                  +    return ""
                  +
                  @@ -74,6 +592,26 @@

                  Classes

                  +
                  + +Expand source code + +
                  class BaseDataset:
                  +    """ """
                  +    def get_source_document(self, document_id):
                  +        """
                  +
                  +        Parameters
                  +        ----------
                  +        document_id : str
                  +
                  +        """
                  +        raise NotImplementedError
                  +
                  +    def _transform_data_for_training(self):
                  +        """ """
                  +        raise NotImplementedError
                  +

                  Subclasses

                  • Dataset
                  • @@ -89,6 +627,20 @@

                    Methods

                    document_id : str
                     
                    +
                    + +Expand source code + +
                    def get_source_document(self, document_id):
                    +    """
                    +
                    +    Parameters
                    +    ----------
                    +    document_id : str
                    +
                    +    """
                    +    raise NotImplementedError
                    +
                  @@ -111,6 +663,365 @@

                  Parameters

                  batch_size : int
                  number of documents in one batch
                  +
                  + +Expand source code + +
                  class Dataset(BaseDataset):
                  +    """
                  +    Class for keeping training data and documents for creation models.
                  +
                  +    """
                  +    def __init__(self, data_path,
                  +                 keep_in_memory=True,
                  +                 batch_vectorizer_path=None,
                  +                 batch_size=1000):
                  +        """
                  +
                  +        Parameters
                  +        ----------
                  +        data_path : str
                  +            path to a CSV file with input data for training models,
                  +            format of the file is <id>,<raw text>,<Vowpal Wabbit text>
                  +        keep_in_memory: bool
                  +            a flag determining if the collection is small enough to
                  +            be kept in memory.
                  +        batch_vectorizer_path : str
                  +            path to the directory with collection batches
                  +        batch_size : int
                  +            number of documents in one batch
                  +
                  +        """
                  +        # set main data
                  +        self._data_path = data_path
                  +        self._small_data = keep_in_memory
                  +        # making document entry as big as possible
                  +        _fix_max_string_size()
                  +        self._data_hash = None
                  +        self._cached_dict = None
                  +        if os.path.exists(data_path):
                  +            self._data = self._read_data(data_path)
                  +        else:
                  +            raise ValueError('File {!r} doesn\'t exist'.format(data_path))
                  +
                  +        # set batch vectorizer path
                  +        if batch_vectorizer_path is not None:
                  +            self._batch_vectorizer_path = batch_vectorizer_path
                  +        else:
                  +            dot_position = data_path.rfind('.')
                  +            dot_position = dot_position if dot_position > 0 else len(data_path)
                  +            self._batch_vectorizer_path = data_path[:dot_position] + '_batches'
                  +
                  +        self._modalities = self._extract_possible_modalities()
                  +        self.batch_size = batch_size
                  +
                  +    def _read_data(self, data_path):
                  +        """
                  +
                  +        Parameters
                  +        ----------
                  +        data_path : str
                  +
                  +        Returns
                  +        -------
                  +        pd.DataFrame
                  +            data from data_path
                  +
                  +        """
                  +        dot_position = data_path.rfind('.')
                  +        if dot_position == -1:
                  +            raise TypeError('filename should contain . to define type')
                  +
                  +        file_type = data_path[dot_position + 1:]
                  +        if self._small_data:
                  +            import pandas as data_handle
                  +        else:
                  +            import dask.dataframe as data_handle
                  +
                  +        if file_type == 'csv':
                  +            data = data_handle.read_csv(
                  +                data_path,
                  +                engine='python',
                  +                error_bad_lines=False,
                  +            )
                  +        elif file_type == 'pkl':
                  +            try:
                  +                data = data_handle.read_pickle(
                  +                    data_path,
                  +                    engine='python',
                  +                    error_bad_lines=False,
                  +                )
                  +            except AttributeError:
                  +                raise('Cant handle big *.pkl files')
                  +        elif file_type == 'txt' or file_type == 'vw':
                  +            data = data_handle.read_csv(
                  +                data_path,
                  +                engine='python',
                  +                error_bad_lines=False,
                  +                sep='\n',
                  +                header=None,
                  +                names=[VW_TEXT_COL]
                  +            )
                  +            data[RAW_TEXT_COL] = ''
                  +
                  +            data['id'] = data[VW_TEXT_COL].str.partition(' ')[0]
                  +        else:
                  +            raise TypeError('Unknown file type')
                  +        data['id'] = data['id'].astype('str')
                  +        data = data.set_index('id')
                  +        if VW_TEXT_COL not in data.columns:
                  +            raise ValueError('data should contain VW field')
                  +        return data
                  +
                  +    def get_dataset(self):
                  +        """ """
                  +        return self._data
                  +
                  +    def get_vw_document(self, document_id):
                  +        """
                  +        Get 'vw_text' for the document with document_id.
                  +
                  +        Parameters
                  +        ----------
                  +        document_id : str
                  +
                  +        Returns
                  +        -------
                  +        list of str
                  +            document id and content of 'vw_text' column
                  +
                  +        """
                  +        if not isinstance(document_id, list):
                  +            document_id = [document_id]
                  +        if self._small_data:
                  +            in_index = self._data.index.intersection(document_id)
                  +            back_pd = pd.DataFrame(
                  +                self._data.loc[in_index, VW_TEXT_COL]
                  +                .reindex(document_id)
                  +                .fillna('Not Found')
                  +            )
                  +            return back_pd
                  +        else:
                  +            data_indices = self._data.index.compute()
                  +            in_index = [
                  +                doc_id for doc_id in document_id
                  +                if doc_id in data_indices
                  +            ]
                  +            back_pd = pd.DataFrame(
                  +                self._data.loc[in_index, VW_TEXT_COL].compute()
                  +                .reindex(document_id)
                  +                .fillna('Not Found')
                  +            )
                  +            return back_pd
                  +
                  +    def get_source_document(self, document_id):
                  +        """
                  +        Get 'raw_text' for the document with document_id.
                  +
                  +        Parameters
                  +        ----------
                  +        document_id : str
                  +
                  +        Returns
                  +        -------
                  +        list of str
                  +            document id and content of 'raw_text' column
                  +
                  +        """
                  +        if not isinstance(document_id, list):
                  +            document_id = [document_id]
                  +        if self._small_data:
                  +            in_index = self._data.index.intersection(document_id)
                  +            back_pd = pd.DataFrame(
                  +                self._data.loc[in_index, RAW_TEXT_COL]
                  +                .reindex(document_id)
                  +                .fillna('Not Found')
                  +            )
                  +            return back_pd
                  +        else:
                  +            data_indices = self._data.index.compute()
                  +            in_index = [
                  +                doc_id for doc_id in document_id
                  +                if doc_id in data_indices
                  +            ]
                  +            back_pd = pd.DataFrame(
                  +                self._data.loc[in_index, RAW_TEXT_COL].compute()
                  +                .reindex(document_id)
                  +                .fillna('Not Found')
                  +            )
                  +            return back_pd
                  +
                  +    def write_vw(self, file_path):
                  +        """ """
                  +        with open(file_path, 'w', encoding='utf-8') as f:
                  +            for index, data in self._data.iterrows():
                  +                vw_string = data[VW_TEXT_COL]
                  +                f.write(vw_string + '\n')
                  +
                  +    def _check_collection(self, data_path):
                  +        """
                  +        Checks if folder with collection:
                  +        1) Exists
                  +        2) Same as the one this dataset holds
                  +
                  +        Parameters
                  +        ----------
                  +        data_path : str
                  +            folder for the checking
                  +        Returns
                  +        -------
                  +        same_collection : bool
                  +        """
                  +        path_to_collection = os.path.join(data_path, 'vw.txt')
                  +        if not os.path.exists(data_path):
                  +            os.mkdir(data_path)
                  +            return False, path_to_collection
                  +
                  +        if self._data_hash is None:
                  +            temp_file_path = os.path.join(data_path, 'temp_vw.txt')
                  +            self.write_vw(temp_file_path)
                  +            self._data_hash = blake2bchecksum(temp_file_path)
                  +            os.remove(temp_file_path)
                  +
                  +        if os.path.isfile(path_to_collection):
                  +            same_collection = blake2bchecksum(path_to_collection) == self._data_hash
                  +        else:
                  +            same_collection = False
                  +        return same_collection, path_to_collection
                  +
                  +    def get_batch_vectorizer(self, batch_vectorizer_path=None):
                  +        """
                  +        Get batch vectorizer.
                  +
                  +        Parameters
                  +        ----------
                  +        batch_vectorizer_path : str
                  +             (Default value = None)
                  +
                  +        Returns
                  +        -------
                  +        batch_vectorizer :
                  +
                  +        """
                  +        if batch_vectorizer_path is None:
                  +            batch_vectorizer_path = self._batch_vectorizer_path
                  +
                  +        same_collection, path_to_collection = self._check_collection(
                  +            batch_vectorizer_path
                  +        )
                  +
                  +        if same_collection:
                  +            batches_exist = len(glob(os.path.join(batch_vectorizer_path, '*.batch'))) > 0
                  +            if not batches_exist:
                  +                self.write_vw(path_to_collection)
                  +                batch_vectorizer = artm.BatchVectorizer(
                  +                    data_path=path_to_collection,
                  +                    data_format='vowpal_wabbit',
                  +                    target_folder=batch_vectorizer_path,
                  +                    batch_size=self.batch_size
                  +                )
                  +            else:
                  +                batch_vectorizer = artm.BatchVectorizer(
                  +                    data_path=batch_vectorizer_path,
                  +                    data_format='batches'
                  +                )
                  +        else:
                  +            warnings.warn(W_DIFF_BATCHES_1 + W_DIFF_BATCHES_2.format(batch_vectorizer_path))
                  +            try:
                  +                shutil.rmtree(batch_vectorizer_path)
                  +            except FileNotFoundError:
                  +                pass
                  +            os.mkdir(batch_vectorizer_path)
                  +            self.write_vw(path_to_collection)
                  +
                  +            batch_vectorizer = artm.BatchVectorizer(
                  +                data_path=path_to_collection,
                  +                data_format='vowpal_wabbit',
                  +                target_folder=batch_vectorizer_path,
                  +                batch_size=self.batch_size
                  +            )
                  +
                  +        return batch_vectorizer
                  +
                  +    def get_dictionary(self, batch_vectorizer_path=None):
                  +        """
                  +        Get dictionary.
                  +
                  +        Parameters
                  +        ----------
                  +        batch_vectorizer_path : str
                  +             (Default value = None)
                  +
                  +        Returns
                  +        -------
                  +        dictionary :
                  +
                  +        """
                  +        if self._cached_dict is not None:
                  +            return self._cached_dict
                  +
                  +        if batch_vectorizer_path is None:
                  +            batch_vectorizer_path = self._batch_vectorizer_path
                  +
                  +        dictionary = artm.Dictionary()
                  +        dict_path = os.path.join(batch_vectorizer_path, 'dict.dict')
                  +
                  +        same_collection, path_to_collection = self._check_collection(
                  +            batch_vectorizer_path
                  +        )
                  +
                  +        if same_collection:
                  +            if not os.path.isfile(dict_path):
                  +                dictionary.gather(data_path=batch_vectorizer_path)
                  +                dictionary.save(dictionary_path=dict_path)
                  +            dictionary.load(dictionary_path=dict_path)
                  +            self._cached_dict = dictionary
                  +            return dictionary
                  +        else:
                  +            _ = self.get_batch_vectorizer(batch_vectorizer_path)
                  +            dictionary.gather(data_path=batch_vectorizer_path)
                  +            dictionary.save(dictionary_path=dict_path)
                  +            dictionary.load(dictionary_path=dict_path)
                  +            self._cached_dict = dictionary
                  +            return dictionary
                  +
                  +    def _transform_data_for_training(self):
                  +        """ """
                  +        return self.get_batch_vectorizer()
                  +
                  +    def _extract_possible_modalities(self):
                  +        """
                  +        Extracts all modalities from data.
                  +
                  +        Returns
                  +        -------
                  +        set
                  +            all modalities in Dataset
                  +
                  +        """
                  +        modalities_list = [
                  +            get_modality_names(vw_string[VW_TEXT_COL])[1]
                  +            for _, vw_string in self._data.iterrows()
                  +        ]
                  +        all_modalities = set([
                  +            modality
                  +            for modalities in modalities_list
                  +            for modality in modalities
                  +        ])
                  +        return all_modalities
                  +
                  +    def get_possible_modalities(self):
                  +        """
                  +        Returns extracted modalities.
                  +
                  +        Returns
                  +        -------
                  +        set
                  +            all modalities in Dataset
                  +
                  +        """
                  +        return self._modalities
                  +

                  Ancestors

                  • BaseDataset
                  • @@ -132,12 +1043,78 @@

                    Returns

                    batch_vectorizer :
                     
                    +
                    + +Expand source code + +
                    def get_batch_vectorizer(self, batch_vectorizer_path=None):
                    +    """
                    +    Get batch vectorizer.
                    +
                    +    Parameters
                    +    ----------
                    +    batch_vectorizer_path : str
                    +         (Default value = None)
                    +
                    +    Returns
                    +    -------
                    +    batch_vectorizer :
                    +
                    +    """
                    +    if batch_vectorizer_path is None:
                    +        batch_vectorizer_path = self._batch_vectorizer_path
                    +
                    +    same_collection, path_to_collection = self._check_collection(
                    +        batch_vectorizer_path
                    +    )
                    +
                    +    if same_collection:
                    +        batches_exist = len(glob(os.path.join(batch_vectorizer_path, '*.batch'))) > 0
                    +        if not batches_exist:
                    +            self.write_vw(path_to_collection)
                    +            batch_vectorizer = artm.BatchVectorizer(
                    +                data_path=path_to_collection,
                    +                data_format='vowpal_wabbit',
                    +                target_folder=batch_vectorizer_path,
                    +                batch_size=self.batch_size
                    +            )
                    +        else:
                    +            batch_vectorizer = artm.BatchVectorizer(
                    +                data_path=batch_vectorizer_path,
                    +                data_format='batches'
                    +            )
                    +    else:
                    +        warnings.warn(W_DIFF_BATCHES_1 + W_DIFF_BATCHES_2.format(batch_vectorizer_path))
                    +        try:
                    +            shutil.rmtree(batch_vectorizer_path)
                    +        except FileNotFoundError:
                    +            pass
                    +        os.mkdir(batch_vectorizer_path)
                    +        self.write_vw(path_to_collection)
                    +
                    +        batch_vectorizer = artm.BatchVectorizer(
                    +            data_path=path_to_collection,
                    +            data_format='vowpal_wabbit',
                    +            target_folder=batch_vectorizer_path,
                    +            batch_size=self.batch_size
                    +        )
                    +
                    +    return batch_vectorizer
                    +
                    def get_dataset(self)
                    +
                    + +Expand source code + +
                    def get_dataset(self):
                    +    """ """
                    +    return self._data
                    +
                    def get_dictionary(self, batch_vectorizer_path=None) @@ -154,6 +1131,52 @@

                    Returns

                    dictionary :
                     
                    +
                    + +Expand source code + +
                    def get_dictionary(self, batch_vectorizer_path=None):
                    +    """
                    +    Get dictionary.
                    +
                    +    Parameters
                    +    ----------
                    +    batch_vectorizer_path : str
                    +         (Default value = None)
                    +
                    +    Returns
                    +    -------
                    +    dictionary :
                    +
                    +    """
                    +    if self._cached_dict is not None:
                    +        return self._cached_dict
                    +
                    +    if batch_vectorizer_path is None:
                    +        batch_vectorizer_path = self._batch_vectorizer_path
                    +
                    +    dictionary = artm.Dictionary()
                    +    dict_path = os.path.join(batch_vectorizer_path, 'dict.dict')
                    +
                    +    same_collection, path_to_collection = self._check_collection(
                    +        batch_vectorizer_path
                    +    )
                    +
                    +    if same_collection:
                    +        if not os.path.isfile(dict_path):
                    +            dictionary.gather(data_path=batch_vectorizer_path)
                    +            dictionary.save(dictionary_path=dict_path)
                    +        dictionary.load(dictionary_path=dict_path)
                    +        self._cached_dict = dictionary
                    +        return dictionary
                    +    else:
                    +        _ = self.get_batch_vectorizer(batch_vectorizer_path)
                    +        dictionary.gather(data_path=batch_vectorizer_path)
                    +        dictionary.save(dictionary_path=dict_path)
                    +        dictionary.load(dictionary_path=dict_path)
                    +        self._cached_dict = dictionary
                    +        return dictionary
                    +
                    def get_possible_modalities(self) @@ -165,6 +1188,22 @@

                    Returns

                    set
                    all modalities in Dataset
                    +
                    + +Expand source code + +
                    def get_possible_modalities(self):
                    +    """
                    +    Returns extracted modalities.
                    +
                    +    Returns
                    +    -------
                    +    set
                    +        all modalities in Dataset
                    +
                    +    """
                    +    return self._modalities
                    +
                    def get_source_document(self, document_id) @@ -181,6 +1220,47 @@

                    Returns

                    list of str
                    document id and content of 'raw_text' column
                    +
                    + +Expand source code + +
                    def get_source_document(self, document_id):
                    +    """
                    +    Get 'raw_text' for the document with document_id.
                    +
                    +    Parameters
                    +    ----------
                    +    document_id : str
                    +
                    +    Returns
                    +    -------
                    +    list of str
                    +        document id and content of 'raw_text' column
                    +
                    +    """
                    +    if not isinstance(document_id, list):
                    +        document_id = [document_id]
                    +    if self._small_data:
                    +        in_index = self._data.index.intersection(document_id)
                    +        back_pd = pd.DataFrame(
                    +            self._data.loc[in_index, RAW_TEXT_COL]
                    +            .reindex(document_id)
                    +            .fillna('Not Found')
                    +        )
                    +        return back_pd
                    +    else:
                    +        data_indices = self._data.index.compute()
                    +        in_index = [
                    +            doc_id for doc_id in document_id
                    +            if doc_id in data_indices
                    +        ]
                    +        back_pd = pd.DataFrame(
                    +            self._data.loc[in_index, RAW_TEXT_COL].compute()
                    +            .reindex(document_id)
                    +            .fillna('Not Found')
                    +        )
                    +        return back_pd
                    +
                    def get_vw_document(self, document_id) @@ -197,12 +1277,64 @@

                    Returns

                    list of str
                    document id and content of 'vw_text' column
                    +
                    + +Expand source code + +
                    def get_vw_document(self, document_id):
                    +    """
                    +    Get 'vw_text' for the document with document_id.
                    +
                    +    Parameters
                    +    ----------
                    +    document_id : str
                    +
                    +    Returns
                    +    -------
                    +    list of str
                    +        document id and content of 'vw_text' column
                    +
                    +    """
                    +    if not isinstance(document_id, list):
                    +        document_id = [document_id]
                    +    if self._small_data:
                    +        in_index = self._data.index.intersection(document_id)
                    +        back_pd = pd.DataFrame(
                    +            self._data.loc[in_index, VW_TEXT_COL]
                    +            .reindex(document_id)
                    +            .fillna('Not Found')
                    +        )
                    +        return back_pd
                    +    else:
                    +        data_indices = self._data.index.compute()
                    +        in_index = [
                    +            doc_id for doc_id in document_id
                    +            if doc_id in data_indices
                    +        ]
                    +        back_pd = pd.DataFrame(
                    +            self._data.loc[in_index, VW_TEXT_COL].compute()
                    +            .reindex(document_id)
                    +            .fillna('Not Found')
                    +        )
                    +        return back_pd
                    +
                    def write_vw(self, file_path)
                    +
                    + +Expand source code + +
                    def write_vw(self, file_path):
                    +    """ """
                    +    with open(file_path, 'w', encoding='utf-8') as f:
                    +        for index, data in self._data.iterrows():
                    +            vw_string = data[VW_TEXT_COL]
                    +            f.write(vw_string + '\n')
                    +
                    @@ -252,7 +1384,9 @@

                    -

                    Generated by pdoc 0.6.3.

                    +

                    Generated by pdoc 0.7.2.

                    + + \ No newline at end of file diff --git a/docs/cooking_machine/experiment.html b/docs/cooking_machine/experiment.html index c255e4d..3f03f90 100644 --- a/docs/cooking_machine/experiment.html +++ b/docs/cooking_machine/experiment.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.experiment API documentation - + + @@ -19,6 +20,886 @@

                    Module topicnet.cooking_machine.experiment

                    +
                    + +Expand source code + +
                    import os
                    +import re
                    +import json
                    +import warnings
                    +
                    +from .model_tracking import Tree, START
                    +from typing import List
                    +
                    +from .pretty_output import give_strings_description, get_html
                    +from .routine import transform_topic_model_description_to_jsonable
                    +from .routine import (
                    +    parse_query_string,
                    +    choose_best_models,
                    +    compute_special_queries,
                    +    choose_value_for_models_num_and_check
                    +)
                    +from .routine import is_saveable_model
                    +
                    +from .models import BaseModel
                    +from .models.base_model import MODEL_NAME_LENGTH
                    +
                    +W_EMPTY_SPECIAL_1 = 'Unable to calculate special functions in query\n'
                    +W_EMPTY_SPECIAL_2 = 'Process failed with following: {}'
                    +EMPTY_ERRORS = [
                    +    'mean requires at least one data point',
                    +    'no median for empty data',
                    +    'min() arg is an empty sequence',
                    +    'max() arg is an empty sequence',
                    +]
                    +
                    +
                    +def _run_from_notebook():
                    +    try:
                    +        shell = get_ipython().__class__.__name__  # noqa: F821
                    +        return shell == 'ZMQInteractiveShell'
                    +    except:  # noqa: E722
                    +        return False
                    +
                    +
                    +class Experiment(object):
                    +    """
                    +    Contains experiment, its description and descriptions of all models in the experiment.
                    +
                    +    """
                    +    def __init__(self, topic_model, experiment_id: str, save_path: str,
                    +                 save_model_history: bool = False, save_experiment: bool = True,
                    +                 tree: dict = None, models_info: dict = None, cubes: List[dict] = None,
                    +                 low_memory: bool = False):
                    +        """
                    +        Initialize stage, also used for loading and creating new experiments.
                    +
                    +        Parameters
                    +        ----------
                    +        experiment_id : str
                    +            experiment id
                    +        save_path : str
                    +            path to save the experiment
                    +        topic_model : TopicModel or None
                    +            if TopicModel - use initial topic_model or last topic_model
                    +            if save_model_history is True 
                    +            if None - create empty experiment
                    +        save_model_history : bool
                    +            if True - Experiment will save all information about previous
                    +            models (before this topic_model). The typical use case than
                    +            you want to apply cube that cannot be applied in old
                    +            experiment, then you create new experiment that will save
                    +            all necessary information and will be independent itself  
                    +            if False - then topic model will be initial model (the first)
                    +        tree : dict
                    +            tree of the experiment. It is used for loading and creating non empty experiment
                    +        models_info : dict
                    +            keys are model ids, where values are model's description
                    +        cubes : list of dict
                    +            cubes that were used in the experiment
                    +        low_memory : bool
                    +            If true, models be transformed to dummies via `squeeze_models()`.
                    +            Gradually, level by level.
                    +            If false, models will be untouched, all data, including inner ARTM models,
                    +            Phi, Theta matrices, stays.
                    +
                    +        """  # noqa: W291
                    +
                    +        if not isinstance(save_path, str):
                    +            raise ValueError("Cannot create an Experiment with invalid save_path!")
                    +        if not isinstance(experiment_id, str):
                    +            raise ValueError("Cannot create an Experiment with invalid experiment_id!")
                    +
                    +        self.experiment_id = experiment_id
                    +
                    +        if os.path.exists(save_path) and save_experiment:
                    +            folders = os.listdir(save_path)
                    +            if experiment_id in folders:
                    +                raise FileExistsError(
                    +                    f"In /{save_path} experiment {experiment_id} already exists"
                    +                )
                    +
                    +        self.save_path = save_path
                    +
                    +        # if you want to create an empty Experiment (only experiment_id and save_path must be known)
                    +        if save_model_history:
                    +            self._prune_experiment(topic_model)
                    +        else:
                    +            topic_model.model_id = START
                    +            self.cubes = [
                    +                {
                    +                    'action': 'start',
                    +                    'params': [topic_model.get_jsonable_from_parameters()],
                    +                }
                    +            ]
                    +            self.criteria = [None]
                    +            self.models_info = {
                    +                START: topic_model.get_jsonable_from_parameters()
                    +            }
                    +
                    +            self.models = {
                    +                START: topic_model,
                    +            }
                    +            topic_model.experiment = self
                    +            self.tree = Tree()
                    +            self.tree.add_model(topic_model)
                    +            topic_model.save_parameters()
                    +
                    +        if save_experiment:
                    +            self.save()
                    +
                    +        self.datasets = dict()
                    +
                    +        self._low_memory = low_memory
                    +
                    +    @property
                    +    def depth(self):
                    +        """
                    +        Returns depth of the tree.  
                    +        Be careful, depth of the tree may not be the real experiment depth.
                    +
                    +        """  # noqa: W291
                    +        return self.tree.get_depth()
                    +
                    +    @property
                    +    def root(self):
                    +        """ """
                    +        return self.models[START]
                    +
                    +    def _move_models(self, load_path, old_experiment_id):
                    +        """
                    +        Moves models description to a new experiment.
                    +
                    +        Parameters
                    +        ----------
                    +        load_path : str
                    +            path to an old experiment
                    +        old_experiment_id : str
                    +            old experiment id
                    +
                    +        """
                    +        path_from = f"{load_path}/{old_experiment_id}"
                    +        path_to = f"{self.save_path}/{self.experiment_id}"
                    +        if not os.path.exists(path_to):
                    +            os.makedirs(path_to)
                    +        for model_id in self.models_info:
                    +            os_code = os.system(f"cp -R {path_from}/{model_id} {path_to}/{model_id}")
                    +            if os_code == 0:
                    +                params = json.load(open(f"{path_to}/{model_id}/params.json", "r"))
                    +                params["experiment_id"] = self.experiment_id
                    +                json.dump(params, open(f"{path_to}/{model_id}/params.json", "w"))
                    +
                    +    def _prune_experiment(self, topic_model):
                    +        """
                    +        Prunes old experiment. Creates new experiment with information from old experiment.
                    +
                    +        Parameters
                    +        ----------
                    +        topic_model : TopicModel
                    +            topic_model
                    +
                    +        """
                    +        experiment = topic_model.experiment
                    +        self.cubes = experiment.cubes[:topic_model.depth + 1]
                    +        self.criteria = experiment.criteria[:topic_model.depth + 1]
                    +        self.tree = experiment.tree.clone()
                    +        self.tree.prune(topic_model.depth)
                    +        self.models_info = dict()
                    +        self.models = dict()
                    +        for model_id in self.tree.get_model_ids():
                    +            self.models_info[model_id] = experiment.models_info[model_id]
                    +            self.models[model_id] = experiment.models[model_id]
                    +        self._move_models(topic_model.experiment.save_path,
                    +                          topic_model.experiment.experiment_id)
                    +        topic_model.experiment = self
                    +
                    +    def _recover_consistency(self, load_path):
                    +        """
                    +        Recovers removed files and models descriptions.
                    +
                    +        Parameters
                    +        ----------
                    +        load_path : str
                    +            path to the experiment
                    +
                    +        """
                    +        if load_path[-1] == "/":
                    +            load_path = load_path[:-1]
                    +        if self.save_path != "/".join(load_path.split("/")[:-1]):
                    +            print(f"This Experiment was replaced from {self.save_path}.", end=" ")
                    +            self.save_path = "/".join(load_path.split("/")[:-1])
                    +            print("Parameter is updated.")
                    +        if self.experiment_id != load_path.split("/")[-1]:
                    +            print(f"This Experiment was renamed to {load_path.split('/')[-1]}.", end=" ")
                    +            self.experiment_id = load_path.split("/")[-1]
                    +            for model_id in self.models_info.keys():
                    +                self.models_info[model_id]["experiment_id"] = self.experiment_id
                    +                model_save_path = f"{self.save_path}/{self.experiment_id}/{model_id}"
                    +                if os.path.exists(model_save_path) \
                    +                        and ("params.json" in os.listdir(model_save_path)):
                    +                    params = self.models_info[model_id]
                    +                    json.dump(params, open(f"{model_save_path}/params.json", "w"),
                    +                              default=transform_topic_model_description_to_jsonable)
                    +            print("Parameter is updated.")
                    +
                    +        experiment_save_path = f"{self.save_path}/{self.experiment_id}"
                    +        files = os.listdir(experiment_save_path)
                    +        if "params.html" not in files:
                    +            print("The file params.html was removed. Recover...", end=" ")
                    +            html = get_html(self,)
                    +            with open(f"{experiment_save_path}/params.html", "w", encoding='utf-8') as f:
                    +                f.write(html)
                    +            print("Recovered.")
                    +        for model_id in self.models_info:
                    +            model_save_path = f"{experiment_save_path}/{model_id}"
                    +            if model_id not in files:
                    +                print(f"The folder with {model_id} model was removed. "
                    +                      f"Recover...",
                    +                      end=" ")
                    +                os.makedirs(model_save_path)
                    +                params = self.models_info[model_id]
                    +                json.dump(params, open(f"{model_save_path}/params.json", "w"),
                    +                          default=transform_topic_model_description_to_jsonable)
                    +                print("Recovered.")
                    +            else:
                    +                model_files = os.listdir(model_save_path)
                    +                if "params.json" not in model_files:
                    +                    print(f"The file params.json in {model_id} folder was removed. "
                    +                          f"Recover...",
                    +                          end=" ")
                    +                    params = self.models_info[model_id]
                    +                    json.dump(params, open(f"{model_save_path}/params.json", "w"),
                    +                              default=transform_topic_model_description_to_jsonable)
                    +                    print("Recovered.")
                    +
                    +    def get_params(self):
                    +        """
                    +        Gets params of the experiment.
                    +
                    +        Returns
                    +        -------
                    +        parameters : dict
                    +
                    +        """
                    +        params = {"save_path": self.save_path,
                    +                  "experiment_id": self.experiment_id,
                    +                  "models_info": self.models_info,
                    +                  "criteria": self.criteria,
                    +                  "tree": self.tree.tree,
                    +                  "depth": self.depth,
                    +                  "cubes": self.cubes}
                    +
                    +        return params
                    +
                    +    def add_model(self, topic_model):
                    +        """
                    +        Adds model to the experiment.
                    +
                    +        Parameters
                    +        ----------
                    +        topic_model : TopicModel
                    +            topic model
                    +
                    +        """
                    +        topic_model.experiment = self
                    +        self.tree.add_model(topic_model)
                    +        self.models_info[topic_model.model_id] = topic_model.get_parameters()
                    +        self.models[topic_model.model_id] = topic_model
                    +        self.save()
                    +
                    +    def add_cube(self, cube):
                    +        """
                    +        Adds cube to the experiment.
                    +
                    +        Parameters
                    +        ----------
                    +        cube : dict
                    +            cube's params
                    +
                    +        """
                    +        self.cubes.append(cube)
                    +        self.criteria.append(None)
                    +        self.save()
                    +
                    +    def add_dataset(self, dataset_id, dataset):
                    +        """
                    +        Adds dataset to storage.
                    +
                    +        Parameters
                    +        ----------
                    +        dataset_id : str
                    +            id of dataset to save
                    +        dataset : Dataset
                    +
                    +        """
                    +        if dataset_id not in self.datasets:
                    +            self.datasets[dataset_id] = dataset
                    +        else:
                    +            raise NameError(f'Dataset with name {dataset_id} already exists in the experiment.')
                    +
                    +    def remove_dataset(self, dataset_id):
                    +        """
                    +        Removes dataset from storage.
                    +
                    +        Parameters
                    +        ----------
                    +        dataset_id : str
                    +            id of dataset to remove
                    +
                    +        """
                    +        if dataset_id in self.datasets:
                    +            del self.datasets[dataset_id]
                    +        else:
                    +            raise NameError(f'There is no dataset with name {dataset_id} in this experiment.')
                    +
                    +    @staticmethod
                    +    def _load(load_path, experiment_id: str, save_path: str, tree: dict = None,
                    +              models_info: dict = None, cubes: List[dict] = None,
                    +              criteria: List[List] = [None]):
                    +        """
                    +        Load helper.
                    +
                    +        """
                    +        from.experiment import Experiment
                    +        from .models import TopicModel
                    +
                    +        root_model_save_path = os.path.join(load_path, START)
                    +        root_model = TopicModel.load(root_model_save_path)
                    +        experiment = Experiment(
                    +            root_model,
                    +            experiment_id=experiment_id,
                    +            save_path=save_path,
                    +            save_experiment=False)
                    +        experiment.tree = Tree(tree=tree)
                    +        experiment.models_info = models_info
                    +        experiment.models = dict.fromkeys(experiment.tree.get_model_ids())
                    +        experiment.models[START] = root_model
                    +        experiment.cubes = cubes
                    +        experiment.criteria = criteria
                    +
                    +        return experiment
                    +
                    +    def save_models(self, mode='all'):
                    +        """
                    +        Saves experiment models with respect to selected way of saving.
                    +
                    +        Parameters
                    +        ----------
                    +        mode : str
                    +            defines saving mode
                    +            'all' - save all models in experiment  
                    +            'tree' - save only stem and leaves from the last level  
                    +            'last' save only leaves from the last level
                    +
                    +        """  # noqa: W291
                    +        experiment_save_path = os.path.join(self.save_path, self.experiment_id)
                    +
                    +        save_models = set()
                    +        if mode == 'all':
                    +            save_models.update([
                    +                (tmodel, tmodel.model_id)
                    +                for tmodel in self.models.values()
                    +                if is_saveable_model(tmodel)
                    +            ])
                    +        elif mode == 'tree':
                    +            save_models.update([
                    +                (self.models.get(getattr(tmodel, 'parent_model_id', None)),
                    +                 getattr(tmodel, 'parent_model_id', None))
                    +                for tmodel in self.models.values()
                    +                if is_saveable_model(self.models.get(getattr(tmodel, 'parent_model_id', None)))
                    +            ])
                    +        else:
                    +            save_models.update(set([
                    +                (tmodel, tmodel.model_id)
                    +                for tmodel in self.get_models_by_depth(self.depth)
                    +                if is_saveable_model(tmodel)
                    +            ]))
                    +
                    +        for model, model_id in list(save_models):
                    +            model_save_path = os.path.join(experiment_save_path, model_id)
                    +            model.save(model_save_path=model_save_path)
                    +
                    +    def squeeze_models(self, depth: int = None):
                    +        """Transforms models to dummies so as to occupy less RAM memory
                    +
                    +        Parameters
                    +        ----------
                    +        depth : int
                    +            Models on what depth are to be squeezed, i.e. transformed to dummies
                    +        """
                    +        if depth == 0:
                    +            return
                    +
                    +        assert isinstance(depth, int) and depth > 0
                    +
                    +        for m in self.get_models_by_depth(depth):
                    +            m.make_dummy()
                    +
                    +    def save(self, window_size: int = 1500, mode: str = 'all'):
                    +        """
                    +        Saves all params of the experiment to save_path/experiment_id.
                    +
                    +        Parameters
                    +        ----------
                    +        window_size : int
                    +            pixels size of window in html description (Default value = 1500)
                    +
                    +        """
                    +        experiment_save_path = os.path.join(self.save_path, self.experiment_id)
                    +        if not os.path.exists(experiment_save_path):
                    +            os.makedirs(experiment_save_path)
                    +
                    +        self.save_models(mode=mode)
                    +
                    +        params = self.get_params()
                    +        json.dump(params, open(f'{experiment_save_path}/params.json', 'w'),
                    +                  default=transform_topic_model_description_to_jsonable)
                    +        html = get_html(self, window_size)
                    +        html_path = os.path.join(experiment_save_path, 'params.html')
                    +        with open(html_path, "w", encoding='utf-8') as f:
                    +            f.write(html)
                    +
                    +    @staticmethod
                    +    def load(load_path):
                    +        """
                    +        Loads all params of the experiments. Recovers removed files if it is possible.
                    +
                    +        Parameters
                    +        ----------
                    +        load_path : str
                    +            path to the experiment folder.
                    +
                    +        Returns
                    +        -------
                    +        Experiment
                    +
                    +        """
                    +        from .models import TopicModel
                    +
                    +        files = os.listdir(load_path)
                    +        if "params.json" not in files:
                    +            raise FileExistsError("The main file params.json does not exist.")
                    +        else:
                    +            params = json.load(open(f"{load_path}/params.json", "r"))
                    +            params.pop('depth', None)
                    +
                    +            experiment = Experiment._load(load_path, **params)
                    +            experiment._recover_consistency(load_path)
                    +
                    +            for model_id in experiment.models.keys():
                    +                if model_id != START:
                    +                    model_save_path = os.path.join(load_path, model_id)
                    +                    experiment.models[model_id] = TopicModel.load(
                    +                        model_save_path, experiment
                    +                    )
                    +
                    +        return experiment
                    +
                    +    def get_description(self,
                    +                        min_len_per_cube: int = MODEL_NAME_LENGTH,
                    +                        len_tree_step: int = MODEL_NAME_LENGTH + 1):
                    +        """
                    +        Creates description of the tree that you can print.
                    +        Print is good when you use no more than 3 cubes at all.
                    +
                    +        Parameters
                    +        ----------
                    +        min_len_per_cube : int
                    +            minimal length of the one stage of experiment description
                    +            (Default value = MODEL_NAME_LENGTH)
                    +        len_tree_step : int
                    +            length of the whole one stage description of experiment's tree
                    +            (Default value = MODEL_NAME_LENGTH +1)
                    +
                    +        Returns
                    +        -------
                    +        str
                    +            description to print
                    +
                    +        """
                    +        strings = give_strings_description(
                    +            self,
                    +            min_len_per_cube=min_len_per_cube,
                    +            len_tree_step=len_tree_step
                    +        )
                    +        description = "\n".join(strings)
                    +
                    +        return description
                    +
                    +    def show(self):
                    +        """
                    +        Shows description of the experiment.
                    +
                    +        """
                    +        nb_verbose = _run_from_notebook()
                    +        string = self.get_description()
                    +        Experiment._clear_and_print(string, nb_verbose)
                    +
                    +    def get_models_by_depth(self, level=None):
                    +        """ """
                    +        if level is None:
                    +            # level = self.depth
                    +            level = len(self.cubes)
                    +
                    +        return [
                    +            tmodel
                    +            for tmodel in self.models.values()
                    +            if isinstance(tmodel, BaseModel) and tmodel.depth == int(level)
                    +        ]
                    +
                    +    def select(self, query_string='', models_num=None, level=None):
                    +        """
                    +        Selects all models satisfying the query string
                    +        from all models on a particular depth.
                    +
                    +        Parameters
                    +        ----------
                    +        query_string : str
                    +            string of form "SCORE1 < VAL and SCORE2 > VAL and SCORE3 -> min"
                    +        models_num : int
                    +            number of models to select (Default value = None)
                    +        level : int
                    +            None represents "the last level of experiment" (Default value = None)
                    +
                    +        Returns
                    +        -------
                    +        result_topic_models : list of restored TopicModels
                    +
                    +        String Format
                    +        -------------
                    +        string of following form:  
                    +        QUERY = EXPR and EXPR and EXPR and ... and EXPR [collect COLLECT_NUMERAL]
                    +        where EXPR could take any of these forms:  
                    +            EXPR = LITERAL < NUMBER  
                    +            EXPR = LITERAL > NUMBER  
                    +            EXPR = LITERAL = NUMBER  
                    +            EXPR = LITERAL -> min  
                    +            EXPR = LITERAL -> max  
                    +        and LITERAL is one of the following:
                    +            SCORE_NAME or model.PARAMETER_NAME
                    +            (for complicated scores you can use '.': e.g. TopicKernelScore.average_purity)
                    +        COLLECT clause is optional. COLLECT_NUMERAL could be integer or string "all"
                    +
                    +        NUMBER is float / int or some expression involving special functions:
                    +            MINIMUM, MAXIMUM, AVERAGE, MEDIAN
                    +        Everything is separated by spaces.
                    +
                    +        Notes
                    +        -----
                    +
                    +        If both models_num and COLLECT_NUMERAL is specified, COLLECT_NUMERAL takes priority.
                    +
                    +        If optimization directive is specified, select() may return more models than requested
                    +        (whether by models_num or by COLLECT_NUMERAL). This behaviour occurs when some scores
                    +        are equal.
                    +
                    +        For example, if we have 5 models with following scores:
                    +            [model1: 100, model2: 95, model3: 95, model4: 95, model5: 80]
                    +        and user asks experiment to provide 2 models with maximal score,
                    +        then 4 models will be returned:
                    +            [model1: 100, model2: 95, model3: 95, model4: 95]
                    +
                    +
                    +        Examples
                    +        --------
                    +
                    +        >> experiment.select("PerplexityScore@words -> min COLLECT 2")
                    +
                    +        >> experiment.select(
                    +            "TopicKernelScore.average_contrast -> max and PerplexityScore@all < 100 COLLECT 2"
                    +        )
                    +
                    +        >> experiment.select(
                    +            "PerplexityScore@words < 1.1 * MINIMUM(PerplexityScore@all) and model.num_topics > 12"
                    +        )
                    +
                    +
                    +        """  # noqa: W291
                    +        from .models import DummyTopicModel
                    +        models_num_as_parameter = models_num
                    +        models_num_from_query = None
                    +        candidate_tmodels = self.get_models_by_depth(level=level)
                    +
                    +        if "COLLECT" in query_string:
                    +            first_part, second_part = re.split(r'\s*COLLECT\s+', query_string)
                    +
                    +            if second_part.lower() != 'all':
                    +                try:
                    +                    models_num_from_query = int(second_part)
                    +                except ValueError:
                    +                    raise ValueError(f"Invalid directive in COLLECT: {second_part}")
                    +            else:
                    +                models_num_from_query = len(candidate_tmodels)
                    +
                    +            query_string = first_part
                    +
                    +        models_num = choose_value_for_models_num_and_check(
                    +            models_num_as_parameter, models_num_from_query
                    +        )
                    +
                    +        try:
                    +            query_string = self.preprocess_query(query_string, level)
                    +            req_lesser, req_greater, req_equal, metric, extremum = parse_query_string(query_string)
                    +
                    +            result = choose_best_models(
                    +                candidate_tmodels,
                    +                req_lesser, req_greater, req_equal,
                    +                metric, extremum,
                    +                models_num
                    +            )
                    +            result_topic_models = [model.restore() if isinstance(model, DummyTopicModel)
                    +                                   else model for model in result]
                    +            return result_topic_models
                    +
                    +        except ValueError as e:
                    +            if e.args[0] not in EMPTY_ERRORS:
                    +                raise e
                    +
                    +            error_message = repr(e)
                    +            warnings.warn(W_EMPTY_SPECIAL_1 + W_EMPTY_SPECIAL_2.format(error_message))
                    +
                    +            return []
                    +
                    +    def run(self, dataset, verbose=False, nb_verbose=False):
                    +        """
                    +        Runs defined pipeline and prints out the result.
                    +
                    +        Parameters
                    +        ----------
                    +        dataset : Dataset
                    +        verbose : bool
                    +            parameter that determines if the output is produced (Default value = False)
                    +        nb_verbose : bool
                    +            parameter that determines where the output is produced 
                    +            if False prints in console (Default value = False)
                    +
                    +        """  # noqa: W291
                    +        stage_models = self.root
                    +
                    +        for cube_index, cube_description in enumerate(self.cubes):
                    +            if cube_description['action'] == 'start':
                    +                continue
                    +
                    +            cube = cube_description['cube']
                    +            cube(stage_models, dataset)
                    +
                    +            # TODO: either delete this line completely
                    +            #  or come up with a way to restore any cube using just info about it in self.cubes
                    +            #  (need to restore cubes for upgrading dummy to topic model)
                    +            # self.cubes[cube_index].pop('cube', None)
                    +
                    +            stage_models = self._select_and_save_unique_models(
                    +                self.criteria[cube_index], dataset, cube_index + 1
                    +            )
                    +
                    +            if verbose:
                    +                tree_description = "\n".join(self.tree.get_description())
                    +                Experiment._clear_and_print(tree_description, nb_verbose)
                    +
                    +            if self._low_memory:
                    +                self.squeeze_models(max(0, self.depth - 2))
                    +
                    +        if verbose:
                    +            Experiment._clear_and_print(self.get_description(), nb_verbose)
                    +
                    +        if self._low_memory:
                    +            self.squeeze_models(max(0, self.depth - 1))
                    +            self.squeeze_models(self.depth)
                    +
                    +        return stage_models
                    +
                    +    @staticmethod
                    +    def _clear_and_print(string, nb_verbose):
                    +        if nb_verbose:
                    +            from IPython.display import clear_output
                    +            from IPython.core.display import display_pretty
                    +            clear_output()
                    +            display_pretty(string, raw=True)
                    +        else:
                    +            _ = os.system('cls' if os.name == 'nt' else 'clear')
                    +            print(string)
                    +
                    +    def _select_and_save_unique_models(self, templates, dataset, current_level):
                    +        """
                    +        Applies selection criteria to
                    +        last stage models and save successful candidates.
                    +
                    +        Parameters
                    +        ----------
                    +        templates : list of str
                    +        dataset : Dataset
                    +        current_level : int
                    +
                    +        Returns
                    +        -------
                    +        selected_models : set of TopicModel
                    +
                    +        """
                    +        stage_models = sum(
                    +            [self.select(template, level=current_level) for template in templates],
                    +            []
                    +        )
                    +        number_models_selected = len(stage_models)
                    +        stage_models = set(stage_models)
                    +        if number_models_selected > len(stage_models):
                    +            warnings.warn('Some models satisfy multiple criteria')
                    +        for model in stage_models:
                    +            model.save(theta=True, dataset=dataset)
                    +        return stage_models
                    +
                    +    def describe_model(self, model_id):
                    +        """
                    +        Returns all scores mentioned on the model stage criteria.
                    +
                    +        Parameters
                    +        ----------
                    +        model_id : str
                    +            string id of the model to examine
                    +
                    +        Returns
                    +        -------
                    +        description_string : str
                    +        """
                    +        model = self.models[model_id]
                    +        # criteria for selecting models for the following cube
                    +        templates = self.criteria[model.depth - 1]
                    +
                    +        score_names = []
                    +        for template in templates:
                    +            score_names += [statement.split()[0] for statement in re.split(r'\s+and\s+', template)]
                    +        score_names = set(score_names)
                    +        description_strings = ['model: ' + model_id]
                    +        for score_name in score_names:
                    +            if 'model.' in score_name:
                    +                attr = score_name.split('.')[1]
                    +                attr_val = getattr(model, attr)
                    +                description_strings += [f'model attribute "{attr}" with value: {attr_val}']
                    +            else:
                    +                try:
                    +                    description_strings += [f'{score_name}: {model.scores[score_name][-1]}']
                    +                except KeyError:
                    +                    raise ValueError(f'Model does not have {score_name} score.')
                    +
                    +        description_string = "\n".join(description_strings)
                    +        return description_string
                    +
                    +    def preprocess_query(self, query_string: str, level):
                    +        """
                    +        Preprocesses special queries with functions inside.
                    +
                    +        Parameters
                    +        ----------
                    +        query_string : str
                    +            string for processing
                    +        level : int
                    +            model level
                    +
                    +        """
                    +        queries_list = re.split(r'\s+and\s+', query_string)
                    +        special_functions = [
                    +                    'MINIMUM',
                    +                    'MAXIMUM',
                    +                    'AVERAGE',
                    +                    'MEDIAN',
                    +                ]
                    +
                    +        model_queries = []
                    +        special_queries = []
                    +        standard_queries = []
                    +        for query in queries_list:
                    +            if query.startswith('model.'):
                    +                model_queries.append(query)
                    +            elif any(special_function in query for special_function in special_functions):
                    +                special_queries.append(query)
                    +            else:
                    +                standard_queries.append(query)
                    +
                    +        if len(model_queries) != 0:
                    +            inner_query_string = ' and '.join(model_queries)
                    +            (req_lesser, req_greater,
                    +             req_equal, metric, extremum) = parse_query_string(inner_query_string)
                    +
                    +            if metric is not None or extremum is not None:
                    +                warnings.warn(f'You try to optimize model parameters.')
                    +
                    +            candidate_tmodels = self.get_models_by_depth(level=level)
                    +            special_models = choose_best_models(
                    +                candidate_tmodels,
                    +                req_lesser, req_greater, req_equal,
                    +                metric, extremum,
                    +                models_num=None
                    +            )
                    +        else:
                    +            special_models = self.get_models_by_depth(level=level)
                    +
                    +        special_queries = compute_special_queries(special_models, special_queries)
                    +
                    +        return ' and '.join(standard_queries + model_queries + special_queries)
                    +
                    +    def build(self, settings):
                    +        """
                    +        Builds experiment pipeline from description.
                    +
                    +        Parameters
                    +        ----------
                    +        settings: list of dicts
                    +            list with cubes parameters for every pipeline step
                    +        Returns
                    +        -------
                    +        Nothing
                    +
                    +        """
                    +        import topicnet.cooking_machine.cubes as tncubes
                    +
                    +        self.criteria = [None]
                    +        for stage in settings:
                    +            for cube_name, cube_param in stage.items():
                    +                if cube_name == 'selection':
                    +                    stage_criteria = cube_param
                    +                else:
                    +                    try:
                    +                        stage_cube = getattr(tncubes, cube_name)(**cube_param)
                    +                    except Exception as e:
                    +                        error_message = repr(e)
                    +                        raise ValueError(f'Can not create {cube_name} '
                    +                                         f'with parameters {cube_param}.\n'
                    +                                         f'Process failed with following: {error_message}')
                    +            try:
                    +                self.cubes += [{
                    +                    'action': stage_cube.action,
                    +                    'params': stage_cube.get_jsonable_from_parameters(),
                    +                    'cube': stage_cube
                    +                }]
                    +                self.criteria.append(stage_criteria)
                    +                del(stage_cube, stage_criteria)
                    +            except NameError:
                    +                raise NameError('To define pipeline BOTH cube and selection criteria needed')
                    +
                    +    def set_criteria(self, cube_index, criteria):
                    +        """
                    +        Allows to edit model selection criteria
                    +        on each stage of the Experiment
                    +
                    +        Parameters
                    +        ----------
                    +        cube_index : int
                    +        selection_criteria: list of str or str
                    +            the criteria to replacing current record
                    +
                    +        Returns
                    +        -------
                    +        Nothing
                    +
                    +        """
                    +        if cube_index >= len(self.cubes):
                    +            raise ValueError(f'Invalid cube_index. There are {len(self.cubes)} cubes.'
                    +                             'You can check it using experiment.cubes')
                    +        else:
                    +            if isinstance(criteria, str):
                    +                criteria = [criteria]
                    +            self.criteria[cube_index] = criteria
                    +
                    @@ -65,6 +946,847 @@

                    Parameters

                    If false, models will be untouched, all data, including inner ARTM models, Phi, Theta matrices, stays. +
                    + +Expand source code + +
                    class Experiment(object):
                    +    """
                    +    Contains experiment, its description and descriptions of all models in the experiment.
                    +
                    +    """
                    +    def __init__(self, topic_model, experiment_id: str, save_path: str,
                    +                 save_model_history: bool = False, save_experiment: bool = True,
                    +                 tree: dict = None, models_info: dict = None, cubes: List[dict] = None,
                    +                 low_memory: bool = False):
                    +        """
                    +        Initialize stage, also used for loading and creating new experiments.
                    +
                    +        Parameters
                    +        ----------
                    +        experiment_id : str
                    +            experiment id
                    +        save_path : str
                    +            path to save the experiment
                    +        topic_model : TopicModel or None
                    +            if TopicModel - use initial topic_model or last topic_model
                    +            if save_model_history is True 
                    +            if None - create empty experiment
                    +        save_model_history : bool
                    +            if True - Experiment will save all information about previous
                    +            models (before this topic_model). The typical use case than
                    +            you want to apply cube that cannot be applied in old
                    +            experiment, then you create new experiment that will save
                    +            all necessary information and will be independent itself  
                    +            if False - then topic model will be initial model (the first)
                    +        tree : dict
                    +            tree of the experiment. It is used for loading and creating non empty experiment
                    +        models_info : dict
                    +            keys are model ids, where values are model's description
                    +        cubes : list of dict
                    +            cubes that were used in the experiment
                    +        low_memory : bool
                    +            If true, models be transformed to dummies via `squeeze_models()`.
                    +            Gradually, level by level.
                    +            If false, models will be untouched, all data, including inner ARTM models,
                    +            Phi, Theta matrices, stays.
                    +
                    +        """  # noqa: W291
                    +
                    +        if not isinstance(save_path, str):
                    +            raise ValueError("Cannot create an Experiment with invalid save_path!")
                    +        if not isinstance(experiment_id, str):
                    +            raise ValueError("Cannot create an Experiment with invalid experiment_id!")
                    +
                    +        self.experiment_id = experiment_id
                    +
                    +        if os.path.exists(save_path) and save_experiment:
                    +            folders = os.listdir(save_path)
                    +            if experiment_id in folders:
                    +                raise FileExistsError(
                    +                    f"In /{save_path} experiment {experiment_id} already exists"
                    +                )
                    +
                    +        self.save_path = save_path
                    +
                    +        # if you want to create an empty Experiment (only experiment_id and save_path must be known)
                    +        if save_model_history:
                    +            self._prune_experiment(topic_model)
                    +        else:
                    +            topic_model.model_id = START
                    +            self.cubes = [
                    +                {
                    +                    'action': 'start',
                    +                    'params': [topic_model.get_jsonable_from_parameters()],
                    +                }
                    +            ]
                    +            self.criteria = [None]
                    +            self.models_info = {
                    +                START: topic_model.get_jsonable_from_parameters()
                    +            }
                    +
                    +            self.models = {
                    +                START: topic_model,
                    +            }
                    +            topic_model.experiment = self
                    +            self.tree = Tree()
                    +            self.tree.add_model(topic_model)
                    +            topic_model.save_parameters()
                    +
                    +        if save_experiment:
                    +            self.save()
                    +
                    +        self.datasets = dict()
                    +
                    +        self._low_memory = low_memory
                    +
                    +    @property
                    +    def depth(self):
                    +        """
                    +        Returns depth of the tree.  
                    +        Be careful, depth of the tree may not be the real experiment depth.
                    +
                    +        """  # noqa: W291
                    +        return self.tree.get_depth()
                    +
                    +    @property
                    +    def root(self):
                    +        """ """
                    +        return self.models[START]
                    +
                    +    def _move_models(self, load_path, old_experiment_id):
                    +        """
                    +        Moves models description to a new experiment.
                    +
                    +        Parameters
                    +        ----------
                    +        load_path : str
                    +            path to an old experiment
                    +        old_experiment_id : str
                    +            old experiment id
                    +
                    +        """
                    +        path_from = f"{load_path}/{old_experiment_id}"
                    +        path_to = f"{self.save_path}/{self.experiment_id}"
                    +        if not os.path.exists(path_to):
                    +            os.makedirs(path_to)
                    +        for model_id in self.models_info:
                    +            os_code = os.system(f"cp -R {path_from}/{model_id} {path_to}/{model_id}")
                    +            if os_code == 0:
                    +                params = json.load(open(f"{path_to}/{model_id}/params.json", "r"))
                    +                params["experiment_id"] = self.experiment_id
                    +                json.dump(params, open(f"{path_to}/{model_id}/params.json", "w"))
                    +
                    +    def _prune_experiment(self, topic_model):
                    +        """
                    +        Prunes old experiment. Creates new experiment with information from old experiment.
                    +
                    +        Parameters
                    +        ----------
                    +        topic_model : TopicModel
                    +            topic_model
                    +
                    +        """
                    +        experiment = topic_model.experiment
                    +        self.cubes = experiment.cubes[:topic_model.depth + 1]
                    +        self.criteria = experiment.criteria[:topic_model.depth + 1]
                    +        self.tree = experiment.tree.clone()
                    +        self.tree.prune(topic_model.depth)
                    +        self.models_info = dict()
                    +        self.models = dict()
                    +        for model_id in self.tree.get_model_ids():
                    +            self.models_info[model_id] = experiment.models_info[model_id]
                    +            self.models[model_id] = experiment.models[model_id]
                    +        self._move_models(topic_model.experiment.save_path,
                    +                          topic_model.experiment.experiment_id)
                    +        topic_model.experiment = self
                    +
                    +    def _recover_consistency(self, load_path):
                    +        """
                    +        Recovers removed files and models descriptions.
                    +
                    +        Parameters
                    +        ----------
                    +        load_path : str
                    +            path to the experiment
                    +
                    +        """
                    +        if load_path[-1] == "/":
                    +            load_path = load_path[:-1]
                    +        if self.save_path != "/".join(load_path.split("/")[:-1]):
                    +            print(f"This Experiment was replaced from {self.save_path}.", end=" ")
                    +            self.save_path = "/".join(load_path.split("/")[:-1])
                    +            print("Parameter is updated.")
                    +        if self.experiment_id != load_path.split("/")[-1]:
                    +            print(f"This Experiment was renamed to {load_path.split('/')[-1]}.", end=" ")
                    +            self.experiment_id = load_path.split("/")[-1]
                    +            for model_id in self.models_info.keys():
                    +                self.models_info[model_id]["experiment_id"] = self.experiment_id
                    +                model_save_path = f"{self.save_path}/{self.experiment_id}/{model_id}"
                    +                if os.path.exists(model_save_path) \
                    +                        and ("params.json" in os.listdir(model_save_path)):
                    +                    params = self.models_info[model_id]
                    +                    json.dump(params, open(f"{model_save_path}/params.json", "w"),
                    +                              default=transform_topic_model_description_to_jsonable)
                    +            print("Parameter is updated.")
                    +
                    +        experiment_save_path = f"{self.save_path}/{self.experiment_id}"
                    +        files = os.listdir(experiment_save_path)
                    +        if "params.html" not in files:
                    +            print("The file params.html was removed. Recover...", end=" ")
                    +            html = get_html(self,)
                    +            with open(f"{experiment_save_path}/params.html", "w", encoding='utf-8') as f:
                    +                f.write(html)
                    +            print("Recovered.")
                    +        for model_id in self.models_info:
                    +            model_save_path = f"{experiment_save_path}/{model_id}"
                    +            if model_id not in files:
                    +                print(f"The folder with {model_id} model was removed. "
                    +                      f"Recover...",
                    +                      end=" ")
                    +                os.makedirs(model_save_path)
                    +                params = self.models_info[model_id]
                    +                json.dump(params, open(f"{model_save_path}/params.json", "w"),
                    +                          default=transform_topic_model_description_to_jsonable)
                    +                print("Recovered.")
                    +            else:
                    +                model_files = os.listdir(model_save_path)
                    +                if "params.json" not in model_files:
                    +                    print(f"The file params.json in {model_id} folder was removed. "
                    +                          f"Recover...",
                    +                          end=" ")
                    +                    params = self.models_info[model_id]
                    +                    json.dump(params, open(f"{model_save_path}/params.json", "w"),
                    +                              default=transform_topic_model_description_to_jsonable)
                    +                    print("Recovered.")
                    +
                    +    def get_params(self):
                    +        """
                    +        Gets params of the experiment.
                    +
                    +        Returns
                    +        -------
                    +        parameters : dict
                    +
                    +        """
                    +        params = {"save_path": self.save_path,
                    +                  "experiment_id": self.experiment_id,
                    +                  "models_info": self.models_info,
                    +                  "criteria": self.criteria,
                    +                  "tree": self.tree.tree,
                    +                  "depth": self.depth,
                    +                  "cubes": self.cubes}
                    +
                    +        return params
                    +
                    +    def add_model(self, topic_model):
                    +        """
                    +        Adds model to the experiment.
                    +
                    +        Parameters
                    +        ----------
                    +        topic_model : TopicModel
                    +            topic model
                    +
                    +        """
                    +        topic_model.experiment = self
                    +        self.tree.add_model(topic_model)
                    +        self.models_info[topic_model.model_id] = topic_model.get_parameters()
                    +        self.models[topic_model.model_id] = topic_model
                    +        self.save()
                    +
                    +    def add_cube(self, cube):
                    +        """
                    +        Adds cube to the experiment.
                    +
                    +        Parameters
                    +        ----------
                    +        cube : dict
                    +            cube's params
                    +
                    +        """
                    +        self.cubes.append(cube)
                    +        self.criteria.append(None)
                    +        self.save()
                    +
                    +    def add_dataset(self, dataset_id, dataset):
                    +        """
                    +        Adds dataset to storage.
                    +
                    +        Parameters
                    +        ----------
                    +        dataset_id : str
                    +            id of dataset to save
                    +        dataset : Dataset
                    +
                    +        """
                    +        if dataset_id not in self.datasets:
                    +            self.datasets[dataset_id] = dataset
                    +        else:
                    +            raise NameError(f'Dataset with name {dataset_id} already exists in the experiment.')
                    +
                    +    def remove_dataset(self, dataset_id):
                    +        """
                    +        Removes dataset from storage.
                    +
                    +        Parameters
                    +        ----------
                    +        dataset_id : str
                    +            id of dataset to remove
                    +
                    +        """
                    +        if dataset_id in self.datasets:
                    +            del self.datasets[dataset_id]
                    +        else:
                    +            raise NameError(f'There is no dataset with name {dataset_id} in this experiment.')
                    +
                    +    @staticmethod
                    +    def _load(load_path, experiment_id: str, save_path: str, tree: dict = None,
                    +              models_info: dict = None, cubes: List[dict] = None,
                    +              criteria: List[List] = [None]):
                    +        """
                    +        Load helper.
                    +
                    +        """
                    +        from.experiment import Experiment
                    +        from .models import TopicModel
                    +
                    +        root_model_save_path = os.path.join(load_path, START)
                    +        root_model = TopicModel.load(root_model_save_path)
                    +        experiment = Experiment(
                    +            root_model,
                    +            experiment_id=experiment_id,
                    +            save_path=save_path,
                    +            save_experiment=False)
                    +        experiment.tree = Tree(tree=tree)
                    +        experiment.models_info = models_info
                    +        experiment.models = dict.fromkeys(experiment.tree.get_model_ids())
                    +        experiment.models[START] = root_model
                    +        experiment.cubes = cubes
                    +        experiment.criteria = criteria
                    +
                    +        return experiment
                    +
                    +    def save_models(self, mode='all'):
                    +        """
                    +        Saves experiment models with respect to selected way of saving.
                    +
                    +        Parameters
                    +        ----------
                    +        mode : str
                    +            defines saving mode
                    +            'all' - save all models in experiment  
                    +            'tree' - save only stem and leaves from the last level  
                    +            'last' save only leaves from the last level
                    +
                    +        """  # noqa: W291
                    +        experiment_save_path = os.path.join(self.save_path, self.experiment_id)
                    +
                    +        save_models = set()
                    +        if mode == 'all':
                    +            save_models.update([
                    +                (tmodel, tmodel.model_id)
                    +                for tmodel in self.models.values()
                    +                if is_saveable_model(tmodel)
                    +            ])
                    +        elif mode == 'tree':
                    +            save_models.update([
                    +                (self.models.get(getattr(tmodel, 'parent_model_id', None)),
                    +                 getattr(tmodel, 'parent_model_id', None))
                    +                for tmodel in self.models.values()
                    +                if is_saveable_model(self.models.get(getattr(tmodel, 'parent_model_id', None)))
                    +            ])
                    +        else:
                    +            save_models.update(set([
                    +                (tmodel, tmodel.model_id)
                    +                for tmodel in self.get_models_by_depth(self.depth)
                    +                if is_saveable_model(tmodel)
                    +            ]))
                    +
                    +        for model, model_id in list(save_models):
                    +            model_save_path = os.path.join(experiment_save_path, model_id)
                    +            model.save(model_save_path=model_save_path)
                    +
                    +    def squeeze_models(self, depth: int = None):
                    +        """Transforms models to dummies so as to occupy less RAM memory
                    +
                    +        Parameters
                    +        ----------
                    +        depth : int
                    +            Models on what depth are to be squeezed, i.e. transformed to dummies
                    +        """
                    +        if depth == 0:
                    +            return
                    +
                    +        assert isinstance(depth, int) and depth > 0
                    +
                    +        for m in self.get_models_by_depth(depth):
                    +            m.make_dummy()
                    +
                    +    def save(self, window_size: int = 1500, mode: str = 'all'):
                    +        """
                    +        Saves all params of the experiment to save_path/experiment_id.
                    +
                    +        Parameters
                    +        ----------
                    +        window_size : int
                    +            pixels size of window in html description (Default value = 1500)
                    +
                    +        """
                    +        experiment_save_path = os.path.join(self.save_path, self.experiment_id)
                    +        if not os.path.exists(experiment_save_path):
                    +            os.makedirs(experiment_save_path)
                    +
                    +        self.save_models(mode=mode)
                    +
                    +        params = self.get_params()
                    +        json.dump(params, open(f'{experiment_save_path}/params.json', 'w'),
                    +                  default=transform_topic_model_description_to_jsonable)
                    +        html = get_html(self, window_size)
                    +        html_path = os.path.join(experiment_save_path, 'params.html')
                    +        with open(html_path, "w", encoding='utf-8') as f:
                    +            f.write(html)
                    +
                    +    @staticmethod
                    +    def load(load_path):
                    +        """
                    +        Loads all params of the experiments. Recovers removed files if it is possible.
                    +
                    +        Parameters
                    +        ----------
                    +        load_path : str
                    +            path to the experiment folder.
                    +
                    +        Returns
                    +        -------
                    +        Experiment
                    +
                    +        """
                    +        from .models import TopicModel
                    +
                    +        files = os.listdir(load_path)
                    +        if "params.json" not in files:
                    +            raise FileExistsError("The main file params.json does not exist.")
                    +        else:
                    +            params = json.load(open(f"{load_path}/params.json", "r"))
                    +            params.pop('depth', None)
                    +
                    +            experiment = Experiment._load(load_path, **params)
                    +            experiment._recover_consistency(load_path)
                    +
                    +            for model_id in experiment.models.keys():
                    +                if model_id != START:
                    +                    model_save_path = os.path.join(load_path, model_id)
                    +                    experiment.models[model_id] = TopicModel.load(
                    +                        model_save_path, experiment
                    +                    )
                    +
                    +        return experiment
                    +
                    +    def get_description(self,
                    +                        min_len_per_cube: int = MODEL_NAME_LENGTH,
                    +                        len_tree_step: int = MODEL_NAME_LENGTH + 1):
                    +        """
                    +        Creates description of the tree that you can print.
                    +        Print is good when you use no more than 3 cubes at all.
                    +
                    +        Parameters
                    +        ----------
                    +        min_len_per_cube : int
                    +            minimal length of the one stage of experiment description
                    +            (Default value = MODEL_NAME_LENGTH)
                    +        len_tree_step : int
                    +            length of the whole one stage description of experiment's tree
                    +            (Default value = MODEL_NAME_LENGTH +1)
                    +
                    +        Returns
                    +        -------
                    +        str
                    +            description to print
                    +
                    +        """
                    +        strings = give_strings_description(
                    +            self,
                    +            min_len_per_cube=min_len_per_cube,
                    +            len_tree_step=len_tree_step
                    +        )
                    +        description = "\n".join(strings)
                    +
                    +        return description
                    +
                    +    def show(self):
                    +        """
                    +        Shows description of the experiment.
                    +
                    +        """
                    +        nb_verbose = _run_from_notebook()
                    +        string = self.get_description()
                    +        Experiment._clear_and_print(string, nb_verbose)
                    +
                    +    def get_models_by_depth(self, level=None):
                    +        """ """
                    +        if level is None:
                    +            # level = self.depth
                    +            level = len(self.cubes)
                    +
                    +        return [
                    +            tmodel
                    +            for tmodel in self.models.values()
                    +            if isinstance(tmodel, BaseModel) and tmodel.depth == int(level)
                    +        ]
                    +
                    +    def select(self, query_string='', models_num=None, level=None):
                    +        """
                    +        Selects all models satisfying the query string
                    +        from all models on a particular depth.
                    +
                    +        Parameters
                    +        ----------
                    +        query_string : str
                    +            string of form "SCORE1 < VAL and SCORE2 > VAL and SCORE3 -> min"
                    +        models_num : int
                    +            number of models to select (Default value = None)
                    +        level : int
                    +            None represents "the last level of experiment" (Default value = None)
                    +
                    +        Returns
                    +        -------
                    +        result_topic_models : list of restored TopicModels
                    +
                    +        String Format
                    +        -------------
                    +        string of following form:  
                    +        QUERY = EXPR and EXPR and EXPR and ... and EXPR [collect COLLECT_NUMERAL]
                    +        where EXPR could take any of these forms:  
                    +            EXPR = LITERAL < NUMBER  
                    +            EXPR = LITERAL > NUMBER  
                    +            EXPR = LITERAL = NUMBER  
                    +            EXPR = LITERAL -> min  
                    +            EXPR = LITERAL -> max  
                    +        and LITERAL is one of the following:
                    +            SCORE_NAME or model.PARAMETER_NAME
                    +            (for complicated scores you can use '.': e.g. TopicKernelScore.average_purity)
                    +        COLLECT clause is optional. COLLECT_NUMERAL could be integer or string "all"
                    +
                    +        NUMBER is float / int or some expression involving special functions:
                    +            MINIMUM, MAXIMUM, AVERAGE, MEDIAN
                    +        Everything is separated by spaces.
                    +
                    +        Notes
                    +        -----
                    +
                    +        If both models_num and COLLECT_NUMERAL is specified, COLLECT_NUMERAL takes priority.
                    +
                    +        If optimization directive is specified, select() may return more models than requested
                    +        (whether by models_num or by COLLECT_NUMERAL). This behaviour occurs when some scores
                    +        are equal.
                    +
                    +        For example, if we have 5 models with following scores:
                    +            [model1: 100, model2: 95, model3: 95, model4: 95, model5: 80]
                    +        and user asks experiment to provide 2 models with maximal score,
                    +        then 4 models will be returned:
                    +            [model1: 100, model2: 95, model3: 95, model4: 95]
                    +
                    +
                    +        Examples
                    +        --------
                    +
                    +        >> experiment.select("PerplexityScore@words -> min COLLECT 2")
                    +
                    +        >> experiment.select(
                    +            "TopicKernelScore.average_contrast -> max and PerplexityScore@all < 100 COLLECT 2"
                    +        )
                    +
                    +        >> experiment.select(
                    +            "PerplexityScore@words < 1.1 * MINIMUM(PerplexityScore@all) and model.num_topics > 12"
                    +        )
                    +
                    +
                    +        """  # noqa: W291
                    +        from .models import DummyTopicModel
                    +        models_num_as_parameter = models_num
                    +        models_num_from_query = None
                    +        candidate_tmodels = self.get_models_by_depth(level=level)
                    +
                    +        if "COLLECT" in query_string:
                    +            first_part, second_part = re.split(r'\s*COLLECT\s+', query_string)
                    +
                    +            if second_part.lower() != 'all':
                    +                try:
                    +                    models_num_from_query = int(second_part)
                    +                except ValueError:
                    +                    raise ValueError(f"Invalid directive in COLLECT: {second_part}")
                    +            else:
                    +                models_num_from_query = len(candidate_tmodels)
                    +
                    +            query_string = first_part
                    +
                    +        models_num = choose_value_for_models_num_and_check(
                    +            models_num_as_parameter, models_num_from_query
                    +        )
                    +
                    +        try:
                    +            query_string = self.preprocess_query(query_string, level)
                    +            req_lesser, req_greater, req_equal, metric, extremum = parse_query_string(query_string)
                    +
                    +            result = choose_best_models(
                    +                candidate_tmodels,
                    +                req_lesser, req_greater, req_equal,
                    +                metric, extremum,
                    +                models_num
                    +            )
                    +            result_topic_models = [model.restore() if isinstance(model, DummyTopicModel)
                    +                                   else model for model in result]
                    +            return result_topic_models
                    +
                    +        except ValueError as e:
                    +            if e.args[0] not in EMPTY_ERRORS:
                    +                raise e
                    +
                    +            error_message = repr(e)
                    +            warnings.warn(W_EMPTY_SPECIAL_1 + W_EMPTY_SPECIAL_2.format(error_message))
                    +
                    +            return []
                    +
                    +    def run(self, dataset, verbose=False, nb_verbose=False):
                    +        """
                    +        Runs defined pipeline and prints out the result.
                    +
                    +        Parameters
                    +        ----------
                    +        dataset : Dataset
                    +        verbose : bool
                    +            parameter that determines if the output is produced (Default value = False)
                    +        nb_verbose : bool
                    +            parameter that determines where the output is produced 
                    +            if False prints in console (Default value = False)
                    +
                    +        """  # noqa: W291
                    +        stage_models = self.root
                    +
                    +        for cube_index, cube_description in enumerate(self.cubes):
                    +            if cube_description['action'] == 'start':
                    +                continue
                    +
                    +            cube = cube_description['cube']
                    +            cube(stage_models, dataset)
                    +
                    +            # TODO: either delete this line completely
                    +            #  or come up with a way to restore any cube using just info about it in self.cubes
                    +            #  (need to restore cubes for upgrading dummy to topic model)
                    +            # self.cubes[cube_index].pop('cube', None)
                    +
                    +            stage_models = self._select_and_save_unique_models(
                    +                self.criteria[cube_index], dataset, cube_index + 1
                    +            )
                    +
                    +            if verbose:
                    +                tree_description = "\n".join(self.tree.get_description())
                    +                Experiment._clear_and_print(tree_description, nb_verbose)
                    +
                    +            if self._low_memory:
                    +                self.squeeze_models(max(0, self.depth - 2))
                    +
                    +        if verbose:
                    +            Experiment._clear_and_print(self.get_description(), nb_verbose)
                    +
                    +        if self._low_memory:
                    +            self.squeeze_models(max(0, self.depth - 1))
                    +            self.squeeze_models(self.depth)
                    +
                    +        return stage_models
                    +
                    +    @staticmethod
                    +    def _clear_and_print(string, nb_verbose):
                    +        if nb_verbose:
                    +            from IPython.display import clear_output
                    +            from IPython.core.display import display_pretty
                    +            clear_output()
                    +            display_pretty(string, raw=True)
                    +        else:
                    +            _ = os.system('cls' if os.name == 'nt' else 'clear')
                    +            print(string)
                    +
                    +    def _select_and_save_unique_models(self, templates, dataset, current_level):
                    +        """
                    +        Applies selection criteria to
                    +        last stage models and save successful candidates.
                    +
                    +        Parameters
                    +        ----------
                    +        templates : list of str
                    +        dataset : Dataset
                    +        current_level : int
                    +
                    +        Returns
                    +        -------
                    +        selected_models : set of TopicModel
                    +
                    +        """
                    +        stage_models = sum(
                    +            [self.select(template, level=current_level) for template in templates],
                    +            []
                    +        )
                    +        number_models_selected = len(stage_models)
                    +        stage_models = set(stage_models)
                    +        if number_models_selected > len(stage_models):
                    +            warnings.warn('Some models satisfy multiple criteria')
                    +        for model in stage_models:
                    +            model.save(theta=True, dataset=dataset)
                    +        return stage_models
                    +
                    +    def describe_model(self, model_id):
                    +        """
                    +        Returns all scores mentioned on the model stage criteria.
                    +
                    +        Parameters
                    +        ----------
                    +        model_id : str
                    +            string id of the model to examine
                    +
                    +        Returns
                    +        -------
                    +        description_string : str
                    +        """
                    +        model = self.models[model_id]
                    +        # criteria for selecting models for the following cube
                    +        templates = self.criteria[model.depth - 1]
                    +
                    +        score_names = []
                    +        for template in templates:
                    +            score_names += [statement.split()[0] for statement in re.split(r'\s+and\s+', template)]
                    +        score_names = set(score_names)
                    +        description_strings = ['model: ' + model_id]
                    +        for score_name in score_names:
                    +            if 'model.' in score_name:
                    +                attr = score_name.split('.')[1]
                    +                attr_val = getattr(model, attr)
                    +                description_strings += [f'model attribute "{attr}" with value: {attr_val}']
                    +            else:
                    +                try:
                    +                    description_strings += [f'{score_name}: {model.scores[score_name][-1]}']
                    +                except KeyError:
                    +                    raise ValueError(f'Model does not have {score_name} score.')
                    +
                    +        description_string = "\n".join(description_strings)
                    +        return description_string
                    +
                    +    def preprocess_query(self, query_string: str, level):
                    +        """
                    +        Preprocesses special queries with functions inside.
                    +
                    +        Parameters
                    +        ----------
                    +        query_string : str
                    +            string for processing
                    +        level : int
                    +            model level
                    +
                    +        """
                    +        queries_list = re.split(r'\s+and\s+', query_string)
                    +        special_functions = [
                    +                    'MINIMUM',
                    +                    'MAXIMUM',
                    +                    'AVERAGE',
                    +                    'MEDIAN',
                    +                ]
                    +
                    +        model_queries = []
                    +        special_queries = []
                    +        standard_queries = []
                    +        for query in queries_list:
                    +            if query.startswith('model.'):
                    +                model_queries.append(query)
                    +            elif any(special_function in query for special_function in special_functions):
                    +                special_queries.append(query)
                    +            else:
                    +                standard_queries.append(query)
                    +
                    +        if len(model_queries) != 0:
                    +            inner_query_string = ' and '.join(model_queries)
                    +            (req_lesser, req_greater,
                    +             req_equal, metric, extremum) = parse_query_string(inner_query_string)
                    +
                    +            if metric is not None or extremum is not None:
                    +                warnings.warn(f'You try to optimize model parameters.')
                    +
                    +            candidate_tmodels = self.get_models_by_depth(level=level)
                    +            special_models = choose_best_models(
                    +                candidate_tmodels,
                    +                req_lesser, req_greater, req_equal,
                    +                metric, extremum,
                    +                models_num=None
                    +            )
                    +        else:
                    +            special_models = self.get_models_by_depth(level=level)
                    +
                    +        special_queries = compute_special_queries(special_models, special_queries)
                    +
                    +        return ' and '.join(standard_queries + model_queries + special_queries)
                    +
                    +    def build(self, settings):
                    +        """
                    +        Builds experiment pipeline from description.
                    +
                    +        Parameters
                    +        ----------
                    +        settings: list of dicts
                    +            list with cubes parameters for every pipeline step
                    +        Returns
                    +        -------
                    +        Nothing
                    +
                    +        """
                    +        import topicnet.cooking_machine.cubes as tncubes
                    +
                    +        self.criteria = [None]
                    +        for stage in settings:
                    +            for cube_name, cube_param in stage.items():
                    +                if cube_name == 'selection':
                    +                    stage_criteria = cube_param
                    +                else:
                    +                    try:
                    +                        stage_cube = getattr(tncubes, cube_name)(**cube_param)
                    +                    except Exception as e:
                    +                        error_message = repr(e)
                    +                        raise ValueError(f'Can not create {cube_name} '
                    +                                         f'with parameters {cube_param}.\n'
                    +                                         f'Process failed with following: {error_message}')
                    +            try:
                    +                self.cubes += [{
                    +                    'action': stage_cube.action,
                    +                    'params': stage_cube.get_jsonable_from_parameters(),
                    +                    'cube': stage_cube
                    +                }]
                    +                self.criteria.append(stage_criteria)
                    +                del(stage_cube, stage_criteria)
                    +            except NameError:
                    +                raise NameError('To define pipeline BOTH cube and selection criteria needed')
                    +
                    +    def set_criteria(self, cube_index, criteria):
                    +        """
                    +        Allows to edit model selection criteria
                    +        on each stage of the Experiment
                    +
                    +        Parameters
                    +        ----------
                    +        cube_index : int
                    +        selection_criteria: list of str or str
                    +            the criteria to replacing current record
                    +
                    +        Returns
                    +        -------
                    +        Nothing
                    +
                    +        """
                    +        if cube_index >= len(self.cubes):
                    +            raise ValueError(f'Invalid cube_index. There are {len(self.cubes)} cubes.'
                    +                             'You can check it using experiment.cubes')
                    +        else:
                    +            if isinstance(criteria, str):
                    +                criteria = [criteria]
                    +            self.criteria[cube_index] = criteria
                    +

                    Static methods

                    @@ -82,6 +1804,46 @@

                    Returns

                    Experiment
                     
                    +
                    + +Expand source code + +
                    @staticmethod
                    +def load(load_path):
                    +    """
                    +    Loads all params of the experiments. Recovers removed files if it is possible.
                    +
                    +    Parameters
                    +    ----------
                    +    load_path : str
                    +        path to the experiment folder.
                    +
                    +    Returns
                    +    -------
                    +    Experiment
                    +
                    +    """
                    +    from .models import TopicModel
                    +
                    +    files = os.listdir(load_path)
                    +    if "params.json" not in files:
                    +        raise FileExistsError("The main file params.json does not exist.")
                    +    else:
                    +        params = json.load(open(f"{load_path}/params.json", "r"))
                    +        params.pop('depth', None)
                    +
                    +        experiment = Experiment._load(load_path, **params)
                    +        experiment._recover_consistency(load_path)
                    +
                    +        for model_id in experiment.models.keys():
                    +            if model_id != START:
                    +                model_save_path = os.path.join(load_path, model_id)
                    +                experiment.models[model_id] = TopicModel.load(
                    +                    model_save_path, experiment
                    +                )
                    +
                    +    return experiment
                    +

                    Instance variables

                    @@ -90,10 +1852,32 @@

                    Instance variables

                    Returns depth of the tree.
                    Be careful, depth of the tree may not be the real experiment depth.

                    +
                    + +Expand source code + +
                    @property
                    +def depth(self):
                    +    """
                    +    Returns depth of the tree.  
                    +    Be careful, depth of the tree may not be the real experiment depth.
                    +
                    +    """  # noqa: W291
                    +    return self.tree.get_depth()
                    +
                    var root
                    +
                    + +Expand source code + +
                    @property
                    +def root(self):
                    +    """ """
                    +    return self.models[START]
                    +

                    Methods

                    @@ -108,6 +1892,24 @@

                    Parameters

                    cube : dict
                    cube's params
                    +
                    + +Expand source code + +
                    def add_cube(self, cube):
                    +    """
                    +    Adds cube to the experiment.
                    +
                    +    Parameters
                    +    ----------
                    +    cube : dict
                    +        cube's params
                    +
                    +    """
                    +    self.cubes.append(cube)
                    +    self.criteria.append(None)
                    +    self.save()
                    +
                    def add_dataset(self, dataset_id, dataset) @@ -121,6 +1923,26 @@

                    Parameters

                    dataset : Dataset
                     
                    +
                    + +Expand source code + +
                    def add_dataset(self, dataset_id, dataset):
                    +    """
                    +    Adds dataset to storage.
                    +
                    +    Parameters
                    +    ----------
                    +    dataset_id : str
                    +        id of dataset to save
                    +    dataset : Dataset
                    +
                    +    """
                    +    if dataset_id not in self.datasets:
                    +        self.datasets[dataset_id] = dataset
                    +    else:
                    +        raise NameError(f'Dataset with name {dataset_id} already exists in the experiment.')
                    +
                    def add_model(self, topic_model) @@ -132,6 +1954,26 @@

                    Parameters

                    topic_model : TopicModel
                    topic model
                    +
                    + +Expand source code + +
                    def add_model(self, topic_model):
                    +    """
                    +    Adds model to the experiment.
                    +
                    +    Parameters
                    +    ----------
                    +    topic_model : TopicModel
                    +        topic model
                    +
                    +    """
                    +    topic_model.experiment = self
                    +    self.tree.add_model(topic_model)
                    +    self.models_info[topic_model.model_id] = topic_model.get_parameters()
                    +    self.models[topic_model.model_id] = topic_model
                    +    self.save()
                    +
                    def build(self, settings) @@ -148,6 +1990,49 @@

                    Returns

                    Nothing
                     
                    +
                    + +Expand source code + +
                    def build(self, settings):
                    +    """
                    +    Builds experiment pipeline from description.
                    +
                    +    Parameters
                    +    ----------
                    +    settings: list of dicts
                    +        list with cubes parameters for every pipeline step
                    +    Returns
                    +    -------
                    +    Nothing
                    +
                    +    """
                    +    import topicnet.cooking_machine.cubes as tncubes
                    +
                    +    self.criteria = [None]
                    +    for stage in settings:
                    +        for cube_name, cube_param in stage.items():
                    +            if cube_name == 'selection':
                    +                stage_criteria = cube_param
                    +            else:
                    +                try:
                    +                    stage_cube = getattr(tncubes, cube_name)(**cube_param)
                    +                except Exception as e:
                    +                    error_message = repr(e)
                    +                    raise ValueError(f'Can not create {cube_name} '
                    +                                     f'with parameters {cube_param}.\n'
                    +                                     f'Process failed with following: {error_message}')
                    +        try:
                    +            self.cubes += [{
                    +                'action': stage_cube.action,
                    +                'params': stage_cube.get_jsonable_from_parameters(),
                    +                'cube': stage_cube
                    +            }]
                    +            self.criteria.append(stage_criteria)
                    +            del(stage_cube, stage_criteria)
                    +        except NameError:
                    +            raise NameError('To define pipeline BOTH cube and selection criteria needed')
                    +
                    def describe_model(self, model_id) @@ -164,6 +2049,46 @@

                    Returns

                    description_string : str
                     
                    +
                    + +Expand source code + +
                    def describe_model(self, model_id):
                    +    """
                    +    Returns all scores mentioned on the model stage criteria.
                    +
                    +    Parameters
                    +    ----------
                    +    model_id : str
                    +        string id of the model to examine
                    +
                    +    Returns
                    +    -------
                    +    description_string : str
                    +    """
                    +    model = self.models[model_id]
                    +    # criteria for selecting models for the following cube
                    +    templates = self.criteria[model.depth - 1]
                    +
                    +    score_names = []
                    +    for template in templates:
                    +        score_names += [statement.split()[0] for statement in re.split(r'\s+and\s+', template)]
                    +    score_names = set(score_names)
                    +    description_strings = ['model: ' + model_id]
                    +    for score_name in score_names:
                    +        if 'model.' in score_name:
                    +            attr = score_name.split('.')[1]
                    +            attr_val = getattr(model, attr)
                    +            description_strings += [f'model attribute "{attr}" with value: {attr_val}']
                    +        else:
                    +            try:
                    +                description_strings += [f'{score_name}: {model.scores[score_name][-1]}']
                    +            except KeyError:
                    +                raise ValueError(f'Model does not have {score_name} score.')
                    +
                    +    description_string = "\n".join(description_strings)
                    +    return description_string
                    +
                    def get_description(self, min_len_per_cube=26, len_tree_step=27) @@ -185,12 +2110,63 @@

                    Returns

                    str
                    description to print
                    +
                    + +Expand source code + +
                    def get_description(self,
                    +                    min_len_per_cube: int = MODEL_NAME_LENGTH,
                    +                    len_tree_step: int = MODEL_NAME_LENGTH + 1):
                    +    """
                    +    Creates description of the tree that you can print.
                    +    Print is good when you use no more than 3 cubes at all.
                    +
                    +    Parameters
                    +    ----------
                    +    min_len_per_cube : int
                    +        minimal length of the one stage of experiment description
                    +        (Default value = MODEL_NAME_LENGTH)
                    +    len_tree_step : int
                    +        length of the whole one stage description of experiment's tree
                    +        (Default value = MODEL_NAME_LENGTH +1)
                    +
                    +    Returns
                    +    -------
                    +    str
                    +        description to print
                    +
                    +    """
                    +    strings = give_strings_description(
                    +        self,
                    +        min_len_per_cube=min_len_per_cube,
                    +        len_tree_step=len_tree_step
                    +    )
                    +    description = "\n".join(strings)
                    +
                    +    return description
                    +
                    def get_models_by_depth(self, level=None)
                    +
                    + +Expand source code + +
                    def get_models_by_depth(self, level=None):
                    +    """ """
                    +    if level is None:
                    +        # level = self.depth
                    +        level = len(self.cubes)
                    +
                    +    return [
                    +        tmodel
                    +        for tmodel in self.models.values()
                    +        if isinstance(tmodel, BaseModel) and tmodel.depth == int(level)
                    +    ]
                    +
                    def get_params(self) @@ -202,6 +2178,29 @@

                    Returns

                    parameters : dict
                     
                    +
                    + +Expand source code + +
                    def get_params(self):
                    +    """
                    +    Gets params of the experiment.
                    +
                    +    Returns
                    +    -------
                    +    parameters : dict
                    +
                    +    """
                    +    params = {"save_path": self.save_path,
                    +              "experiment_id": self.experiment_id,
                    +              "models_info": self.models_info,
                    +              "criteria": self.criteria,
                    +              "tree": self.tree.tree,
                    +              "depth": self.depth,
                    +              "cubes": self.cubes}
                    +
                    +    return params
                    +
                    def preprocess_query(self, query_string, level) @@ -215,6 +2214,63 @@

                    Parameters

                    level : int
                    model level
                    +
                    + +Expand source code + +
                    def preprocess_query(self, query_string: str, level):
                    +    """
                    +    Preprocesses special queries with functions inside.
                    +
                    +    Parameters
                    +    ----------
                    +    query_string : str
                    +        string for processing
                    +    level : int
                    +        model level
                    +
                    +    """
                    +    queries_list = re.split(r'\s+and\s+', query_string)
                    +    special_functions = [
                    +                'MINIMUM',
                    +                'MAXIMUM',
                    +                'AVERAGE',
                    +                'MEDIAN',
                    +            ]
                    +
                    +    model_queries = []
                    +    special_queries = []
                    +    standard_queries = []
                    +    for query in queries_list:
                    +        if query.startswith('model.'):
                    +            model_queries.append(query)
                    +        elif any(special_function in query for special_function in special_functions):
                    +            special_queries.append(query)
                    +        else:
                    +            standard_queries.append(query)
                    +
                    +    if len(model_queries) != 0:
                    +        inner_query_string = ' and '.join(model_queries)
                    +        (req_lesser, req_greater,
                    +         req_equal, metric, extremum) = parse_query_string(inner_query_string)
                    +
                    +        if metric is not None or extremum is not None:
                    +            warnings.warn(f'You try to optimize model parameters.')
                    +
                    +        candidate_tmodels = self.get_models_by_depth(level=level)
                    +        special_models = choose_best_models(
                    +            candidate_tmodels,
                    +            req_lesser, req_greater, req_equal,
                    +            metric, extremum,
                    +            models_num=None
                    +        )
                    +    else:
                    +        special_models = self.get_models_by_depth(level=level)
                    +
                    +    special_queries = compute_special_queries(special_models, special_queries)
                    +
                    +    return ' and '.join(standard_queries + model_queries + special_queries)
                    +
                    def remove_dataset(self, dataset_id) @@ -226,6 +2282,25 @@

                    Parameters

                    dataset_id : str
                    id of dataset to remove
                    +
                    + +Expand source code + +
                    def remove_dataset(self, dataset_id):
                    +    """
                    +    Removes dataset from storage.
                    +
                    +    Parameters
                    +    ----------
                    +    dataset_id : str
                    +        id of dataset to remove
                    +
                    +    """
                    +    if dataset_id in self.datasets:
                    +        del self.datasets[dataset_id]
                    +    else:
                    +        raise NameError(f'There is no dataset with name {dataset_id} in this experiment.')
                    +
                    def run(self, dataset, verbose=False, nb_verbose=False) @@ -242,6 +2317,58 @@

                    Parameters

                    parameter that determines where the output is produced if False prints in console (Default value = False)
                    +
                    + +Expand source code + +
                    def run(self, dataset, verbose=False, nb_verbose=False):
                    +    """
                    +    Runs defined pipeline and prints out the result.
                    +
                    +    Parameters
                    +    ----------
                    +    dataset : Dataset
                    +    verbose : bool
                    +        parameter that determines if the output is produced (Default value = False)
                    +    nb_verbose : bool
                    +        parameter that determines where the output is produced 
                    +        if False prints in console (Default value = False)
                    +
                    +    """  # noqa: W291
                    +    stage_models = self.root
                    +
                    +    for cube_index, cube_description in enumerate(self.cubes):
                    +        if cube_description['action'] == 'start':
                    +            continue
                    +
                    +        cube = cube_description['cube']
                    +        cube(stage_models, dataset)
                    +
                    +        # TODO: either delete this line completely
                    +        #  or come up with a way to restore any cube using just info about it in self.cubes
                    +        #  (need to restore cubes for upgrading dummy to topic model)
                    +        # self.cubes[cube_index].pop('cube', None)
                    +
                    +        stage_models = self._select_and_save_unique_models(
                    +            self.criteria[cube_index], dataset, cube_index + 1
                    +        )
                    +
                    +        if verbose:
                    +            tree_description = "\n".join(self.tree.get_description())
                    +            Experiment._clear_and_print(tree_description, nb_verbose)
                    +
                    +        if self._low_memory:
                    +            self.squeeze_models(max(0, self.depth - 2))
                    +
                    +    if verbose:
                    +        Experiment._clear_and_print(self.get_description(), nb_verbose)
                    +
                    +    if self._low_memory:
                    +        self.squeeze_models(max(0, self.depth - 1))
                    +        self.squeeze_models(self.depth)
                    +
                    +    return stage_models
                    +
                    def save(self, window_size=1500, mode='all') @@ -253,6 +2380,34 @@

                    Parameters

                    window_size : int
                    pixels size of window in html description (Default value = 1500)
                    +
                    + +Expand source code + +
                    def save(self, window_size: int = 1500, mode: str = 'all'):
                    +    """
                    +    Saves all params of the experiment to save_path/experiment_id.
                    +
                    +    Parameters
                    +    ----------
                    +    window_size : int
                    +        pixels size of window in html description (Default value = 1500)
                    +
                    +    """
                    +    experiment_save_path = os.path.join(self.save_path, self.experiment_id)
                    +    if not os.path.exists(experiment_save_path):
                    +        os.makedirs(experiment_save_path)
                    +
                    +    self.save_models(mode=mode)
                    +
                    +    params = self.get_params()
                    +    json.dump(params, open(f'{experiment_save_path}/params.json', 'w'),
                    +              default=transform_topic_model_description_to_jsonable)
                    +    html = get_html(self, window_size)
                    +    html_path = os.path.join(experiment_save_path, 'params.html')
                    +    with open(html_path, "w", encoding='utf-8') as f:
                    +        f.write(html)
                    +
                    def save_models(self, mode='all') @@ -267,6 +2422,50 @@

                    Parameters

                    'tree' - save only stem and leaves from the last level
                    'last' save only leaves from the last level +
                    + +Expand source code + +
                    def save_models(self, mode='all'):
                    +    """
                    +    Saves experiment models with respect to selected way of saving.
                    +
                    +    Parameters
                    +    ----------
                    +    mode : str
                    +        defines saving mode
                    +        'all' - save all models in experiment  
                    +        'tree' - save only stem and leaves from the last level  
                    +        'last' save only leaves from the last level
                    +
                    +    """  # noqa: W291
                    +    experiment_save_path = os.path.join(self.save_path, self.experiment_id)
                    +
                    +    save_models = set()
                    +    if mode == 'all':
                    +        save_models.update([
                    +            (tmodel, tmodel.model_id)
                    +            for tmodel in self.models.values()
                    +            if is_saveable_model(tmodel)
                    +        ])
                    +    elif mode == 'tree':
                    +        save_models.update([
                    +            (self.models.get(getattr(tmodel, 'parent_model_id', None)),
                    +             getattr(tmodel, 'parent_model_id', None))
                    +            for tmodel in self.models.values()
                    +            if is_saveable_model(self.models.get(getattr(tmodel, 'parent_model_id', None)))
                    +        ])
                    +    else:
                    +        save_models.update(set([
                    +            (tmodel, tmodel.model_id)
                    +            for tmodel in self.get_models_by_depth(self.depth)
                    +            if is_saveable_model(tmodel)
                    +        ]))
                    +
                    +    for model, model_id in list(save_models):
                    +        model_save_path = os.path.join(experiment_save_path, model_id)
                    +        model.save(model_save_path=model_save_path)
                    +
                    def select(self, query_string='', models_num=None, level=None) @@ -326,6 +2525,123 @@

                    Examples

                    )

                    +
                    + +Expand source code + +
                    def select(self, query_string='', models_num=None, level=None):
                    +    """
                    +    Selects all models satisfying the query string
                    +    from all models on a particular depth.
                    +
                    +    Parameters
                    +    ----------
                    +    query_string : str
                    +        string of form "SCORE1 < VAL and SCORE2 > VAL and SCORE3 -> min"
                    +    models_num : int
                    +        number of models to select (Default value = None)
                    +    level : int
                    +        None represents "the last level of experiment" (Default value = None)
                    +
                    +    Returns
                    +    -------
                    +    result_topic_models : list of restored TopicModels
                    +
                    +    String Format
                    +    -------------
                    +    string of following form:  
                    +    QUERY = EXPR and EXPR and EXPR and ... and EXPR [collect COLLECT_NUMERAL]
                    +    where EXPR could take any of these forms:  
                    +        EXPR = LITERAL < NUMBER  
                    +        EXPR = LITERAL > NUMBER  
                    +        EXPR = LITERAL = NUMBER  
                    +        EXPR = LITERAL -> min  
                    +        EXPR = LITERAL -> max  
                    +    and LITERAL is one of the following:
                    +        SCORE_NAME or model.PARAMETER_NAME
                    +        (for complicated scores you can use '.': e.g. TopicKernelScore.average_purity)
                    +    COLLECT clause is optional. COLLECT_NUMERAL could be integer or string "all"
                    +
                    +    NUMBER is float / int or some expression involving special functions:
                    +        MINIMUM, MAXIMUM, AVERAGE, MEDIAN
                    +    Everything is separated by spaces.
                    +
                    +    Notes
                    +    -----
                    +
                    +    If both models_num and COLLECT_NUMERAL is specified, COLLECT_NUMERAL takes priority.
                    +
                    +    If optimization directive is specified, select() may return more models than requested
                    +    (whether by models_num or by COLLECT_NUMERAL). This behaviour occurs when some scores
                    +    are equal.
                    +
                    +    For example, if we have 5 models with following scores:
                    +        [model1: 100, model2: 95, model3: 95, model4: 95, model5: 80]
                    +    and user asks experiment to provide 2 models with maximal score,
                    +    then 4 models will be returned:
                    +        [model1: 100, model2: 95, model3: 95, model4: 95]
                    +
                    +
                    +    Examples
                    +    --------
                    +
                    +    >> experiment.select("PerplexityScore@words -> min COLLECT 2")
                    +
                    +    >> experiment.select(
                    +        "TopicKernelScore.average_contrast -> max and PerplexityScore@all < 100 COLLECT 2"
                    +    )
                    +
                    +    >> experiment.select(
                    +        "PerplexityScore@words < 1.1 * MINIMUM(PerplexityScore@all) and model.num_topics > 12"
                    +    )
                    +
                    +
                    +    """  # noqa: W291
                    +    from .models import DummyTopicModel
                    +    models_num_as_parameter = models_num
                    +    models_num_from_query = None
                    +    candidate_tmodels = self.get_models_by_depth(level=level)
                    +
                    +    if "COLLECT" in query_string:
                    +        first_part, second_part = re.split(r'\s*COLLECT\s+', query_string)
                    +
                    +        if second_part.lower() != 'all':
                    +            try:
                    +                models_num_from_query = int(second_part)
                    +            except ValueError:
                    +                raise ValueError(f"Invalid directive in COLLECT: {second_part}")
                    +        else:
                    +            models_num_from_query = len(candidate_tmodels)
                    +
                    +        query_string = first_part
                    +
                    +    models_num = choose_value_for_models_num_and_check(
                    +        models_num_as_parameter, models_num_from_query
                    +    )
                    +
                    +    try:
                    +        query_string = self.preprocess_query(query_string, level)
                    +        req_lesser, req_greater, req_equal, metric, extremum = parse_query_string(query_string)
                    +
                    +        result = choose_best_models(
                    +            candidate_tmodels,
                    +            req_lesser, req_greater, req_equal,
                    +            metric, extremum,
                    +            models_num
                    +        )
                    +        result_topic_models = [model.restore() if isinstance(model, DummyTopicModel)
                    +                               else model for model in result]
                    +        return result_topic_models
                    +
                    +    except ValueError as e:
                    +        if e.args[0] not in EMPTY_ERRORS:
                    +            raise e
                    +
                    +        error_message = repr(e)
                    +        warnings.warn(W_EMPTY_SPECIAL_1 + W_EMPTY_SPECIAL_2.format(error_message))
                    +
                    +        return []
                    +
                    def set_criteria(self, cube_index, criteria) @@ -345,12 +2661,53 @@

                    Returns

                    Nothing
                     
                    +
                    + +Expand source code + +
                    def set_criteria(self, cube_index, criteria):
                    +    """
                    +    Allows to edit model selection criteria
                    +    on each stage of the Experiment
                    +
                    +    Parameters
                    +    ----------
                    +    cube_index : int
                    +    selection_criteria: list of str or str
                    +        the criteria to replacing current record
                    +
                    +    Returns
                    +    -------
                    +    Nothing
                    +
                    +    """
                    +    if cube_index >= len(self.cubes):
                    +        raise ValueError(f'Invalid cube_index. There are {len(self.cubes)} cubes.'
                    +                         'You can check it using experiment.cubes')
                    +    else:
                    +        if isinstance(criteria, str):
                    +            criteria = [criteria]
                    +        self.criteria[cube_index] = criteria
                    +
                    def show(self)

                    Shows description of the experiment.

                    +
                    + +Expand source code + +
                    def show(self):
                    +    """
                    +    Shows description of the experiment.
                    +
                    +    """
                    +    nb_verbose = _run_from_notebook()
                    +    string = self.get_description()
                    +    Experiment._clear_and_print(string, nb_verbose)
                    +
                    def squeeze_models(self, depth=None) @@ -362,6 +2719,26 @@

                    Parameters

                    depth : int
                    Models on what depth are to be squeezed, i.e. transformed to dummies
                    +
                    + +Expand source code + +
                    def squeeze_models(self, depth: int = None):
                    +    """Transforms models to dummies so as to occupy less RAM memory
                    +
                    +    Parameters
                    +    ----------
                    +    depth : int
                    +        Models on what depth are to be squeezed, i.e. transformed to dummies
                    +    """
                    +    if depth == 0:
                    +        return
                    +
                    +    assert isinstance(depth, int) and depth > 0
                    +
                    +    for m in self.get_models_by_depth(depth):
                    +        m.make_dummy()
                    +
                    @@ -412,7 +2789,9 @@

                    -

                    Generated by pdoc 0.6.3.

                    +

                    Generated by pdoc 0.7.2.

                    + + \ No newline at end of file diff --git a/docs/cooking_machine/index.html b/docs/cooking_machine/index.html index dc3b420..d0b65bc 100644 --- a/docs/cooking_machine/index.html +++ b/docs/cooking_machine/index.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine API documentation - + + @@ -48,6 +49,15 @@

                    Experiment

                  • able to copy itself.
                  +
                  + +Expand source code + +
                  from .dataset import Dataset
                  +from .dataset import BaseDataset
                  +from .experiment import Experiment
                  +from .model_constructor import *
                  +

                  Sub-modules

                  @@ -85,6 +95,10 @@

                  Sub-modules

                  +
                  topicnet.cooking_machine.recipes
                  +
                  +
                  +
                  topicnet.cooking_machine.rel_toolbox_lite
                  @@ -103,7 +117,7 @@

                  Sub-modules

                @@ -131,7 +146,9 @@

                Topicnet library documentation

                + + \ No newline at end of file diff --git a/docs/cooking_machine/model_constructor.html b/docs/cooking_machine/model_constructor.html index 4e95a73..7a27dbf 100644 --- a/docs/cooking_machine/model_constructor.html +++ b/docs/cooking_machine/model_constructor.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.model_constructor API documentation - + + @@ -19,6 +20,177 @@

                Module topicnet.cooking_machine.model_constructor

                +
                + +Expand source code + +
                from .rel_toolbox_lite import count_vocab_size, modality_weight_rel2abs
                +import artm
                +
                +# change log style
                +lc = artm.messages.ConfigureLoggingArgs()
                +lc.minloglevel = 3
                +lib = artm.wrapper.LibArtm(logging_config=lc)
                +
                +
                +def add_standard_scores(
                +        model,
                +        dictionary,
                +        main_modality="@lemmatized",
                +        all_modalities=("@lemmatized", "@ngramms")
                +):
                +    """
                +    Adds standard scores for the model.
                +
                +    """
                +    assert main_modality in all_modalities, "main_modality must be part of all_modalities"
                +
                +    model.scores.add(artm.scores.PerplexityScore(
                +        name='PerplexityScore@all',
                +        class_ids=all_modalities
                +    ))
                +
                +    model.scores.add(
                +        artm.scores.SparsityThetaScore(name='SparsityThetaScore')
                +    )
                +
                +    for modality in all_modalities:
                +        model.scores.add(artm.scores.SparsityPhiScore(
                +            name=f'SparsityPhiScore{modality}', class_id=modality)
                +        )
                +        model.scores.add(artm.scores.PerplexityScore(
                +            name=f'PerplexityScore{modality}',
                +            class_ids=[modality]
                +        ))
                +        model.scores.add(
                +            artm.TopicKernelScore(name=f'TopicKernel{modality}',
                +                                  probability_mass_threshold=0.3, class_id=modality)
                +        )
                +
                +
                +def init_model(topic_names, seed=None, class_ids=None):
                +    """
                +    Creates basic artm model
                +
                +    """
                +    model = artm.ARTM(
                +        topic_names=topic_names,
                +        # Commented for performance uncomment if has zombie issues
                +        # num_processors=3,
                +        theta_columns_naming='title',
                +        show_progress_bars=False,
                +        class_ids=class_ids,
                +        seed=seed
                +    )
                +
                +    return model
                +
                +
                +def create_default_topics(specific_topics, background_topics):
                +    """
                +    Creates list of background topics and specific topics
                +
                +    Parameters
                +    ----------
                +    specific_topics : list or int
                +    background_topics : list or int
                +
                +    Returns
                +    -------
                +    (list, list)
                +    """
                +    # TODO: what if specific_topics = 4
                +    # and background_topics = ["topic_0"] ?
                +    if isinstance(specific_topics, list):
                +        specific_topic_names = list(specific_topics)
                +    else:
                +        specific_topics = int(specific_topics)
                +        specific_topic_names = [
                +            f'topic_{i}'
                +            for i in range(specific_topics)
                +        ]
                +    n_specific_topics = len(specific_topic_names)
                +    if isinstance(background_topics, list):
                +        background_topic_names = list(background_topics)
                +    else:
                +        background_topics = int(background_topics)
                +        background_topic_names = [
                +            f'background_{n_specific_topics + i}'
                +            for i in range(background_topics)
                +        ]
                +    if set(specific_topic_names) & set(background_topic_names):
                +        raise ValueError(
                +            "Specific topic names and background topic names should be distinct from each other!"
                +        )
                +
                +    return specific_topic_names, background_topic_names
                +
                +
                +def init_simple_default_model(
                +        dataset, modalities_to_use, main_modality,
                +        specific_topics, background_topics,
                +        modalities_weights=None
                +):
                +    """
                +    Creates simple artm model with standard scores.
                +
                +    Parameters
                +    ----------
                +    dataset : Dataset
                +    modalities_to_use : list of str
                +    main_modality : str
                +    specific_topics : list or int
                +    background_topics : list or int
                +    modalities_weights : dict or None
                +
                +    Returns
                +    -------
                +    model: artm.ARTM() instance
                +    """
                +    if modalities_weights is not None:
                +        assert sorted(list(modalities_to_use)) == sorted(list(modalities_weights.keys()))
                +    baseline_class_ids = {class_id: 1 for class_id in modalities_to_use}
                +
                +    specific_topic_names, background_topic_names = create_default_topics(
                +        specific_topics, background_topics
                +    )
                +    dictionary = dataset.get_dictionary()
                +
                +    tokens_data = count_vocab_size(dictionary, modalities_to_use)
                +    abs_weights = modality_weight_rel2abs(
                +        tokens_data,
                +        modalities_weights if modalities_weights is not None else baseline_class_ids,
                +        main_modality
                +    )
                +
                +    model = init_model(
                +        topic_names=specific_topic_names + background_topic_names,
                +        class_ids=abs_weights,
                +    )
                +
                +    if len(background_topic_names) > 0:
                +        model.regularizers.add(
                +            artm.SmoothSparsePhiRegularizer(
                +                 name='smooth_phi_bcg',
                +                 topic_names=background_topic_names,
                +                 tau=0.0,
                +                 class_ids=[main_modality],
                +            ),
                +        )
                +        model.regularizers.add(
                +            artm.SmoothSparseThetaRegularizer(
                +                 name='smooth_theta_bcg',
                +                 topic_names=background_topic_names,
                +                 tau=0.0,
                +            ),
                +        )
                +
                +    model.initialize(dictionary)
                +    add_standard_scores(model, dictionary, main_modality=main_modality,
                +                        all_modalities=modalities_to_use)
                +
                +    return model
                +
                @@ -32,6 +204,44 @@

                Functions

                Adds standard scores for the model.

                +
                + +Expand source code + +
                def add_standard_scores(
                +        model,
                +        dictionary,
                +        main_modality="@lemmatized",
                +        all_modalities=("@lemmatized", "@ngramms")
                +):
                +    """
                +    Adds standard scores for the model.
                +
                +    """
                +    assert main_modality in all_modalities, "main_modality must be part of all_modalities"
                +
                +    model.scores.add(artm.scores.PerplexityScore(
                +        name='PerplexityScore@all',
                +        class_ids=all_modalities
                +    ))
                +
                +    model.scores.add(
                +        artm.scores.SparsityThetaScore(name='SparsityThetaScore')
                +    )
                +
                +    for modality in all_modalities:
                +        model.scores.add(artm.scores.SparsityPhiScore(
                +            name=f'SparsityPhiScore{modality}', class_id=modality)
                +        )
                +        model.scores.add(artm.scores.PerplexityScore(
                +            name=f'PerplexityScore{modality}',
                +            class_ids=[modality]
                +        ))
                +        model.scores.add(
                +            artm.TopicKernelScore(name=f'TopicKernel{modality}',
                +                                  probability_mass_threshold=0.3, class_id=modality)
                +        )
                +
                def create_default_topics(specific_topics, background_topics) @@ -47,15 +257,79 @@

                Parameters

                Returns

                (list, list)

                +
                + +Expand source code + +
                def create_default_topics(specific_topics, background_topics):
                +    """
                +    Creates list of background topics and specific topics
                +
                +    Parameters
                +    ----------
                +    specific_topics : list or int
                +    background_topics : list or int
                +
                +    Returns
                +    -------
                +    (list, list)
                +    """
                +    # TODO: what if specific_topics = 4
                +    # and background_topics = ["topic_0"] ?
                +    if isinstance(specific_topics, list):
                +        specific_topic_names = list(specific_topics)
                +    else:
                +        specific_topics = int(specific_topics)
                +        specific_topic_names = [
                +            f'topic_{i}'
                +            for i in range(specific_topics)
                +        ]
                +    n_specific_topics = len(specific_topic_names)
                +    if isinstance(background_topics, list):
                +        background_topic_names = list(background_topics)
                +    else:
                +        background_topics = int(background_topics)
                +        background_topic_names = [
                +            f'background_{n_specific_topics + i}'
                +            for i in range(background_topics)
                +        ]
                +    if set(specific_topic_names) & set(background_topic_names):
                +        raise ValueError(
                +            "Specific topic names and background topic names should be distinct from each other!"
                +        )
                +
                +    return specific_topic_names, background_topic_names
                +
                def init_model(topic_names, seed=None, class_ids=None)

                Creates basic artm model

                +
                + +Expand source code + +
                def init_model(topic_names, seed=None, class_ids=None):
                +    """
                +    Creates basic artm model
                +
                +    """
                +    model = artm.ARTM(
                +        topic_names=topic_names,
                +        # Commented for performance uncomment if has zombie issues
                +        # num_processors=3,
                +        theta_columns_naming='title',
                +        show_progress_bars=False,
                +        class_ids=class_ids,
                +        seed=seed
                +    )
                +
                +    return model
                +
                -def init_simple_default_model(dataset, modalities_to_use, main_modality, specific_topics, background_topics) +def init_simple_default_model(dataset, modalities_to_use, main_modality, specific_topics, background_topics, modalities_weights=None)

                Creates simple artm model with standard scores.

                @@ -71,12 +345,83 @@

                Parameters

                 
                background_topics : list or int
                 
                +
                modalities_weights : dict or None
                +
                 

                Returns

                model : artm.ARTM() instance
                 
                +
                + +Expand source code + +
                def init_simple_default_model(
                +        dataset, modalities_to_use, main_modality,
                +        specific_topics, background_topics,
                +        modalities_weights=None
                +):
                +    """
                +    Creates simple artm model with standard scores.
                +
                +    Parameters
                +    ----------
                +    dataset : Dataset
                +    modalities_to_use : list of str
                +    main_modality : str
                +    specific_topics : list or int
                +    background_topics : list or int
                +    modalities_weights : dict or None
                +
                +    Returns
                +    -------
                +    model: artm.ARTM() instance
                +    """
                +    if modalities_weights is not None:
                +        assert sorted(list(modalities_to_use)) == sorted(list(modalities_weights.keys()))
                +    baseline_class_ids = {class_id: 1 for class_id in modalities_to_use}
                +
                +    specific_topic_names, background_topic_names = create_default_topics(
                +        specific_topics, background_topics
                +    )
                +    dictionary = dataset.get_dictionary()
                +
                +    tokens_data = count_vocab_size(dictionary, modalities_to_use)
                +    abs_weights = modality_weight_rel2abs(
                +        tokens_data,
                +        modalities_weights if modalities_weights is not None else baseline_class_ids,
                +        main_modality
                +    )
                +
                +    model = init_model(
                +        topic_names=specific_topic_names + background_topic_names,
                +        class_ids=abs_weights,
                +    )
                +
                +    if len(background_topic_names) > 0:
                +        model.regularizers.add(
                +            artm.SmoothSparsePhiRegularizer(
                +                 name='smooth_phi_bcg',
                +                 topic_names=background_topic_names,
                +                 tau=0.0,
                +                 class_ids=[main_modality],
                +            ),
                +        )
                +        model.regularizers.add(
                +            artm.SmoothSparseThetaRegularizer(
                +                 name='smooth_theta_bcg',
                +                 topic_names=background_topic_names,
                +                 tau=0.0,
                +            ),
                +        )
                +
                +    model.initialize(dictionary)
                +    add_standard_scores(model, dictionary, main_modality=main_modality,
                +                        all_modalities=modalities_to_use)
                +
                +    return model
                +
                @@ -106,7 +451,9 @@

                Index

                + + \ No newline at end of file diff --git a/docs/cooking_machine/model_tracking.html b/docs/cooking_machine/model_tracking.html index 903cd38..00ce9e4 100644 --- a/docs/cooking_machine/model_tracking.html +++ b/docs/cooking_machine/model_tracking.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.model_tracking API documentation - + + @@ -19,6 +20,337 @@

                Module topicnet.cooking_machine.model_tracking

                +
                + +Expand source code + +
                import numpy as np
                +
                +from copy import deepcopy
                +from .models.base_model import MODEL_NAME_LENGTH
                +
                +
                +def padd_model_name(model_id):
                +    padding = MODEL_NAME_LENGTH - len(model_id)
                +    if padding > 0:
                +        add = padding // 2
                +        odd = padding % 2
                +        return '<' * add + model_id + '>' * (add + odd)
                +    else:
                +        return model_id[:MODEL_NAME_LENGTH]
                +
                +
                +START = padd_model_name('root')
                +
                +UP_END = "┌"
                +DOWN_END = "└"
                +MIDDLE = "├"
                +LAST = "┤"
                +EMPTY = "│"
                +START_END = "┐"
                +SPACE = " "
                +
                +
                +class Tree(object):
                +    """
                +    Contains tree of an experiment and methods to work with it.
                +
                +    """
                +
                +    def __init__(self, tree: dict = None):
                +        """
                +        Initial stage.
                +
                +        Parameters
                +        ----------
                +        tree : dict
                +            tree of an experiment (Default value = None)
                +
                +        """
                +        if tree is None:
                +            self.tree = {'model_id': START, 'models': []}
                +        else:
                +            self.tree = tree
                +
                +    def _append_description(self,
                +                            tree: dict, current_part: list, leaf,
                +                            up_sub_glue: str, down_sub_glue: str,
                +                            branching_marker: str):
                +        """
                +
                +        Parameters
                +        ----------
                +        tree : dict
                +            tree of an experiment
                +        current_part : list
                +        leaf : dict
                +        up_sub_glue : str
                +        down_sub_glue : str
                +        branching_marker : str
                +
                +        """
                +        cur_string = SPACE * len(tree["model_id"])
                +        up_sub_part, middle_sub_part, down_sub_part = self._get_description(leaf)
                +        for string in up_sub_part:
                +            current_part.append(SPACE * len(cur_string) + up_sub_glue + string)
                +        current_part.append(cur_string + branching_marker + middle_sub_part[0])
                +        for string in down_sub_part:
                +            current_part.append(SPACE * len(cur_string) + down_sub_glue + string)
                +
                +    def _get_description(self, tree: dict):
                +        """
                +        Internal method to create description of the tree.
                +
                +        Parameters
                +        ----------
                +        tree : dict
                +            tree of an experiment
                +
                +        Returns
                +        -------
                +        3-list
                +            strings of description for up, middle and down tree parts
                +
                +        """
                +        up_part, middle_part, down_part = [], [], []
                +        num_leaves = len(tree["models"])
                +        if num_leaves > 0:
                +            for id_leaf, leaf in zip(range(num_leaves)[:num_leaves // 2],
                +                                     tree["models"][:num_leaves // 2]):
                +                if id_leaf == 0:
                +                    self._append_description(
                +                        tree, up_part, leaf,
                +                        up_sub_glue=SPACE, down_sub_glue=EMPTY, branching_marker=UP_END
                +                    )
                +                else:
                +                    self._append_description(
                +                        tree, up_part, leaf,
                +                        up_sub_glue=EMPTY, down_sub_glue=EMPTY, branching_marker=MIDDLE
                +                    )
                +            if num_leaves == 1:
                +                middle_part.append(tree["model_id"] + START_END)
                +            else:
                +                middle_part.append(tree["model_id"] + LAST)
                +            for id_leaf, leaf in zip(range(num_leaves)[num_leaves // 2:],
                +                                     tree["models"][num_leaves // 2:]):
                +                if id_leaf == num_leaves - 1:
                +                    self._append_description(
                +                        tree, down_part, leaf,
                +                        up_sub_glue=EMPTY, down_sub_glue=SPACE, branching_marker=DOWN_END
                +                    )
                +                else:
                +                    self._append_description(
                +                        tree, down_part, leaf,
                +                        up_sub_glue=EMPTY, down_sub_glue=EMPTY, branching_marker=MIDDLE
                +                    )
                +        else:
                +            middle_part.append(tree["model_id"])
                +
                +        return up_part, middle_part, down_part
                +
                +    def _get_depth(self, tree):
                +        """
                +        Gets depth of the tree.
                +
                +        Parameters
                +        ----------
                +        tree : dict
                +            tree of an experiment
                +
                +        Returns
                +        -------
                +        int
                +            tree depth
                +
                +        """
                +        depths = [1]
                +        for leaf in tree["models"]:
                +            depths += [self._get_depth(leaf)]
                +
                +        return np.array(depths).max() + 1 * (len(tree["models"]) > 0)
                +
                +    def _add_model_in_tree(self, tree, topic_model):
                +        """
                +        Adds model in the tree of an experiment.
                +
                +        Parameters
                +        ----------
                +        tree : dict
                +            tree of an experiment
                +        topic_model : TopicModel
                +            topic model
                +
                +        """
                +        if tree["model_id"] == topic_model.parent_model_id:
                +            tree["models"].append(self.transform_to_leaf(topic_model))
                +        else:
                +            for leaf in tree["models"]:
                +                self._add_model_in_tree(leaf, topic_model)
                +
                +    def _prune(self, tree, depth, level: int = 1):
                +        """
                +        Prunes tree to get particular depth.
                +
                +        Parameters
                +        ----------
                +        tree : dict
                +            tree of an experiment.
                +        depth : int
                +            desired tree depth
                +        level : int
                +            internal variable (current depth) (Default value = 0)
                +
                +        Returns
                +        -------
                +        tree : dict
                +            pruned tree with desired depth
                +
                +        """
                +        models = []
                +        if level <= depth:
                +            for model in tree["models"]:
                +                pruned_model = self._prune(model, depth, level + 1)
                +                if pruned_model is None:
                +                    break
                +                else:
                +                    models.append(pruned_model)
                +            tree["models"] = models
                +        else:
                +            return None
                +
                +        return tree
                +
                +    def _get_model_ids(self, tree):
                +        """
                +        Gets all model_ids of models in the tree.
                +
                +        Parameters
                +        ----------
                +        tree : dict
                +            tree of an experiment
                +
                +        Returns
                +        -------
                +        list
                +            model_ids of all models in the tree
                +
                +        """
                +        model_ids = [tree["model_id"]]
                +        for model in tree["models"]:
                +            model_ids += self._get_model_ids(model)
                +
                +        return model_ids
                +
                +    def get_depth(self):
                +        """
                +        Gets current depth of the tree.
                +
                +        Returns
                +        -------
                +        int
                +            depth of the tree
                +
                +        """
                +        return self._get_depth(self.tree)
                +
                +    def get_model_ids(self):
                +        """
                +        Gets models_ids of all models in the tree.
                +
                +        Returns
                +        -------
                +        list
                +            model_ids of all models in the tree
                +
                +        """
                +        return self._get_model_ids(self.tree)
                +
                +    @staticmethod
                +    def transform_to_leaf(topic_model):
                +        """
                +        Transforms TopicModel to a leaf for the tree for further integration in the tree.
                +
                +        Parameters
                +        ----------
                +        topic_model : TopicModel
                +            topic model
                +
                +        Returns
                +        -------
                +        dict
                +            leaf of the tree
                +
                +        """
                +        leaf = {"model_id": topic_model.model_id,
                +                "models": []}
                +
                +        return leaf
                +
                +    def show(self):
                +        """
                +        Shows the tree of an experiment in text format.
                +        Shows description ot the tree.
                +
                +        Returns
                +        -------
                +        str
                +            description in txt format
                +
                +        """
                +        up, middle, down = self._get_description(self.tree)
                +        print("\n".join(up + middle + down))
                +
                +    def get_description(self):
                +        """
                +        Creates description of the tree.
                +
                +        Returns
                +        -------
                +        list
                +            strings of description
                +
                +        """
                +        up, middle, down = self._get_description(self.tree)
                +
                +        return up + middle + down
                +
                +    def add_model(self, topic_model):
                +        """
                +        Adds model in the tree of an experiment.
                +
                +        Parameters
                +        ----------
                +        topic_model : TopicModel
                +            topic model
                +
                +        """
                +        self._add_model_in_tree(self.tree, topic_model)
                +
                +    def prune(self, depth):
                +        """
                +        Prunes tree to get particular depth and updates it.
                +
                +        Parameters
                +        ----------
                +        depth : int
                +            desired tree depth
                +
                +        """
                +        self.tree = self._prune(self.tree, depth)
                +
                +    def clone(self):
                +        """
                +        Clones Tree class object.
                +
                +        Returns
                +        -------
                +        tree : Tree
                +            copy of Tree object
                +        """
                +        tree = Tree(deepcopy(self.tree))
                +
                +        return tree
                +
                @@ -32,6 +364,19 @@

                Functions

                +
                + +Expand source code + +
                def padd_model_name(model_id):
                +    padding = MODEL_NAME_LENGTH - len(model_id)
                +    if padding > 0:
                +        add = padding // 2
                +        odd = padding % 2
                +        return '<' * add + model_id + '>' * (add + odd)
                +    else:
                +        return model_id[:MODEL_NAME_LENGTH]
                +
                @@ -50,6 +395,310 @@

                Parameters

                tree : dict
                tree of an experiment (Default value = None)
                +
                + +Expand source code + +
                class Tree(object):
                +    """
                +    Contains tree of an experiment and methods to work with it.
                +
                +    """
                +
                +    def __init__(self, tree: dict = None):
                +        """
                +        Initial stage.
                +
                +        Parameters
                +        ----------
                +        tree : dict
                +            tree of an experiment (Default value = None)
                +
                +        """
                +        if tree is None:
                +            self.tree = {'model_id': START, 'models': []}
                +        else:
                +            self.tree = tree
                +
                +    def _append_description(self,
                +                            tree: dict, current_part: list, leaf,
                +                            up_sub_glue: str, down_sub_glue: str,
                +                            branching_marker: str):
                +        """
                +
                +        Parameters
                +        ----------
                +        tree : dict
                +            tree of an experiment
                +        current_part : list
                +        leaf : dict
                +        up_sub_glue : str
                +        down_sub_glue : str
                +        branching_marker : str
                +
                +        """
                +        cur_string = SPACE * len(tree["model_id"])
                +        up_sub_part, middle_sub_part, down_sub_part = self._get_description(leaf)
                +        for string in up_sub_part:
                +            current_part.append(SPACE * len(cur_string) + up_sub_glue + string)
                +        current_part.append(cur_string + branching_marker + middle_sub_part[0])
                +        for string in down_sub_part:
                +            current_part.append(SPACE * len(cur_string) + down_sub_glue + string)
                +
                +    def _get_description(self, tree: dict):
                +        """
                +        Internal method to create description of the tree.
                +
                +        Parameters
                +        ----------
                +        tree : dict
                +            tree of an experiment
                +
                +        Returns
                +        -------
                +        3-list
                +            strings of description for up, middle and down tree parts
                +
                +        """
                +        up_part, middle_part, down_part = [], [], []
                +        num_leaves = len(tree["models"])
                +        if num_leaves > 0:
                +            for id_leaf, leaf in zip(range(num_leaves)[:num_leaves // 2],
                +                                     tree["models"][:num_leaves // 2]):
                +                if id_leaf == 0:
                +                    self._append_description(
                +                        tree, up_part, leaf,
                +                        up_sub_glue=SPACE, down_sub_glue=EMPTY, branching_marker=UP_END
                +                    )
                +                else:
                +                    self._append_description(
                +                        tree, up_part, leaf,
                +                        up_sub_glue=EMPTY, down_sub_glue=EMPTY, branching_marker=MIDDLE
                +                    )
                +            if num_leaves == 1:
                +                middle_part.append(tree["model_id"] + START_END)
                +            else:
                +                middle_part.append(tree["model_id"] + LAST)
                +            for id_leaf, leaf in zip(range(num_leaves)[num_leaves // 2:],
                +                                     tree["models"][num_leaves // 2:]):
                +                if id_leaf == num_leaves - 1:
                +                    self._append_description(
                +                        tree, down_part, leaf,
                +                        up_sub_glue=EMPTY, down_sub_glue=SPACE, branching_marker=DOWN_END
                +                    )
                +                else:
                +                    self._append_description(
                +                        tree, down_part, leaf,
                +                        up_sub_glue=EMPTY, down_sub_glue=EMPTY, branching_marker=MIDDLE
                +                    )
                +        else:
                +            middle_part.append(tree["model_id"])
                +
                +        return up_part, middle_part, down_part
                +
                +    def _get_depth(self, tree):
                +        """
                +        Gets depth of the tree.
                +
                +        Parameters
                +        ----------
                +        tree : dict
                +            tree of an experiment
                +
                +        Returns
                +        -------
                +        int
                +            tree depth
                +
                +        """
                +        depths = [1]
                +        for leaf in tree["models"]:
                +            depths += [self._get_depth(leaf)]
                +
                +        return np.array(depths).max() + 1 * (len(tree["models"]) > 0)
                +
                +    def _add_model_in_tree(self, tree, topic_model):
                +        """
                +        Adds model in the tree of an experiment.
                +
                +        Parameters
                +        ----------
                +        tree : dict
                +            tree of an experiment
                +        topic_model : TopicModel
                +            topic model
                +
                +        """
                +        if tree["model_id"] == topic_model.parent_model_id:
                +            tree["models"].append(self.transform_to_leaf(topic_model))
                +        else:
                +            for leaf in tree["models"]:
                +                self._add_model_in_tree(leaf, topic_model)
                +
                +    def _prune(self, tree, depth, level: int = 1):
                +        """
                +        Prunes tree to get particular depth.
                +
                +        Parameters
                +        ----------
                +        tree : dict
                +            tree of an experiment.
                +        depth : int
                +            desired tree depth
                +        level : int
                +            internal variable (current depth) (Default value = 0)
                +
                +        Returns
                +        -------
                +        tree : dict
                +            pruned tree with desired depth
                +
                +        """
                +        models = []
                +        if level <= depth:
                +            for model in tree["models"]:
                +                pruned_model = self._prune(model, depth, level + 1)
                +                if pruned_model is None:
                +                    break
                +                else:
                +                    models.append(pruned_model)
                +            tree["models"] = models
                +        else:
                +            return None
                +
                +        return tree
                +
                +    def _get_model_ids(self, tree):
                +        """
                +        Gets all model_ids of models in the tree.
                +
                +        Parameters
                +        ----------
                +        tree : dict
                +            tree of an experiment
                +
                +        Returns
                +        -------
                +        list
                +            model_ids of all models in the tree
                +
                +        """
                +        model_ids = [tree["model_id"]]
                +        for model in tree["models"]:
                +            model_ids += self._get_model_ids(model)
                +
                +        return model_ids
                +
                +    def get_depth(self):
                +        """
                +        Gets current depth of the tree.
                +
                +        Returns
                +        -------
                +        int
                +            depth of the tree
                +
                +        """
                +        return self._get_depth(self.tree)
                +
                +    def get_model_ids(self):
                +        """
                +        Gets models_ids of all models in the tree.
                +
                +        Returns
                +        -------
                +        list
                +            model_ids of all models in the tree
                +
                +        """
                +        return self._get_model_ids(self.tree)
                +
                +    @staticmethod
                +    def transform_to_leaf(topic_model):
                +        """
                +        Transforms TopicModel to a leaf for the tree for further integration in the tree.
                +
                +        Parameters
                +        ----------
                +        topic_model : TopicModel
                +            topic model
                +
                +        Returns
                +        -------
                +        dict
                +            leaf of the tree
                +
                +        """
                +        leaf = {"model_id": topic_model.model_id,
                +                "models": []}
                +
                +        return leaf
                +
                +    def show(self):
                +        """
                +        Shows the tree of an experiment in text format.
                +        Shows description ot the tree.
                +
                +        Returns
                +        -------
                +        str
                +            description in txt format
                +
                +        """
                +        up, middle, down = self._get_description(self.tree)
                +        print("\n".join(up + middle + down))
                +
                +    def get_description(self):
                +        """
                +        Creates description of the tree.
                +
                +        Returns
                +        -------
                +        list
                +            strings of description
                +
                +        """
                +        up, middle, down = self._get_description(self.tree)
                +
                +        return up + middle + down
                +
                +    def add_model(self, topic_model):
                +        """
                +        Adds model in the tree of an experiment.
                +
                +        Parameters
                +        ----------
                +        topic_model : TopicModel
                +            topic model
                +
                +        """
                +        self._add_model_in_tree(self.tree, topic_model)
                +
                +    def prune(self, depth):
                +        """
                +        Prunes tree to get particular depth and updates it.
                +
                +        Parameters
                +        ----------
                +        depth : int
                +            desired tree depth
                +
                +        """
                +        self.tree = self._prune(self.tree, depth)
                +
                +    def clone(self):
                +        """
                +        Clones Tree class object.
                +
                +        Returns
                +        -------
                +        tree : Tree
                +            copy of Tree object
                +        """
                +        tree = Tree(deepcopy(self.tree))
                +
                +        return tree
                +

                Static methods

                @@ -67,6 +716,31 @@

                Returns

                dict
                leaf of the tree
                +
                + +Expand source code + +
                @staticmethod
                +def transform_to_leaf(topic_model):
                +    """
                +    Transforms TopicModel to a leaf for the tree for further integration in the tree.
                +
                +    Parameters
                +    ----------
                +    topic_model : TopicModel
                +        topic model
                +
                +    Returns
                +    -------
                +    dict
                +        leaf of the tree
                +
                +    """
                +    leaf = {"model_id": topic_model.model_id,
                +            "models": []}
                +
                +    return leaf
                +

                Methods

                @@ -81,6 +755,22 @@

                Parameters

                topic_model : TopicModel
                topic model
                +
                + +Expand source code + +
                def add_model(self, topic_model):
                +    """
                +    Adds model in the tree of an experiment.
                +
                +    Parameters
                +    ----------
                +    topic_model : TopicModel
                +        topic model
                +
                +    """
                +    self._add_model_in_tree(self.tree, topic_model)
                +
                def clone(self) @@ -92,6 +782,23 @@

                Returns

                tree : Tree
                copy of Tree object
                +
                + +Expand source code + +
                def clone(self):
                +    """
                +    Clones Tree class object.
                +
                +    Returns
                +    -------
                +    tree : Tree
                +        copy of Tree object
                +    """
                +    tree = Tree(deepcopy(self.tree))
                +
                +    return tree
                +
                def get_depth(self) @@ -103,6 +810,22 @@

                Returns

                int
                depth of the tree
                +
                + +Expand source code + +
                def get_depth(self):
                +    """
                +    Gets current depth of the tree.
                +
                +    Returns
                +    -------
                +    int
                +        depth of the tree
                +
                +    """
                +    return self._get_depth(self.tree)
                +
                def get_description(self) @@ -114,6 +837,24 @@

                Returns

                list
                strings of description
                +
                + +Expand source code + +
                def get_description(self):
                +    """
                +    Creates description of the tree.
                +
                +    Returns
                +    -------
                +    list
                +        strings of description
                +
                +    """
                +    up, middle, down = self._get_description(self.tree)
                +
                +    return up + middle + down
                +
                def get_model_ids(self) @@ -125,6 +866,22 @@

                Returns

                list
                model_ids of all models in the tree
                +
                + +Expand source code + +
                def get_model_ids(self):
                +    """
                +    Gets models_ids of all models in the tree.
                +
                +    Returns
                +    -------
                +    list
                +        model_ids of all models in the tree
                +
                +    """
                +    return self._get_model_ids(self.tree)
                +
                def prune(self, depth) @@ -136,6 +893,22 @@

                Parameters

                depth : int
                desired tree depth
                +
                + +Expand source code + +
                def prune(self, depth):
                +    """
                +    Prunes tree to get particular depth and updates it.
                +
                +    Parameters
                +    ----------
                +    depth : int
                +        desired tree depth
                +
                +    """
                +    self.tree = self._prune(self.tree, depth)
                +
                def show(self) @@ -148,6 +921,24 @@

                Returns

                str
                description in txt format
                +
                + +Expand source code + +
                def show(self):
                +    """
                +    Shows the tree of an experiment in text format.
                +    Shows description ot the tree.
                +
                +    Returns
                +    -------
                +    str
                +        description in txt format
                +
                +    """
                +    up, middle, down = self._get_description(self.tree)
                +    print("\n".join(up + middle + down))
                +
                @@ -191,7 +982,9 @@

                -

                Generated by pdoc 0.6.3.

                +

                Generated by pdoc 0.7.2.

                + + \ No newline at end of file diff --git a/docs/cooking_machine/models/base_model.html b/docs/cooking_machine/models/base_model.html index 039c27b..ac5afd0 100644 --- a/docs/cooking_machine/models/base_model.html +++ b/docs/cooking_machine/models/base_model.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.models.base_model API documentation - + + @@ -19,6 +20,296 @@

                Module topicnet.cooking_machine.models.base_model

                +
                + +Expand source code + +
                import json
                +import os
                +from copy import deepcopy
                +
                +from ..routine import get_timestamp_in_str_format
                +from ..routine import transform_topic_model_description_to_jsonable
                +
                +MODEL_NAME_LENGTH = 26
                +
                +
                +def padd_model_name(model_id):
                +    padding = MODEL_NAME_LENGTH - len(model_id)
                +    if padding > 0:
                +        add = padding // 2
                +        odd = padding % 2
                +        return '#' * add + model_id + '#' * (add + odd)
                +    else:
                +        return model_id[:MODEL_NAME_LENGTH]
                +
                +
                +class BaseModel(object):
                +    def __init__(self, model_id=None, parent_model_id=None, experiment=None, *args, **kwargs):
                +        """
                +        Initialize stage, also used for loading previously saved experiments.
                +
                +        Parameters
                +        ----------
                +        model_id : str
                +            model id (Default value = None)
                +        parent_model_id : str
                +            model id from which current model was created (Default value = None)
                +        experiment : Experiment
                +            the experiment to which the model is bound (Default value = None)
                +
                +        """
                +        self._parent_model_id = parent_model_id
                +        self.experiment = experiment
                +
                +        # set unique model_id in the experiment
                +        if self.experiment is None:
                +            if model_id is None:
                +                self.set_model_id_as_timestamp()
                +            else:
                +                self.model_id = padd_model_name(model_id)
                +        else:
                +            experiment_save_path = getattr(experiment, 'save_path', None)
                +            experiment_id = getattr(experiment, 'experiment_id', None)
                +            save_folder = os.path.join(experiment_save_path, experiment_id)
                +            if model_id is None:
                +                candidate_name = get_timestamp_in_str_format()
                +            else:
                +                candidate_name = model_id
                +            model_index = 0
                +            new_model_id = padd_model_name(candidate_name)
                +            new_model_save_path = os.path.join(save_folder, new_model_id)
                +            while os.path.exists(new_model_save_path):
                +                model_index += 1
                +                new_model_id = padd_model_name("{0}{1:_>5}".format(candidate_name, model_index))
                +
                +            self.model_id = new_model_id
                +
                +        self._description = []
                +        self._scores = dict()
                +        self._score_functions = dict()
                +        self._custom_scores = []
                +
                +    def __str__(self):
                +        return f'id={self.model_id}, ' \
                +               f'parent_id={self.parent_model_id}, ' \
                +               f'experiment_id={self.experiment.experiment_id if self.experiment is not None else None}'  # noqa long line
                +
                +    def _fit(self, dataset_trainable, num_iterations):
                +        """
                +        Fitting stage.
                +
                +        Parameters
                +        ----------
                +        dataset_trainable : optional
                +            TODO: describe after dataset implementation
                +        num_iterations : int
                +            number of iteration for fitting.
                +
                +        """
                +        raise NotImplementedError
                +
                +    def get_phi(self, *args, **kwargs):
                +        """ """
                +        raise NotImplementedError
                +
                +    def get_theta(self, dataset=None, *args, **kwargs):
                +        """
                +
                +        Parameters
                +        ----------
                +        dataset : Dataset
                +             (Default value = None)
                +
                +        """
                +        raise NotImplementedError
                +
                +    def save(self, path, *args, **kwargs):
                +        """
                +
                +        Parameters
                +        ----------
                +        path : str
                +
                +        """
                +        raise NotImplementedError
                +
                +    @staticmethod
                +    def load(path, *args, **kwargs):
                +        """
                +
                +        Parameters
                +        ----------
                +        path : str
                +
                +        """
                +        raise NotImplementedError
                +
                +    def clone(self):
                +        """ """
                +        return deepcopy(self)
                +
                +    def get_jsonable_from_parameters(self):
                +        """ """
                +        raise NotImplementedError
                +
                +    @property
                +    def score_functions(self):
                +        """ """
                +        return self._score_functions
                +
                +    @property
                +    def scores(self):
                +        """ """
                +        return self._scores
                +
                +    def add_cube(self, cube):
                +        """
                +        Adds cube to the model.
                +
                +        Parameters
                +        ----------
                +        cube : dict
                +            training cube params.
                +
                +        """
                +        self.description.append(cube)
                +        self.save_parameters()
                +
                +    @property
                +    def depth(self):
                +        """
                +        Returns depth of the model.
                +
                +        """
                +        return len(self.description)
                +
                +    @property
                +    def description(self):
                +        """ """
                +        return self._description
                +
                +    @property
                +    def parent_model_id(self):
                +        """ """
                +        return self._parent_model_id
                +
                +    @parent_model_id.setter
                +    def parent_model_id(self, new_id):
                +        """
                +        Returns parent model id.
                +
                +        Parameters
                +        ----------
                +        new_id : str
                +
                +        """
                +        if self._check_is_model_id_in_experiment(new_id):
                +            self._parent_model_id = new_id
                +        else:
                +            raise ValueError(f'Model with id: {new_id} does not exist.')
                +
                +    def save_parameters(self, model_save_path=None):
                +        """
                +        Saves params of the model.
                +
                +        """
                +        if model_save_path is None:
                +            model_save_path = self.model_default_save_path
                +        if not os.path.exists(model_save_path):
                +            os.makedirs(model_save_path)
                +        parameters = self.get_parameters()
                +        json.dump(parameters, open(f"{model_save_path}/params.json", "w"),
                +                  default=transform_topic_model_description_to_jsonable)
                +
                +    def get_parameters(self):
                +        """
                +        Gets all params of the model.
                +
                +        Returns
                +        -------
                +        dict
                +            parameters of the model
                +
                +        """
                +        parameters = {
                +            "model_id": self.model_id,
                +            "init_parameters": self.get_init_parameters(),
                +            "parent_model_id": self.parent_model_id,
                +            "data_path": self.data_path,
                +            "description": self.description,
                +            "depth": self.depth,
                +            "scores": self.scores
                +        }
                +        if self.experiment is None:
                +            parameters["experiment_id"] = None
                +        else:
                +            parameters["experiment_id"] = self.experiment.experiment_id
                +
                +        return parameters
                +
                +    @property
                +    def model_default_save_path(self):
                +        """ """
                +        # Experiment may be None. If so, AttributeError is raised
                +        # __getattr__ catches it in case of TopicModel and redirects to artm_model
                +        experiment_save_path = getattr(self.experiment, 'save_path', None)
                +        experiment_id = getattr(self.experiment, 'experiment_id', None)
                +
                +        assert self.model_id is not None
                +
                +        path_components = [
                +            experiment_save_path,
                +            experiment_id,
                +            self.model_id
                +        ]
                +
                +        path_possible = all(path_components)
                +
                +        if path_possible:
                +            path_to_save = os.path.join(*path_components)
                +        else:
                +            path_to_save = self.model_id
                +
                +        return path_to_save
                +
                +    @property
                +    def model_id(self):
                +        """ """
                +        return self._model_id
                +
                +    @model_id.setter
                +    def model_id(self, new_id):
                +        """
                +
                +        Parameters
                +        ----------
                +        new_id : str
                +
                +        """
                +        if self._check_is_model_id_in_experiment(new_id):
                +            raise ValueError(f'Model with id: {new_id} already exists.')
                +        else:
                +            self._model_id = new_id
                +
                +    def set_model_id_as_timestamp(self):
                +        """ """
                +        self._model_id = padd_model_name(get_timestamp_in_str_format())
                +
                +    def _check_is_model_id_in_experiment(self, model_id):
                +        """
                +
                +        Parameters
                +        ----------
                +        model_id : str
                +
                +        """
                +        if self.experiment is None:
                +            return False
                +        if model_id in self.experiment.models_info.keys():
                +            return True
                +        return False
                +
                @@ -32,6 +323,19 @@

                Functions

                +
                + +Expand source code + +
                def padd_model_name(model_id):
                +    padding = MODEL_NAME_LENGTH - len(model_id)
                +    if padding > 0:
                +        add = padding // 2
                +        odd = padding % 2
                +        return '#' * add + model_id + '#' * (add + odd)
                +    else:
                +        return model_id[:MODEL_NAME_LENGTH]
                +
                @@ -53,11 +357,281 @@

                Parameters

                experiment : Experiment
                the experiment to which the model is bound (Default value = None)
                +
                + +Expand source code + +
                class BaseModel(object):
                +    def __init__(self, model_id=None, parent_model_id=None, experiment=None, *args, **kwargs):
                +        """
                +        Initialize stage, also used for loading previously saved experiments.
                +
                +        Parameters
                +        ----------
                +        model_id : str
                +            model id (Default value = None)
                +        parent_model_id : str
                +            model id from which current model was created (Default value = None)
                +        experiment : Experiment
                +            the experiment to which the model is bound (Default value = None)
                +
                +        """
                +        self._parent_model_id = parent_model_id
                +        self.experiment = experiment
                +
                +        # set unique model_id in the experiment
                +        if self.experiment is None:
                +            if model_id is None:
                +                self.set_model_id_as_timestamp()
                +            else:
                +                self.model_id = padd_model_name(model_id)
                +        else:
                +            experiment_save_path = getattr(experiment, 'save_path', None)
                +            experiment_id = getattr(experiment, 'experiment_id', None)
                +            save_folder = os.path.join(experiment_save_path, experiment_id)
                +            if model_id is None:
                +                candidate_name = get_timestamp_in_str_format()
                +            else:
                +                candidate_name = model_id
                +            model_index = 0
                +            new_model_id = padd_model_name(candidate_name)
                +            new_model_save_path = os.path.join(save_folder, new_model_id)
                +            while os.path.exists(new_model_save_path):
                +                model_index += 1
                +                new_model_id = padd_model_name("{0}{1:_>5}".format(candidate_name, model_index))
                +
                +            self.model_id = new_model_id
                +
                +        self._description = []
                +        self._scores = dict()
                +        self._score_functions = dict()
                +        self._custom_scores = []
                +
                +    def __str__(self):
                +        return f'id={self.model_id}, ' \
                +               f'parent_id={self.parent_model_id}, ' \
                +               f'experiment_id={self.experiment.experiment_id if self.experiment is not None else None}'  # noqa long line
                +
                +    def _fit(self, dataset_trainable, num_iterations):
                +        """
                +        Fitting stage.
                +
                +        Parameters
                +        ----------
                +        dataset_trainable : optional
                +            TODO: describe after dataset implementation
                +        num_iterations : int
                +            number of iteration for fitting.
                +
                +        """
                +        raise NotImplementedError
                +
                +    def get_phi(self, *args, **kwargs):
                +        """ """
                +        raise NotImplementedError
                +
                +    def get_theta(self, dataset=None, *args, **kwargs):
                +        """
                +
                +        Parameters
                +        ----------
                +        dataset : Dataset
                +             (Default value = None)
                +
                +        """
                +        raise NotImplementedError
                +
                +    def save(self, path, *args, **kwargs):
                +        """
                +
                +        Parameters
                +        ----------
                +        path : str
                +
                +        """
                +        raise NotImplementedError
                +
                +    @staticmethod
                +    def load(path, *args, **kwargs):
                +        """
                +
                +        Parameters
                +        ----------
                +        path : str
                +
                +        """
                +        raise NotImplementedError
                +
                +    def clone(self):
                +        """ """
                +        return deepcopy(self)
                +
                +    def get_jsonable_from_parameters(self):
                +        """ """
                +        raise NotImplementedError
                +
                +    @property
                +    def score_functions(self):
                +        """ """
                +        return self._score_functions
                +
                +    @property
                +    def scores(self):
                +        """ """
                +        return self._scores
                +
                +    def add_cube(self, cube):
                +        """
                +        Adds cube to the model.
                +
                +        Parameters
                +        ----------
                +        cube : dict
                +            training cube params.
                +
                +        """
                +        self.description.append(cube)
                +        self.save_parameters()
                +
                +    @property
                +    def depth(self):
                +        """
                +        Returns depth of the model.
                +
                +        """
                +        return len(self.description)
                +
                +    @property
                +    def description(self):
                +        """ """
                +        return self._description
                +
                +    @property
                +    def parent_model_id(self):
                +        """ """
                +        return self._parent_model_id
                +
                +    @parent_model_id.setter
                +    def parent_model_id(self, new_id):
                +        """
                +        Returns parent model id.
                +
                +        Parameters
                +        ----------
                +        new_id : str
                +
                +        """
                +        if self._check_is_model_id_in_experiment(new_id):
                +            self._parent_model_id = new_id
                +        else:
                +            raise ValueError(f'Model with id: {new_id} does not exist.')
                +
                +    def save_parameters(self, model_save_path=None):
                +        """
                +        Saves params of the model.
                +
                +        """
                +        if model_save_path is None:
                +            model_save_path = self.model_default_save_path
                +        if not os.path.exists(model_save_path):
                +            os.makedirs(model_save_path)
                +        parameters = self.get_parameters()
                +        json.dump(parameters, open(f"{model_save_path}/params.json", "w"),
                +                  default=transform_topic_model_description_to_jsonable)
                +
                +    def get_parameters(self):
                +        """
                +        Gets all params of the model.
                +
                +        Returns
                +        -------
                +        dict
                +            parameters of the model
                +
                +        """
                +        parameters = {
                +            "model_id": self.model_id,
                +            "init_parameters": self.get_init_parameters(),
                +            "parent_model_id": self.parent_model_id,
                +            "data_path": self.data_path,
                +            "description": self.description,
                +            "depth": self.depth,
                +            "scores": self.scores
                +        }
                +        if self.experiment is None:
                +            parameters["experiment_id"] = None
                +        else:
                +            parameters["experiment_id"] = self.experiment.experiment_id
                +
                +        return parameters
                +
                +    @property
                +    def model_default_save_path(self):
                +        """ """
                +        # Experiment may be None. If so, AttributeError is raised
                +        # __getattr__ catches it in case of TopicModel and redirects to artm_model
                +        experiment_save_path = getattr(self.experiment, 'save_path', None)
                +        experiment_id = getattr(self.experiment, 'experiment_id', None)
                +
                +        assert self.model_id is not None
                +
                +        path_components = [
                +            experiment_save_path,
                +            experiment_id,
                +            self.model_id
                +        ]
                +
                +        path_possible = all(path_components)
                +
                +        if path_possible:
                +            path_to_save = os.path.join(*path_components)
                +        else:
                +            path_to_save = self.model_id
                +
                +        return path_to_save
                +
                +    @property
                +    def model_id(self):
                +        """ """
                +        return self._model_id
                +
                +    @model_id.setter
                +    def model_id(self, new_id):
                +        """
                +
                +        Parameters
                +        ----------
                +        new_id : str
                +
                +        """
                +        if self._check_is_model_id_in_experiment(new_id):
                +            raise ValueError(f'Model with id: {new_id} already exists.')
                +        else:
                +            self._model_id = new_id
                +
                +    def set_model_id_as_timestamp(self):
                +        """ """
                +        self._model_id = padd_model_name(get_timestamp_in_str_format())
                +
                +    def _check_is_model_id_in_experiment(self, model_id):
                +        """
                +
                +        Parameters
                +        ----------
                +        model_id : str
                +
                +        """
                +        if self.experiment is None:
                +            return False
                +        if model_id in self.experiment.models_info.keys():
                +            return True
                +        return False
                +

                Subclasses

                Static methods

                @@ -70,6 +644,21 @@

                Static methods

                path : str
                 
                +
                + +Expand source code + +
                @staticmethod
                +def load(path, *args, **kwargs):
                +    """
                +
                +    Parameters
                +    ----------
                +    path : str
                +
                +    """
                +    raise NotImplementedError
                +

                Instance variables

                @@ -77,30 +666,116 @@

                Instance variables

                var depth

                Returns depth of the model.

                +
                + +Expand source code + +
                @property
                +def depth(self):
                +    """
                +    Returns depth of the model.
                +
                +    """
                +    return len(self.description)
                +
                var description
                +
                + +Expand source code + +
                @property
                +def description(self):
                +    """ """
                +    return self._description
                +
                var model_default_save_path
                +
                + +Expand source code + +
                @property
                +def model_default_save_path(self):
                +    """ """
                +    # Experiment may be None. If so, AttributeError is raised
                +    # __getattr__ catches it in case of TopicModel and redirects to artm_model
                +    experiment_save_path = getattr(self.experiment, 'save_path', None)
                +    experiment_id = getattr(self.experiment, 'experiment_id', None)
                +
                +    assert self.model_id is not None
                +
                +    path_components = [
                +        experiment_save_path,
                +        experiment_id,
                +        self.model_id
                +    ]
                +
                +    path_possible = all(path_components)
                +
                +    if path_possible:
                +        path_to_save = os.path.join(*path_components)
                +    else:
                +        path_to_save = self.model_id
                +
                +    return path_to_save
                +
                var model_id
                +
                + +Expand source code + +
                @property
                +def model_id(self):
                +    """ """
                +    return self._model_id
                +
                var parent_model_id
                +
                + +Expand source code + +
                @property
                +def parent_model_id(self):
                +    """ """
                +    return self._parent_model_id
                +
                var score_functions
                +
                + +Expand source code + +
                @property
                +def score_functions(self):
                +    """ """
                +    return self._score_functions
                +
                var scores
                +
                + +Expand source code + +
                @property
                +def scores(self):
                +    """ """
                +    return self._scores
                +

                Methods

                @@ -115,18 +790,51 @@

                Parameters

                cube : dict
                training cube params.
                +
                + +Expand source code + +
                def add_cube(self, cube):
                +    """
                +    Adds cube to the model.
                +
                +    Parameters
                +    ----------
                +    cube : dict
                +        training cube params.
                +
                +    """
                +    self.description.append(cube)
                +    self.save_parameters()
                +
                def clone(self)
                +
                + +Expand source code + +
                def clone(self):
                +    """ """
                +    return deepcopy(self)
                +
                def get_jsonable_from_parameters(self)
                +
                + +Expand source code + +
                def get_jsonable_from_parameters(self):
                +    """ """
                +    raise NotImplementedError
                +
                def get_parameters(self) @@ -138,12 +846,50 @@

                Returns

                dict
                parameters of the model
                +
                + +Expand source code + +
                def get_parameters(self):
                +    """
                +    Gets all params of the model.
                +
                +    Returns
                +    -------
                +    dict
                +        parameters of the model
                +
                +    """
                +    parameters = {
                +        "model_id": self.model_id,
                +        "init_parameters": self.get_init_parameters(),
                +        "parent_model_id": self.parent_model_id,
                +        "data_path": self.data_path,
                +        "description": self.description,
                +        "depth": self.depth,
                +        "scores": self.scores
                +    }
                +    if self.experiment is None:
                +        parameters["experiment_id"] = None
                +    else:
                +        parameters["experiment_id"] = self.experiment.experiment_id
                +
                +    return parameters
                +
                def get_phi(self, *args, **kwargs)
                +
                + +Expand source code + +
                def get_phi(self, *args, **kwargs):
                +    """ """
                +    raise NotImplementedError
                +
                def get_theta(self, dataset=None, *args, **kwargs) @@ -154,6 +900,21 @@

                Returns

                dataset : Dataset
                (Default value = None)
                +
                + +Expand source code + +
                def get_theta(self, dataset=None, *args, **kwargs):
                +    """
                +
                +    Parameters
                +    ----------
                +    dataset : Dataset
                +         (Default value = None)
                +
                +    """
                +    raise NotImplementedError
                +
                def save(self, path, *args, **kwargs) @@ -164,18 +925,57 @@

                Returns

                path : str
                 
                +
                + +Expand source code + +
                def save(self, path, *args, **kwargs):
                +    """
                +
                +    Parameters
                +    ----------
                +    path : str
                +
                +    """
                +    raise NotImplementedError
                +
                def save_parameters(self, model_save_path=None)

                Saves params of the model.

                +
                + +Expand source code + +
                def save_parameters(self, model_save_path=None):
                +    """
                +    Saves params of the model.
                +
                +    """
                +    if model_save_path is None:
                +        model_save_path = self.model_default_save_path
                +    if not os.path.exists(model_save_path):
                +        os.makedirs(model_save_path)
                +    parameters = self.get_parameters()
                +    json.dump(parameters, open(f"{model_save_path}/params.json", "w"),
                +              default=transform_topic_model_description_to_jsonable)
                +
                def set_model_id_as_timestamp(self)
                +
                + +Expand source code + +
                def set_model_id_as_timestamp(self):
                +    """ """
                +    self._model_id = padd_model_name(get_timestamp_in_str_format())
                +
                @@ -228,7 +1028,9 @@

                -

                Generated by pdoc 0.6.3.

                +

                Generated by pdoc 0.7.2.

                + + \ No newline at end of file diff --git a/docs/cooking_machine/models/base_regularizer.html b/docs/cooking_machine/models/base_regularizer.html index b294e5e..f7f9312 100644 --- a/docs/cooking_machine/models/base_regularizer.html +++ b/docs/cooking_machine/models/base_regularizer.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.models.base_regularizer API documentation - + + @@ -19,6 +20,33 @@

                Module topicnet.cooking_machine.models.base_regularizer

                +
                + +Expand source code + +
                class BaseRegularizer:
                +    """
                +    Base regularizer class to construct custom regularizers.
                +
                +    """
                +    def __init__(self, name, tau, gamma=None):
                +        self.name = name
                +        self.tau = tau
                +        self.gamma = gamma
                +
                +    def attach(self, model):
                +        """
                +
                +        Parameters
                +        ----------
                +        model : ARTM model
                +            necessary to apply master component
                +        """
                +        self._model = model
                +
                +    def grad(self, pwt, nwt):
                +        raise NotImplementedError('grad method should be overrided in an inherited class')
                +
                @@ -35,6 +63,33 @@

                Classes

                Base regularizer class to construct custom regularizers.

                +
                + +Expand source code + +
                class BaseRegularizer:
                +    """
                +    Base regularizer class to construct custom regularizers.
                +
                +    """
                +    def __init__(self, name, tau, gamma=None):
                +        self.name = name
                +        self.tau = tau
                +        self.gamma = gamma
                +
                +    def attach(self, model):
                +        """
                +
                +        Parameters
                +        ----------
                +        model : ARTM model
                +            necessary to apply master component
                +        """
                +        self._model = model
                +
                +    def grad(self, pwt, nwt):
                +        raise NotImplementedError('grad method should be overrided in an inherited class')
                +

                Subclasses

                • TopicPriorRegularizer
                • @@ -51,12 +106,33 @@

                  Methods

                  model : ARTM model
                  necessary to apply master component
                  +
                  + +Expand source code + +
                  def attach(self, model):
                  +    """
                  +
                  +    Parameters
                  +    ----------
                  +    model : ARTM model
                  +        necessary to apply master component
                  +    """
                  +    self._model = model
                  +
                def grad(self, pwt, nwt)
                +
                + +Expand source code + +
                def grad(self, pwt, nwt):
                +    raise NotImplementedError('grad method should be overrided in an inherited class')
                +
                @@ -89,7 +165,9 @@

                -

                Generated by pdoc 0.6.3.

                +

                Generated by pdoc 0.7.2.

                + + \ No newline at end of file diff --git a/docs/cooking_machine/models/base_score.html b/docs/cooking_machine/models/base_score.html index 5f1ac5b..db726a2 100644 --- a/docs/cooking_machine/models/base_score.html +++ b/docs/cooking_machine/models/base_score.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.models.base_score API documentation - + + @@ -19,6 +20,61 @@

                Module topicnet.cooking_machine.models.base_score

                +
                + +Expand source code + +
                class BaseScore:
                +    """
                +    Base Class to construct custom score functions.
                +
                +    """
                +    def __init__(self):
                +        self.value = []
                +
                +    def update(self, score):
                +        """
                +
                +        Parameters
                +        ----------
                +        score : float
                +            score value
                +
                +        Returns
                +        -------
                +
                +        """
                +        known_errors = (ValueError, TypeError)
                +        try:
                +            score = float(score)
                +        except known_errors:
                +            raise ValueError(f'Score call should return float but not {score}')
                +        self.value.append(score)
                +
                +    def call(self, model):
                +        """
                +        Call to custom score function.
                +
                +        Parameters
                +        ----------
                +        model : TopicModel
                +            a TopicNet model inherited from BaseModel
                +
                +        Returns
                +        -------
                +        float
                +            score
                +
                +        Notes
                +        -----
                +        Higher score not necessarily should correspond to better model.
                +        It is up to user to decide what the meaning is behind the score,
                +        and then use this logic in query in Experiment's `select()` method.
                +
                +        If one need ARTM model for score (not TopicNet one), it is available as model._model
                +        """
                +        raise NotImplementedError('Define your score here')
                +
                @@ -34,8 +90,64 @@

                Classes

                Base Class to construct custom score functions.

                +
                + +Expand source code + +
                class BaseScore:
                +    """
                +    Base Class to construct custom score functions.
                +
                +    """
                +    def __init__(self):
                +        self.value = []
                +
                +    def update(self, score):
                +        """
                +
                +        Parameters
                +        ----------
                +        score : float
                +            score value
                +
                +        Returns
                +        -------
                +
                +        """
                +        known_errors = (ValueError, TypeError)
                +        try:
                +            score = float(score)
                +        except known_errors:
                +            raise ValueError(f'Score call should return float but not {score}')
                +        self.value.append(score)
                +
                +    def call(self, model):
                +        """
                +        Call to custom score function.
                +
                +        Parameters
                +        ----------
                +        model : TopicModel
                +            a TopicNet model inherited from BaseModel
                +
                +        Returns
                +        -------
                +        float
                +            score
                +
                +        Notes
                +        -----
                +        Higher score not necessarily should correspond to better model.
                +        It is up to user to decide what the meaning is behind the score,
                +        and then use this logic in query in Experiment's `select()` method.
                +
                +        If one need ARTM model for score (not TopicNet one), it is available as model._model
                +        """
                +        raise NotImplementedError('Define your score here')
                +

                Subclasses

                  +
                • FrozenScore
                • ScoreExample
                • IntratextCoherenceScore
                • BleiLaffertyScore
                • @@ -63,6 +175,34 @@

                  Notes

                  It is up to user to decide what the meaning is behind the score, and then use this logic in query in Experiment's select() method.

                  If one need ARTM model for score (not TopicNet one), it is available as model._model

                  +
                  + +Expand source code + +
                  def call(self, model):
                  +    """
                  +    Call to custom score function.
                  +
                  +    Parameters
                  +    ----------
                  +    model : TopicModel
                  +        a TopicNet model inherited from BaseModel
                  +
                  +    Returns
                  +    -------
                  +    float
                  +        score
                  +
                  +    Notes
                  +    -----
                  +    Higher score not necessarily should correspond to better model.
                  +    It is up to user to decide what the meaning is behind the score,
                  +    and then use this logic in query in Experiment's `select()` method.
                  +
                  +    If one need ARTM model for score (not TopicNet one), it is available as model._model
                  +    """
                  +    raise NotImplementedError('Define your score here')
                  +
                def update(self, score) @@ -74,6 +214,29 @@

                Notes

                score value

                Returns

                +
                + +Expand source code + +
                def update(self, score):
                +    """
                +
                +    Parameters
                +    ----------
                +    score : float
                +        score value
                +
                +    Returns
                +    -------
                +
                +    """
                +    known_errors = (ValueError, TypeError)
                +    try:
                +        score = float(score)
                +    except known_errors:
                +        raise ValueError(f'Score call should return float but not {score}')
                +    self.value.append(score)
                +
                @@ -106,7 +269,9 @@

                -

                Generated by pdoc 0.6.3.

                +

                Generated by pdoc 0.7.2.

                + + \ No newline at end of file diff --git a/docs/cooking_machine/models/blei_lafferty_score.html b/docs/cooking_machine/models/blei_lafferty_score.html index b0d2a17..5015f67 100644 --- a/docs/cooking_machine/models/blei_lafferty_score.html +++ b/docs/cooking_machine/models/blei_lafferty_score.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.models.blei_lafferty_score API documentation - + + @@ -19,6 +20,80 @@

                Module topicnet.cooking_machine.models.blei_lafferty_score

                +
                + +Expand source code + +
                import numpy as np
                +from .base_score import BaseScore
                +
                +
                +class BleiLaffertyScore(BaseScore):
                +    """
                +    This score implements method described in 2009 paper
                +    Blei, David M., and John D. Lafferty. "Topic models." Text Mining.
                +    Chapman and Hall/CRC, 2009. 101-124.
                +    At the core this score helps to discover tokens that are most likely
                +    to describe given topic. Summing up that score helps to estimate how
                +    well the model distinguishes between topics. The higher this score - better
                +    """
                +    def __init__(self, num_top_tokens: int = 30):
                +        """
                +
                +        Parameters
                +        ----------
                +        num_top_tokens : int
                +            now many tokens we consider to be
                +
                +        """
                +        super().__init__()
                +        self.num_top_tokens = num_top_tokens
                +
                +    def _compute_blei_scores(self, phi):
                +        """
                +        Computes Blei score  
                +        phi[wt] * [log(phi[wt]) - 1/T sum_k log(phi[wk])]
                +
                +        Parameters
                +        ----------
                +        phi : pd.Dataframe
                +            phi matrix of the model
                +
                +        Returns
                +        -------
                +        score : pd.Dataframe
                +            wheighted phi matrix
                +
                +        """  # noqa: W291
                +
                +        topic_number = phi.shape[1]
                +        blei_eps = 1e-42
                +        log_phi = np.log(phi + blei_eps)
                +        numerator = np.sum(log_phi, axis=1)
                +        numerator = numerator[:, np.newaxis]
                +
                +        if hasattr(log_phi, "values"):
                +            multiplier = log_phi.values - numerator / topic_number
                +        else:
                +            multiplier = log_phi - numerator / topic_number
                +
                +        scores = phi * multiplier
                +        return scores
                +
                +    def call(self, model):
                +        modalities = list(model.class_ids.keys())
                +
                +        score = 0
                +        for modality in modalities:
                +            phi = model.get_phi(class_ids=modality)
                +            modality_scores = np.sort(self._compute_blei_scores(phi).values)
                +            score += np.sum(modality_scores[-self.num_top_tokens:, :])
                +        if modalities is None:
                +            phi = model.get_phi()
                +            modality_scores = np.sort(self._compute_blei_scores(phi).values)
                +            score = np.sum(modality_scores[-self.num_top_tokens:, :])
                +        return score
                +
                @@ -45,6 +120,76 @@

                Parameters

                num_top_tokens : int
                now many tokens we consider to be
                +
                + +Expand source code + +
                class BleiLaffertyScore(BaseScore):
                +    """
                +    This score implements method described in 2009 paper
                +    Blei, David M., and John D. Lafferty. "Topic models." Text Mining.
                +    Chapman and Hall/CRC, 2009. 101-124.
                +    At the core this score helps to discover tokens that are most likely
                +    to describe given topic. Summing up that score helps to estimate how
                +    well the model distinguishes between topics. The higher this score - better
                +    """
                +    def __init__(self, num_top_tokens: int = 30):
                +        """
                +
                +        Parameters
                +        ----------
                +        num_top_tokens : int
                +            now many tokens we consider to be
                +
                +        """
                +        super().__init__()
                +        self.num_top_tokens = num_top_tokens
                +
                +    def _compute_blei_scores(self, phi):
                +        """
                +        Computes Blei score  
                +        phi[wt] * [log(phi[wt]) - 1/T sum_k log(phi[wk])]
                +
                +        Parameters
                +        ----------
                +        phi : pd.Dataframe
                +            phi matrix of the model
                +
                +        Returns
                +        -------
                +        score : pd.Dataframe
                +            wheighted phi matrix
                +
                +        """  # noqa: W291
                +
                +        topic_number = phi.shape[1]
                +        blei_eps = 1e-42
                +        log_phi = np.log(phi + blei_eps)
                +        numerator = np.sum(log_phi, axis=1)
                +        numerator = numerator[:, np.newaxis]
                +
                +        if hasattr(log_phi, "values"):
                +            multiplier = log_phi.values - numerator / topic_number
                +        else:
                +            multiplier = log_phi - numerator / topic_number
                +
                +        scores = phi * multiplier
                +        return scores
                +
                +    def call(self, model):
                +        modalities = list(model.class_ids.keys())
                +
                +        score = 0
                +        for modality in modalities:
                +            phi = model.get_phi(class_ids=modality)
                +            modality_scores = np.sort(self._compute_blei_scores(phi).values)
                +            score += np.sum(modality_scores[-self.num_top_tokens:, :])
                +        if modalities is None:
                +            phi = model.get_phi()
                +            modality_scores = np.sort(self._compute_blei_scores(phi).values)
                +            score = np.sum(modality_scores[-self.num_top_tokens:, :])
                +        return score
                +

                Ancestors

                • BaseScore
                • @@ -84,7 +229,9 @@

                  -

                  Generated by pdoc 0.6.3.

                  +

                  Generated by pdoc 0.7.2.

                  + + \ No newline at end of file diff --git a/docs/cooking_machine/models/dummy_topic_model.html b/docs/cooking_machine/models/dummy_topic_model.html index 638405d..721e300 100644 --- a/docs/cooking_machine/models/dummy_topic_model.html +++ b/docs/cooking_machine/models/dummy_topic_model.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.models.dummy_topic_model API documentation - + + @@ -19,6 +20,384 @@

                  Module topicnet.cooking_machine.models.dummy_topic_model

                  +
                  + +Expand source code + +
                  import artm
                  +import json
                  +import os
                  +import re
                  +import warnings
                  +
                  +from ..dataset import Dataset
                  +from .topic_model import TopicModel
                  +
                  +# change log style
                  +lc = artm.messages.ConfigureLoggingArgs()
                  +lc.minloglevel = 3
                  +lib = artm.wrapper.LibArtm(logging_config=lc)
                  +
                  +
                  +class InvalidOperationError(RuntimeError):
                  +    def __init__(self, message='Dummy model can\'t do this'):
                  +        super().__init__(message)
                  +
                  +
                  +SIMPLE_ARTM_MODEL = artm.ARTM(num_topics=1, num_processors=1)
                  +JSON_KEY_REGULARIZERS = 'regularizers'
                  +JSON_KEY_CLASS_IDS = 'class_ids'
                  +WARNING_ALREADY_DUMMY = 'Already dummy'
                  +
                  +
                  +class DummyTopicModel(TopicModel):
                  +    _save_path_suffix = '__dummy'
                  +    _dummy_attribute = '_is_dummy'
                  +
                  +    def __init__(self,
                  +                 scores,
                  +                 init_parameters=None,
                  +                 model_id=None,
                  +                 parent_model_id=None,
                  +                 description=None,
                  +                 experiment=None,
                  +                 *args,
                  +                 **kwargs):
                  +        """
                  +        Notes
                  +        -----
                  +        Only TopicModel supposed to be able to create DummyTopicModel
                  +        ("private" < access < "public")
                  +        """
                  +        super().__init__(
                  +            artm_model=SIMPLE_ARTM_MODEL,
                  +            model_id=model_id,
                  +            parent_model_id=parent_model_id,
                  +            description=description,
                  +            experiment=experiment,
                  +            **kwargs,
                  +        )
                  +
                  +        self._model.dispose()
                  +        self._save_folder_path = None
                  +        self._model = _DummyArtmModel(self._save_folder_path)
                  +        self._init_parameters = init_parameters
                  +
                  +        self._scores = scores
                  +
                  +        setattr(self, DummyTopicModel._dummy_attribute, True)
                  +
                  +        self._original_model_save_folder_path = None
                  +
                  +    def __getattr__(self, name):
                  +        # Don't redirect the stuff to artm_model (as TopicModel does)
                  +        if name in self._init_parameters:
                  +            return self._init_parameters[name]
                  +        raise AttributeError(f'Dummy model has no attribute "{name}"')
                  +
                  +    def get_init_parameters(self, not_include=None):
                  +        """"""
                  +        return self._init_parameters
                  +
                  +    @property
                  +    def model_default_save_path(self):
                  +        """"""
                  +        return super().model_default_save_path + DummyTopicModel._save_path_suffix
                  +
                  +    @property
                  +    def scores(self):
                  +        """"""
                  +        return self._scores
                  +
                  +    @property
                  +    def regularizers(self):
                  +        """"""
                  +        return self._model.regularizers
                  +
                  +    @property
                  +    def class_ids(self):
                  +        """"""
                  +        return self._model.class_ids
                  +
                  +    def save(self, model_save_path=None, **kwargs):
                  +        """"""
                  +        # kwargs - for compatibility with super()'s method
                  +
                  +        # TODO: a bit copy-paste from TopicModel:
                  +        #  can't call super()'s, because artm_model is being saved by default there
                  +
                  +        self._save_folder_path = model_save_path or self.model_default_save_path
                  +
                  +        if not os.path.exists(self._save_folder_path):
                  +            os.makedirs(self._save_folder_path)
                  +
                  +        self.save_parameters(self._save_folder_path)
                  +
                  +    @staticmethod
                  +    def load(path, experiment=None):
                  +        """"""
                  +        params = json.load(open(f'{path}/params.json', 'r'))
                  +        model = DummyTopicModel(**params)
                  +        model.experiment = experiment
                  +        model._original_model_save_folder_path = path
                  +
                  +        return model
                  +
                  +    def restore(self, dataset: Dataset = None):
                  +        """Restores dummy to original TopicModel
                  +
                  +        Tries to load the data from drive (if model was saved).
                  +        Otherwise tries to train the model using parent model, experiment and dataset.
                  +
                  +        Parameters
                  +        ----------
                  +        dataset : Dataset
                  +            Dataset on which the model was trained.
                  +            If the original model was saved to drive, the parameter won't be used.
                  +            If not, dataset should be provided for training.
                  +
                  +        Returns
                  +        -------
                  +        TopicModel
                  +            Restored topic model
                  +        """
                  +        # Not in-place, as TopicModel's make_dummy() because (seems like) TopicModel can be empty
                  +        # But it would be really strange if DummyTopicModel actually had all the stuff inside
                  +
                  +        topic_model = None
                  +
                  +        if self._original_model_save_folder_path is not None:
                  +            topic_model = self._load_original_model()
                  +
                  +        if topic_model is None:
                  +            topic_model = self._train_to_original_model(dataset)
                  +
                  +        return topic_model
                  +
                  +    def to_dummy(self, save_to_drive=True, save_path=None, **kwargs):
                  +        warnings.warn(WARNING_ALREADY_DUMMY, UserWarning)
                  +
                  +        if save_to_drive:
                  +            self.save(save_path, **kwargs)
                  +
                  +        return self
                  +
                  +    def make_dummy(self, save_to_drive=True, save_path=None, **kwargs):
                  +        warnings.warn(WARNING_ALREADY_DUMMY, UserWarning)
                  +
                  +        if save_to_drive:
                  +            self.save(save_path, **kwargs)
                  +
                  +    def _load_original_model(self):
                  +        # TODO: custom_scores not restored currently
                  +        #  modify model's save()-load() methods?
                  +        topic_model = None
                  +
                  +        try:
                  +            topic_model = super().load(
                  +                self._original_model_save_folder_path,
                  +                self.experiment
                  +            )
                  +        except FileNotFoundError as e:
                  +            warnings.warn(f'Failed to read data from drive: "{e.args}"')
                  +
                  +        return topic_model
                  +
                  +    def _train_to_original_model(self, dataset: Dataset):
                  +        # TODO: refactor: big bunch of code, a lot of obscure and highly-likely-fo-fail places
                  +        #  (parsing params, connecting one params with other params, restoring cube, running cube)
                  +
                  +        if len(self.description) == 0:
                  +            raise RuntimeError(
                  +                'Dummy model has empty description. So seems like nothing to restore'
                  +            )
                  +
                  +        if self.parent_model_id is None:
                  +            raise ValueError(
                  +                'Dummy model has no parent. Can\'t restore model in such a case'
                  +            )
                  +
                  +        if self.parent_model_id not in self.experiment.models:
                  +            raise ValueError(
                  +                f'Parent model "{self.parent_model_id}" not found in models '
                  +                f'associated with the experiment'
                  +            )
                  +
                  +        if dataset is None:
                  +            raise ValueError('Can\'t restore the model via training without dataset')
                  +
                  +        parent_model = self.experiment.models[self.parent_model_id]
                  +
                  +        if hasattr(parent_model, DummyTopicModel._dummy_attribute):
                  +            assert hasattr(parent_model, 'restore')
                  +
                  +            parent_model.restore(True, dataset)  # also restore in experiment.models
                  +
                  +            delattr(parent_model, DummyTopicModel._dummy_attribute)
                  +
                  +        last_cube_description = self.description[-1]
                  +        # {
                  +        #   'action': 'reg_modifier',
                  +        #   'num_iter': 1,
                  +        #   'params': <some string with some description of regularizers>
                  +        # }
                  +        #
                  +        # Example of 'params' (it is string):
                  +        #   "([<artm.regularizers.SmoothSparseThetaRegularizer object at 0x7faba8363ac8>,
                  +        #     'tau', 10.0],)"
                  +
                  +        # Currently need to parse the string with params
                  +        cube_parameters_from_description = last_cube_description['params']
                  +        cube_parameters_from_description = re.findall(
                  +            '\\[.*?\\]',
                  +            cube_parameters_from_description
                  +        )
                  +        cube_parameters_from_description = list(map(
                  +            lambda p: p[1:-1].split(', '),
                  +            cube_parameters_from_description
                  +        ))
                  +        cube_parameters_from_description = list(map(
                  +            lambda p: dict(zip(['object', 'field', 'value'], p)),
                  +            cube_parameters_from_description
                  +        ))
                  +
                  +        assert len(self.experiment.cubes) >= len(self.description)
                  +
                  +        last_cube_parameters = self.experiment.cubes[len(self.description) - 1]
                  +        # {
                  +        #   'action': 'reg_modifier',
                  +        #   'params': [
                  +        #     {
                  +        #       'tau_grid': [0, 0.0],
                  +        #       'regularizer': { 'name': 'smooth_theta_bcg', 'tau': 1, ... }
                  +        #     },
                  +        #     ...
                  +        #  ],
                  +        #  'cube': <Cube object>
                  +        # }
                  +
                  +        # For some reason some cubes seemed to not have this 'cube' parameter
                  +        # and not just the first two cubes
                  +        assert 'cube' in last_cube_parameters
                  +
                  +        cube = last_cube_parameters['cube']
                  +
                  +        # Example of cube.parameters:
                  +        # [
                  +        #   { 'object': <Regularizer object>, 'field': 'tau', 'values': [0, 0.0] }
                  +        # ]
                  +
                  +        # TODO: assume order in cube.parameters is the same as in self.description[-1]['params]
                  +        #  otherwise need to sort both lists?
                  +        for i in range(len(cube.parameters)):
                  +            assert str(cube.parameters[i]['object']) == \
                  +                   cube_parameters_from_description[i]['object']
                  +            # one is object, another is string
                  +
                  +            cube.parameters[i]['values'] = float(
                  +                cube_parameters_from_description[i]['value']
                  +            )
                  +
                  +        cube_parameters_for_apply = list(
                  +            map(lambda p: list(p.values()), cube.parameters)
                  +        )
                  +
                  +        being_restored_model = cube.apply(
                  +            parent_model,
                  +            cube_parameters_for_apply,
                  +            dataset.get_dictionary()
                  +        )
                  +        being_restored_model._fit(
                  +            dataset_trainable=dataset.get_batch_vectorizer(),
                  +            num_iterations=cube.num_iter
                  +        )
                  +        model_cube = {
                  +            'action': cube.action,
                  +            'num_iter': cube.num_iter,
                  +            'params': repr(tuple(cube_parameters_for_apply))  # trying to make it look like before
                  +        }
                  +        being_restored_model.add_cube(model_cube)  # restoring description
                  +        being_restored_model._model_id = self.model_id  # using private field
                  +
                  +        return being_restored_model
                  +
                  +
                  +class _DummyArtmModel:
                  +    def __init__(self, save_folder_path):
                  +        self.master = None
                  +
                  +        self._save_folder_path = save_folder_path
                  +        self._artm_params = None
                  +
                  +    def __getattr__(self, attr):
                  +        raise AttributeError(f'Dummy ARTM model doesn\'t have such attribute "{attr}"')
                  +
                  +    def dispose(self):
                  +        pass
                  +
                  +    @property
                  +    def regularizers(self):
                  +        """ """
                  +        assert JSON_KEY_REGULARIZERS in self._artm_parameters
                  +
                  +        return self._artm_parameters[JSON_KEY_REGULARIZERS]
                  +
                  +    @property
                  +    def class_ids(self):
                  +        """ """
                  +        assert JSON_KEY_CLASS_IDS in self._artm_parameters
                  +
                  +        return self._artm_parameters[JSON_KEY_CLASS_IDS]
                  +
                  +    def _load_artm_parameters(self):
                  +        if self._save_folder_path is None:
                  +            raise ValueError('Model has never been saved. Can\'t load parameters')
                  +
                  +        artm_parameters_file_path = os.path.join(
                  +            self._save_folder_path,
                  +            'model',  # TODO: need some const-s for these names
                  +            'parameters.json'
                  +        )
                  +
                  +        if not os.path.isfile(artm_parameters_file_path):
                  +            raise FileNotFoundError(
                  +                f'File with artm model parameters not found on path "{artm_parameters_file_path}"')
                  +
                  +        return json.loads(
                  +            open(artm_parameters_file_path, 'r').read()
                  +        )
                  +
                  +    @property
                  +    def _artm_parameters(self):
                  +        if self._artm_params is None:
                  +            self._artm_params = self._load_artm_parameters()
                  +
                  +        return self._artm_params
                  +
                  +    def _fit(self, dataset_trainable, num_iterations):
                  +        raise InvalidOperationError()
                  +
                  +    def get_jsonable_from_parameters(self):
                  +        raise InvalidOperationError()
                  +
                  +    def clone(self):
                  +        raise InvalidOperationError()
                  +
                  +    def get_phi(self, *args, **kwargs):
                  +        raise InvalidOperationError()
                  +
                  +    def get_phi_dense(self, *args, **kwargs):
                  +        raise InvalidOperationError()
                  +
                  +    def get_phi_sparse(self, *args, **kwargs):
                  +        raise InvalidOperationError()
                  +
                  +    def get_theta(self, *args, **kwargs):
                  +        raise InvalidOperationError()
                  +
                  +    def add_cube(self, cube):
                  +        raise InvalidOperationError()
                  +
                  @@ -38,6 +417,281 @@

                  Classes

                  Notes

                  Only TopicModel supposed to be able to create DummyTopicModel ("private" < access < "public")

                  +
                  + +Expand source code + +
                  class DummyTopicModel(TopicModel):
                  +    _save_path_suffix = '__dummy'
                  +    _dummy_attribute = '_is_dummy'
                  +
                  +    def __init__(self,
                  +                 scores,
                  +                 init_parameters=None,
                  +                 model_id=None,
                  +                 parent_model_id=None,
                  +                 description=None,
                  +                 experiment=None,
                  +                 *args,
                  +                 **kwargs):
                  +        """
                  +        Notes
                  +        -----
                  +        Only TopicModel supposed to be able to create DummyTopicModel
                  +        ("private" < access < "public")
                  +        """
                  +        super().__init__(
                  +            artm_model=SIMPLE_ARTM_MODEL,
                  +            model_id=model_id,
                  +            parent_model_id=parent_model_id,
                  +            description=description,
                  +            experiment=experiment,
                  +            **kwargs,
                  +        )
                  +
                  +        self._model.dispose()
                  +        self._save_folder_path = None
                  +        self._model = _DummyArtmModel(self._save_folder_path)
                  +        self._init_parameters = init_parameters
                  +
                  +        self._scores = scores
                  +
                  +        setattr(self, DummyTopicModel._dummy_attribute, True)
                  +
                  +        self._original_model_save_folder_path = None
                  +
                  +    def __getattr__(self, name):
                  +        # Don't redirect the stuff to artm_model (as TopicModel does)
                  +        if name in self._init_parameters:
                  +            return self._init_parameters[name]
                  +        raise AttributeError(f'Dummy model has no attribute "{name}"')
                  +
                  +    def get_init_parameters(self, not_include=None):
                  +        """"""
                  +        return self._init_parameters
                  +
                  +    @property
                  +    def model_default_save_path(self):
                  +        """"""
                  +        return super().model_default_save_path + DummyTopicModel._save_path_suffix
                  +
                  +    @property
                  +    def scores(self):
                  +        """"""
                  +        return self._scores
                  +
                  +    @property
                  +    def regularizers(self):
                  +        """"""
                  +        return self._model.regularizers
                  +
                  +    @property
                  +    def class_ids(self):
                  +        """"""
                  +        return self._model.class_ids
                  +
                  +    def save(self, model_save_path=None, **kwargs):
                  +        """"""
                  +        # kwargs - for compatibility with super()'s method
                  +
                  +        # TODO: a bit copy-paste from TopicModel:
                  +        #  can't call super()'s, because artm_model is being saved by default there
                  +
                  +        self._save_folder_path = model_save_path or self.model_default_save_path
                  +
                  +        if not os.path.exists(self._save_folder_path):
                  +            os.makedirs(self._save_folder_path)
                  +
                  +        self.save_parameters(self._save_folder_path)
                  +
                  +    @staticmethod
                  +    def load(path, experiment=None):
                  +        """"""
                  +        params = json.load(open(f'{path}/params.json', 'r'))
                  +        model = DummyTopicModel(**params)
                  +        model.experiment = experiment
                  +        model._original_model_save_folder_path = path
                  +
                  +        return model
                  +
                  +    def restore(self, dataset: Dataset = None):
                  +        """Restores dummy to original TopicModel
                  +
                  +        Tries to load the data from drive (if model was saved).
                  +        Otherwise tries to train the model using parent model, experiment and dataset.
                  +
                  +        Parameters
                  +        ----------
                  +        dataset : Dataset
                  +            Dataset on which the model was trained.
                  +            If the original model was saved to drive, the parameter won't be used.
                  +            If not, dataset should be provided for training.
                  +
                  +        Returns
                  +        -------
                  +        TopicModel
                  +            Restored topic model
                  +        """
                  +        # Not in-place, as TopicModel's make_dummy() because (seems like) TopicModel can be empty
                  +        # But it would be really strange if DummyTopicModel actually had all the stuff inside
                  +
                  +        topic_model = None
                  +
                  +        if self._original_model_save_folder_path is not None:
                  +            topic_model = self._load_original_model()
                  +
                  +        if topic_model is None:
                  +            topic_model = self._train_to_original_model(dataset)
                  +
                  +        return topic_model
                  +
                  +    def to_dummy(self, save_to_drive=True, save_path=None, **kwargs):
                  +        warnings.warn(WARNING_ALREADY_DUMMY, UserWarning)
                  +
                  +        if save_to_drive:
                  +            self.save(save_path, **kwargs)
                  +
                  +        return self
                  +
                  +    def make_dummy(self, save_to_drive=True, save_path=None, **kwargs):
                  +        warnings.warn(WARNING_ALREADY_DUMMY, UserWarning)
                  +
                  +        if save_to_drive:
                  +            self.save(save_path, **kwargs)
                  +
                  +    def _load_original_model(self):
                  +        # TODO: custom_scores not restored currently
                  +        #  modify model's save()-load() methods?
                  +        topic_model = None
                  +
                  +        try:
                  +            topic_model = super().load(
                  +                self._original_model_save_folder_path,
                  +                self.experiment
                  +            )
                  +        except FileNotFoundError as e:
                  +            warnings.warn(f'Failed to read data from drive: "{e.args}"')
                  +
                  +        return topic_model
                  +
                  +    def _train_to_original_model(self, dataset: Dataset):
                  +        # TODO: refactor: big bunch of code, a lot of obscure and highly-likely-fo-fail places
                  +        #  (parsing params, connecting one params with other params, restoring cube, running cube)
                  +
                  +        if len(self.description) == 0:
                  +            raise RuntimeError(
                  +                'Dummy model has empty description. So seems like nothing to restore'
                  +            )
                  +
                  +        if self.parent_model_id is None:
                  +            raise ValueError(
                  +                'Dummy model has no parent. Can\'t restore model in such a case'
                  +            )
                  +
                  +        if self.parent_model_id not in self.experiment.models:
                  +            raise ValueError(
                  +                f'Parent model "{self.parent_model_id}" not found in models '
                  +                f'associated with the experiment'
                  +            )
                  +
                  +        if dataset is None:
                  +            raise ValueError('Can\'t restore the model via training without dataset')
                  +
                  +        parent_model = self.experiment.models[self.parent_model_id]
                  +
                  +        if hasattr(parent_model, DummyTopicModel._dummy_attribute):
                  +            assert hasattr(parent_model, 'restore')
                  +
                  +            parent_model.restore(True, dataset)  # also restore in experiment.models
                  +
                  +            delattr(parent_model, DummyTopicModel._dummy_attribute)
                  +
                  +        last_cube_description = self.description[-1]
                  +        # {
                  +        #   'action': 'reg_modifier',
                  +        #   'num_iter': 1,
                  +        #   'params': <some string with some description of regularizers>
                  +        # }
                  +        #
                  +        # Example of 'params' (it is string):
                  +        #   "([<artm.regularizers.SmoothSparseThetaRegularizer object at 0x7faba8363ac8>,
                  +        #     'tau', 10.0],)"
                  +
                  +        # Currently need to parse the string with params
                  +        cube_parameters_from_description = last_cube_description['params']
                  +        cube_parameters_from_description = re.findall(
                  +            '\\[.*?\\]',
                  +            cube_parameters_from_description
                  +        )
                  +        cube_parameters_from_description = list(map(
                  +            lambda p: p[1:-1].split(', '),
                  +            cube_parameters_from_description
                  +        ))
                  +        cube_parameters_from_description = list(map(
                  +            lambda p: dict(zip(['object', 'field', 'value'], p)),
                  +            cube_parameters_from_description
                  +        ))
                  +
                  +        assert len(self.experiment.cubes) >= len(self.description)
                  +
                  +        last_cube_parameters = self.experiment.cubes[len(self.description) - 1]
                  +        # {
                  +        #   'action': 'reg_modifier',
                  +        #   'params': [
                  +        #     {
                  +        #       'tau_grid': [0, 0.0],
                  +        #       'regularizer': { 'name': 'smooth_theta_bcg', 'tau': 1, ... }
                  +        #     },
                  +        #     ...
                  +        #  ],
                  +        #  'cube': <Cube object>
                  +        # }
                  +
                  +        # For some reason some cubes seemed to not have this 'cube' parameter
                  +        # and not just the first two cubes
                  +        assert 'cube' in last_cube_parameters
                  +
                  +        cube = last_cube_parameters['cube']
                  +
                  +        # Example of cube.parameters:
                  +        # [
                  +        #   { 'object': <Regularizer object>, 'field': 'tau', 'values': [0, 0.0] }
                  +        # ]
                  +
                  +        # TODO: assume order in cube.parameters is the same as in self.description[-1]['params]
                  +        #  otherwise need to sort both lists?
                  +        for i in range(len(cube.parameters)):
                  +            assert str(cube.parameters[i]['object']) == \
                  +                   cube_parameters_from_description[i]['object']
                  +            # one is object, another is string
                  +
                  +            cube.parameters[i]['values'] = float(
                  +                cube_parameters_from_description[i]['value']
                  +            )
                  +
                  +        cube_parameters_for_apply = list(
                  +            map(lambda p: list(p.values()), cube.parameters)
                  +        )
                  +
                  +        being_restored_model = cube.apply(
                  +            parent_model,
                  +            cube_parameters_for_apply,
                  +            dataset.get_dictionary()
                  +        )
                  +        being_restored_model._fit(
                  +            dataset_trainable=dataset.get_batch_vectorizer(),
                  +            num_iterations=cube.num_iter
                  +        )
                  +        model_cube = {
                  +            'action': cube.action,
                  +            'num_iter': cube.num_iter,
                  +            'params': repr(tuple(cube_parameters_for_apply))  # trying to make it look like before
                  +        }
                  +        being_restored_model.add_cube(model_cube)  # restoring description
                  +        being_restored_model._model_id = self.model_id  # using private field
                  +
                  +        return being_restored_model
                  +

                  Ancestors

                  • TopicModel
                  • @@ -48,10 +702,28 @@

                    Instance variables

                    var class_ids
                    +
                    + +Expand source code + +
                    @property
                    +def class_ids(self):
                    +    """"""
                    +    return self._model.class_ids
                    +
                    var model_default_save_path
                    +
                    + +Expand source code + +
                    @property
                    +def model_default_save_path(self):
                    +    """"""
                    +    return super().model_default_save_path + DummyTopicModel._save_path_suffix
                    +

                    Methods

                    @@ -61,6 +733,14 @@

                    Methods

                    +
                    + +Expand source code + +
                    def get_init_parameters(self, not_include=None):
                    +    """"""
                    +    return self._init_parameters
                    +
                    def restore(self, dataset=None) @@ -81,6 +761,41 @@

                    Returns

                    TopicModel
                    Restored topic model
                    +
                    + +Expand source code + +
                    def restore(self, dataset: Dataset = None):
                    +    """Restores dummy to original TopicModel
                    +
                    +    Tries to load the data from drive (if model was saved).
                    +    Otherwise tries to train the model using parent model, experiment and dataset.
                    +
                    +    Parameters
                    +    ----------
                    +    dataset : Dataset
                    +        Dataset on which the model was trained.
                    +        If the original model was saved to drive, the parameter won't be used.
                    +        If not, dataset should be provided for training.
                    +
                    +    Returns
                    +    -------
                    +    TopicModel
                    +        Restored topic model
                    +    """
                    +    # Not in-place, as TopicModel's make_dummy() because (seems like) TopicModel can be empty
                    +    # But it would be really strange if DummyTopicModel actually had all the stuff inside
                    +
                    +    topic_model = None
                    +
                    +    if self._original_model_save_folder_path is not None:
                    +        topic_model = self._load_original_model()
                    +
                    +    if topic_model is None:
                    +        topic_model = self._train_to_original_model(dataset)
                    +
                    +    return topic_model
                    +

                    Inherited members

                    @@ -114,6 +829,14 @@

                    Inherited members

                    Unspecified run-time error.

                    +
                    + +Expand source code + +
                    class InvalidOperationError(RuntimeError):
                    +    def __init__(self, message='Dummy model can\'t do this'):
                    +        super().__init__(message)
                    +

                    Ancestors

                    • builtins.RuntimeError
                    • @@ -155,7 +878,9 @@

                      -

                      Generated by pdoc 0.6.3.

                      +

                      Generated by pdoc 0.7.2.

                      + + \ No newline at end of file diff --git a/docs/cooking_machine/models/example_score.html b/docs/cooking_machine/models/example_score.html index a98c9a2..f0cde0e 100644 --- a/docs/cooking_machine/models/example_score.html +++ b/docs/cooking_machine/models/example_score.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.models.example_score API documentation - + + @@ -19,6 +20,52 @@

                      Module topicnet.cooking_machine.models.example_score

                      +
                      + +Expand source code + +
                      import numpy as np
                      +from .base_score import BaseScore
                      +
                      +
                      +class ScoreExample(BaseScore):
                      +    """
                      +    Example score that calculates
                      +    average size of topic kernel across all topics.
                      +    We inherit from BaseScore in order to have self.value property and self.update() method
                      +    (the internal logic of TopicNet relies on them)
                      +
                      +    """
                      +    def __init__(self, token_threshold=1e-3):
                      +        """
                      +
                      +        Parameters
                      +        ----------
                      +        token_threshold : float
                      +            what probabilities to take as token belonging to the topic
                      +
                      +        """
                      +        super().__init__()
                      +        self.threshold = token_threshold
                      +
                      +    def call(self, model):
                      +        """
                      +        Method that calculates the score
                      +
                      +        Parameters
                      +        ----------
                      +        model : TopicModel
                      +
                      +        Returns
                      +        -------
                      +        score : float
                      +            mean kernel size for all topics in the model
                      +
                      +        """
                      +        phi = model.get_phi().values
                      +        score = np.sum((phi > self.threshold).astype('int'), axis=0).mean()
                      +        return score
                      +
                      @@ -43,6 +90,48 @@

                      Parameters

                      token_threshold : float
                      what probabilities to take as token belonging to the topic
                      +
                      + +Expand source code + +
                      class ScoreExample(BaseScore):
                      +    """
                      +    Example score that calculates
                      +    average size of topic kernel across all topics.
                      +    We inherit from BaseScore in order to have self.value property and self.update() method
                      +    (the internal logic of TopicNet relies on them)
                      +
                      +    """
                      +    def __init__(self, token_threshold=1e-3):
                      +        """
                      +
                      +        Parameters
                      +        ----------
                      +        token_threshold : float
                      +            what probabilities to take as token belonging to the topic
                      +
                      +        """
                      +        super().__init__()
                      +        self.threshold = token_threshold
                      +
                      +    def call(self, model):
                      +        """
                      +        Method that calculates the score
                      +
                      +        Parameters
                      +        ----------
                      +        model : TopicModel
                      +
                      +        Returns
                      +        -------
                      +        score : float
                      +            mean kernel size for all topics in the model
                      +
                      +        """
                      +        phi = model.get_phi().values
                      +        score = np.sum((phi > self.threshold).astype('int'), axis=0).mean()
                      +        return score
                      +

                      Ancestors

                      • BaseScore
                      • @@ -64,6 +153,28 @@

                        Returns

                        score : float
                        mean kernel size for all topics in the model
                        +
                        + +Expand source code + +
                        def call(self, model):
                        +    """
                        +    Method that calculates the score
                        +
                        +    Parameters
                        +    ----------
                        +    model : TopicModel
                        +
                        +    Returns
                        +    -------
                        +    score : float
                        +        mean kernel size for all topics in the model
                        +
                        +    """
                        +    phi = model.get_phi().values
                        +    score = np.sum((phi > self.threshold).astype('int'), axis=0).mean()
                        +    return score
                        +

                    Inherited members

                    @@ -103,7 +214,9 @@

                    + + \ No newline at end of file diff --git a/docs/cooking_machine/models/frozen_score.html b/docs/cooking_machine/models/frozen_score.html new file mode 100644 index 0000000..317fc82 --- /dev/null +++ b/docs/cooking_machine/models/frozen_score.html @@ -0,0 +1,216 @@ + + + + + + +topicnet.cooking_machine.models.frozen_score API documentation + + + + + + + + + +
                    +
                    +
                    +

                    Module topicnet.cooking_machine.models.frozen_score

                    +
                    +
                    +
                    + +Expand source code + +
                    import warnings
                    +
                    +from .base_score import BaseScore
                    +
                    +
                    +class FrozenScore(BaseScore):
                    +    """
                    +    Custom scores can have anything inside.
                    +    So there is a probability that pickle will not be able to dump them.
                    +    Frozen score helps to store the value of the original score without its internal logic,
                    +    so as it can be saved.
                    +    """
                    +    def __init__(self, value):
                    +        super().__init__()
                    +
                    +        self.value = value
                    +
                    +    def update(self, score):
                    +        """
                    +        Update is not supposed to be applied to Frozen score.
                    +        It is not supposed to be changed.
                    +        Still, the situation with an endeavour to update can generally happen if one tries
                    +        to train the model further after loading.
                    +        """
                    +        warnings.warn(
                    +            f'Trying to update Frozen score! Update value "{score}". '
                    +            f'Frozen score is not supposed to be updated, '
                    +            f'as there is no computation logic inside'
                    +        )
                    +
                    +        if score is not None:
                    +            # TODO: it shouldn't be possible to pass such score value to update()
                    +            #  other than the one returned by self.call()
                    +            warnings.warn(
                    +                f'Can\'t update Frozen score with value other than None: "{score}"! '
                    +                f'Saving None score'
                    +            )
                    +
                    +        self.value.append(None)
                    +
                    +    def call(self, model, *args, **kwargs):
                    +        return None
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +

                    Classes

                    +
                    +
                    +class FrozenScore +(value) +
                    +
                    +

                    Custom scores can have anything inside. +So there is a probability that pickle will not be able to dump them. +Frozen score helps to store the value of the original score without its internal logic, +so as it can be saved.

                    +
                    + +Expand source code + +
                    class FrozenScore(BaseScore):
                    +    """
                    +    Custom scores can have anything inside.
                    +    So there is a probability that pickle will not be able to dump them.
                    +    Frozen score helps to store the value of the original score without its internal logic,
                    +    so as it can be saved.
                    +    """
                    +    def __init__(self, value):
                    +        super().__init__()
                    +
                    +        self.value = value
                    +
                    +    def update(self, score):
                    +        """
                    +        Update is not supposed to be applied to Frozen score.
                    +        It is not supposed to be changed.
                    +        Still, the situation with an endeavour to update can generally happen if one tries
                    +        to train the model further after loading.
                    +        """
                    +        warnings.warn(
                    +            f'Trying to update Frozen score! Update value "{score}". '
                    +            f'Frozen score is not supposed to be updated, '
                    +            f'as there is no computation logic inside'
                    +        )
                    +
                    +        if score is not None:
                    +            # TODO: it shouldn't be possible to pass such score value to update()
                    +            #  other than the one returned by self.call()
                    +            warnings.warn(
                    +                f'Can\'t update Frozen score with value other than None: "{score}"! '
                    +                f'Saving None score'
                    +            )
                    +
                    +        self.value.append(None)
                    +
                    +    def call(self, model, *args, **kwargs):
                    +        return None
                    +
                    +

                    Ancestors

                    + +

                    Methods

                    +
                    +
                    +def update(self, score) +
                    +
                    +

                    Update is not supposed to be applied to Frozen score. +It is not supposed to be changed. +Still, the situation with an endeavour to update can generally happen if one tries +to train the model further after loading.

                    +
                    + +Expand source code + +
                    def update(self, score):
                    +    """
                    +    Update is not supposed to be applied to Frozen score.
                    +    It is not supposed to be changed.
                    +    Still, the situation with an endeavour to update can generally happen if one tries
                    +    to train the model further after loading.
                    +    """
                    +    warnings.warn(
                    +        f'Trying to update Frozen score! Update value "{score}". '
                    +        f'Frozen score is not supposed to be updated, '
                    +        f'as there is no computation logic inside'
                    +    )
                    +
                    +    if score is not None:
                    +        # TODO: it shouldn't be possible to pass such score value to update()
                    +        #  other than the one returned by self.call()
                    +        warnings.warn(
                    +            f'Can\'t update Frozen score with value other than None: "{score}"! '
                    +            f'Saving None score'
                    +        )
                    +
                    +    self.value.append(None)
                    +
                    +
                    +
                    +

                    Inherited members

                    + +
                    +
                    +
                    +
                    + +
                    + + + + + \ No newline at end of file diff --git a/docs/cooking_machine/models/index.html b/docs/cooking_machine/models/index.html index bd8f774..21eb0ce 100644 --- a/docs/cooking_machine/models/index.html +++ b/docs/cooking_machine/models/index.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.models API documentation - + + @@ -32,6 +33,7 @@

                    Models and scores

                  • ExampleScore — Example of minimal working example of custom score
                  • IntratextCoherenceScore — score that calculates coherence as a measure of interpretability of the model using raw documents from dataset. Calculation-heavy score. Recommended to be used after model training
                  • BleiLaffertyScore — An experimental light-weight score to estimate interpretability of the topics
                  • +
                  • SemanticRaduisScore — An experimental score reflecting whether collection is adequately described by topics. Lower if better. Calculation-heavy score.

                  Internal model structure

                  @@ -40,10 +42,11 @@

                  Internal model structure

                • model_id — a model string id, unique for its Experiment.

                • scores — dict of lists, each list corresponds to the score value or list of values at certain training stage.

                • custom_scores — variable providing custom scores for the model

                • +
                • custom_regularizers — variable providing custom regularizers for the model. An example is provided in topic_prior_regularizer.py.

                main model methods:

                  -
                • _fit — function performing model training. Takes the dataset and number of iterations.

                  +
                • _fit — function performing model training. Takes the dataset and number of iterations. Optionally, you can pass custom_regularizers here, if you wish to apply them to a single iteration.

                  Important Notice! We assume that the model training happens through Cube interface and this method, while important should never be used by users if they are hope to have their actions logged

                • get_phi — function that returns p(token|topic/cluster) probability distributions that returns pandas.DataFrame with tokens as index and topics/clusters as columns

                  Important Notice! Strictly speaking the function returns degree to which token belongs to the topic/cluster and shouldn’t be a probability distribution. But scince its main use-case intended for topic models some of the functions using this method might work incorrectly in non-distribution case

                • @@ -62,6 +65,20 @@

                  What do you need to create yo
                • A child class should contain methods __init__, _fit, get_phi, get_theta, save, load, clone, get_jsonable_from_parameters.

                • +
                  + +Expand source code + +
                  from .base_model import BaseModel
                  +from .topic_model import TopicModel
                  +from .dummy_topic_model import DummyTopicModel
                  +from .base_score import BaseScore
                  +from .example_score import ScoreExample
                  +
                  +SUPPORTED_MODEL_CLASSES = (
                  +    TopicModel,
                  +)
                  +

                  Sub-modules

                  @@ -90,6 +107,10 @@

                  Sub-modules

                  +
                  topicnet.cooking_machine.models.frozen_score
                  +
                  +
                  +
                  topicnet.cooking_machine.models.intratext_coherence_score
                  @@ -120,7 +141,7 @@

                  Sub-modules

                  + + \ No newline at end of file diff --git a/docs/cooking_machine/models/intratext_coherence_score.html b/docs/cooking_machine/models/intratext_coherence_score.html index 608c33b..1e33047 100644 --- a/docs/cooking_machine/models/intratext_coherence_score.html +++ b/docs/cooking_machine/models/intratext_coherence_score.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.models.intratext_coherence_score API documentation - + + @@ -19,6 +20,506 @@

                  Module topicnet.cooking_machine.models.intratext_coherence_score

                  +
                  + +Expand source code + +
                  from collections import defaultdict
                  +from enum import Enum, IntEnum, auto
                  +import numpy as np
                  +import pandas as pd
                  +from typing import List, Dict, Tuple
                  +
                  +from .base_score import BaseScore
                  +from .base_model import BaseModel
                  +from ..dataset import (
                  +    Dataset,
                  +    VW_TEXT_COL, RAW_TEXT_COL,
                  +    DEFAULT_ARTM_MODALITY, MODALITY_START_SYMBOL
                  +)
                  +
                  +
                  +class TextType(Enum):
                  +    VW_TEXT = VW_TEXT_COL
                  +    RAW_TEXT = RAW_TEXT_COL
                  +
                  +
                  +class ComputationMethod(IntEnum):
                  +    """
                  +    Ways to compute intra-text coherence
                  +    (see more about coherence below in IntratextCoherenceScore)
                  +
                  +    Attributes
                  +    ----------
                  +        SEGMENT_LENGTH :
                  +            Estimate the length of topic segments
                  +        SEGMENT_WEIGHT :
                  +            Estimate the weight of topic segment
                  +            (weight - sum of specificities for the topic over words in segment)
                  +        SUM_OVER_WINDOW :
                  +            Sum of specificities for the topic over words in given window.
                  +            The process is as follows:
                  +            word of the topic is found in text, it is the center of the first window;
                  +            next word of the topic is found (outside of the previous window), window; etc
                  +    """
                  +    SEGMENT_LENGTH = auto()
                  +    SEGMENT_WEIGHT = auto()
                  +    SUM_OVER_WINDOW = auto()
                  +
                  +
                  +class WordTopicRelatednessType(IntEnum):
                  +    """
                  +    Word-topic relatedness estimate
                  +
                  +    Attributes
                  +    ----------
                  +        PWT :
                  +            p(w | t)
                  +        PTW :
                  +            p(t | w)
                  +    """
                  +    PWT = auto()
                  +    PTW = auto()
                  +
                  +
                  +class SpecificityEstimationMethod(IntEnum):
                  +    """
                  +    Way to estimate how particular word is specific for particular topic.
                  +    Unlike probability, eg. p(w | t), specificity_estimation takes into account
                  +    values for all topics, eg. p(w | t_1), p(w | t_2), ..., p(w | t_n):
                  +    the higher the value p(w | t) comparing other p(w | t_i),
                  +    the higher the specificity_estimation of word "w" for the topic "t"
                  +
                  +    Attributes
                  +    ----------
                  +        NONE :
                  +            Don't try to estimate specificity_estimation, return the probability as is
                  +        MAXIMUM :
                  +            From probability, corresponding to word and topic,
                  +            extract *maximum* among probabilities for the word and other topics
                  +        AVERAGE :
                  +            From probability, corresponding to word and topic,
                  +            extract *average* among probabilities for the word and other topics
                  +    """
                  +    NONE = auto()
                  +    MAXIMUM = auto()
                  +    AVERAGE = auto()
                  +
                  +
                  +class IntratextCoherenceScore(BaseScore):
                  +    """Computes intratext coherence
                  +
                  +    For each topic of topic model its distribution throughout document collection is observed.
                  +    Hypothetically, the better the topic, the more often it is represented by
                  +    long segments of words highly related to the topic.
                  +    The score tries to bring to life this idea.
                  +
                  +    For more details one may see the article http://www.dialog-21.ru/media/4281/alekseevva.pdf
                  +    """
                  +    def __init__(
                  +            self,
                  +            dataset: Dataset,
                  +            documents: List[str] = None,
                  +            text_type: TextType = TextType.VW_TEXT,
                  +            computation_method: ComputationMethod = ComputationMethod.SEGMENT_LENGTH,
                  +            word_topic_relatedness: WordTopicRelatednessType = WordTopicRelatednessType.PWT,
                  +            specificity_estimation: SpecificityEstimationMethod = SpecificityEstimationMethod.NONE,
                  +            max_num_out_of_topic_words=10,
                  +            window=10
                  +    ):
                  +        """
                  +        Parameters
                  +        ----------
                  +        dataset : Dataset
                  +            Dataset with document collection
                  +            (any model passed to `call()` is supposed to be trained on it)
                  +        documents : list of str
                  +            Which documents from the dataset are to be used for computing coherence
                  +        text_type : TextType
                  +            What text to use when computing coherence: raw text or VW text
                  +            Preferable to use VW (as it is usually preprocessed, stop-words removed etc.),
                  +            and with words in *natural order*.
                  +            Score needs "real" text to compute coherence
                  +        computation_method : ComputationMethod
                  +            The way to compute intra-text coherence
                  +        word_topic_relatedness : WordTopicRelatednessType
                  +            How to estimate word relevance to topic: using p(w | t) or p(t | w)
                  +        specificity_estimation : SpecificityEstimationMethod
                  +            How to estimate specificity of word to topic
                  +        max_num_out_of_topic_words : int
                  +            In case computation_method = ComputationMethod.SEGMENT_LENGTH or
                  +            ComputationMethod.SEGMENT_WEIGHT:
                  +            Maximum number of words not of the topic which can be encountered without stopping
                  +            the process of adding words to the current segment
                  +        window : int
                  +            In case computation_method = ComputationMethod.SUM_OVER_WINDOW:
                  +            Window width. So the window will be the words with positions
                  +            in [current position - window / 2, current position + window / 2)
                  +        """
                  +        # TODO: word_topic_relatedness seems to be connected with TopTokensViewer stuff
                  +        super().__init__()
                  +
                  +        if not isinstance(dataset, Dataset):
                  +            raise TypeError(
                  +                f'Got "{type(dataset)}" as \"dataset\". Expect it to derive from "Dataset"')
                  +
                  +        if not isinstance(text_type, TextType):
                  +            raise TypeError(
                  +                f'Wrong "text_type": \"{text_type}\". '
                  +                f'Expect to be \"{TextType}\"')
                  +
                  +        if not isinstance(computation_method, ComputationMethod):
                  +            raise TypeError(
                  +                f'Wrong "computation_method": \"{computation_method}\". '
                  +                f'Expect to be \"{ComputationMethod}\"')
                  +
                  +        if not isinstance(word_topic_relatedness, WordTopicRelatednessType):
                  +            raise TypeError(
                  +                f'Wrong "word_topic_relatedness": \"{word_topic_relatedness}\". '
                  +                f'Expect to be \"{WordTopicRelatednessType}\"')
                  +
                  +        if not isinstance(specificity_estimation, SpecificityEstimationMethod):
                  +            raise TypeError(
                  +                f'Wrong "specificity_estimation": \"{specificity_estimation}\". '
                  +                f'Expect to be \"{SpecificityEstimationMethod}\"')
                  +
                  +        if not isinstance(max_num_out_of_topic_words, int):
                  +            raise TypeError(
                  +                f'Wrong "max_num_out_of_topic_words": \"{max_num_out_of_topic_words}\". '
                  +                f'Expect to be \"int\"')
                  +
                  +        if not isinstance(window, int):
                  +            raise TypeError(f'Wrong "window": \"{window}\". Expect to be \"int\"')
                  +
                  +        if window < 0 or (window == 0 and computation_method == ComputationMethod.SUM_OVER_WINDOW):
                  +            raise ValueError(
                  +                f'Wrong value for "window": \"{window}\". '
                  +                f'Expect to be non-negative. And greater than zero in case '
                  +                f'computation_method == ComputationMethod.SUM_OVER_WINDOW')
                  +
                  +        self._dataset = dataset
                  +        self._text_type = text_type
                  +        self._computation_method = computation_method
                  +        self._word_topic_relatedness = word_topic_relatedness
                  +        self._specificity_estimation_method = specificity_estimation
                  +        self._max_num_out_of_topic_words = max_num_out_of_topic_words
                  +        self._window = window
                  +
                  +        if documents is not None:
                  +            self._documents = documents
                  +        else:
                  +            self._documents = list(self._dataset.get_dataset().index)
                  +
                  +    def call(self, model: BaseModel) -> float:
                  +        topic_coherences = self.compute(model, None)
                  +
                  +        coherence_values = list(
                  +            v if v is not None else 0.0  # TODO: state the behavior clearer somehow
                  +            for v in topic_coherences.values()
                  +        )
                  +
                  +        return np.median(coherence_values)  # TODO: or mean?
                  +
                  +    def compute(
                  +            self,
                  +            model: BaseModel,
                  +            topics: List[str] = None,
                  +            documents: List[str] = None
                  +    ) -> Dict[str, float]:
                  +
                  +        if not isinstance(model, BaseModel):
                  +            raise TypeError(
                  +                f'Got "{type(model)}" as "model". '
                  +                f'Expect it to derive from "BaseModel"')
                  +
                  +        if topics is None:
                  +            topics = IntratextCoherenceScore._get_topics(model)
                  +
                  +        if documents is None:
                  +            documents = list(self._documents)
                  +
                  +        if not isinstance(topics, list):
                  +            raise TypeError(
                  +                f'Got "{type(topics)}" as "topics". Expect list of topic names')
                  +
                  +        if not isinstance(documents, list):
                  +            raise TypeError(
                  +                f'Got "{type(documents)}" as "documents". Expect list of document ids')
                  +
                  +        word_topic_relatednesses = self._get_word_topic_relatednesses(model)
                  +
                  +        topic_document_coherences = np.zeros((len(topics), len(documents)))
                  +        document_indices_with_topic_coherence = defaultdict(list)
                  +
                  +        for document_index, document in enumerate(documents):
                  +            for topic_index, topic in enumerate(topics):
                  +                # TODO: read document text only once for all topics
                  +                topic_coherence = self._compute_coherence(
                  +                    topic, document, word_topic_relatednesses)
                  +
                  +                if topic_coherence is not None:
                  +                    topic_document_coherences[topic_index, document_index] = topic_coherence
                  +                    document_indices_with_topic_coherence[topic].append(document_index)
                  +
                  +        topic_coherences = [
                  +            topic_document_coherences[topic_index, document_indices_with_topic_coherence[topic]]
                  +            if len(document_indices_with_topic_coherence) > 0 else list()
                  +            for topic_index, topic in enumerate(topics)
                  +        ]
                  +
                  +        return dict(zip(
                  +            topics,
                  +            [np.mean(coherence_values) if len(coherence_values) > 0 else None
                  +             for coherence_values in topic_coherences]
                  +        ))
                  +
                  +    @staticmethod
                  +    def _get_topics(model):
                  +        return list(model.get_phi().columns)
                  +
                  +    def _get_word_topic_relatednesses(self, model) -> pd.DataFrame:
                  +        phi = model.get_phi()
                  +
                  +        word_topic_probs = self._get_word_topic_probs(phi)
                  +
                  +        if self._specificity_estimation_method == SpecificityEstimationMethod.NONE:
                  +            pass
                  +
                  +        elif self._specificity_estimation_method == SpecificityEstimationMethod.AVERAGE:
                  +            word_topic_probs[:] = (
                  +                word_topic_probs.values -
                  +                    np.sum(word_topic_probs.values, axis=1, keepdims=True) /  # noqa: line alignment
                  +                        max(word_topic_probs.shape[1], 1)
                  +            )
                  +
                  +        elif self._specificity_estimation_method == SpecificityEstimationMethod.MAXIMUM:
                  +            new_columns = []
                  +
                  +            for t in word_topic_probs.columns:
                  +                new_column = (
                  +                    word_topic_probs[t].values -
                  +                    np.max(
                  +                        word_topic_probs[word_topic_probs.columns.difference([t])].values, axis=1)
                  +                )
                  +                new_columns.append(list(new_column))
                  +
                  +            word_topic_probs[:] = np.array(new_columns).T
                  +
                  +        return word_topic_probs
                  +
                  +    def _get_word_topic_probs(self, phi: pd.DataFrame) -> pd.DataFrame:
                  +        if self._word_topic_relatedness == WordTopicRelatednessType.PWT:
                  +            return phi
                  +
                  +        elif self._word_topic_relatedness == WordTopicRelatednessType.PTW:
                  +            # Treat all topics as equally probable
                  +            eps = np.finfo(float).tiny
                  +
                  +            pwt = phi
                  +            pwt_values = pwt.values
                  +
                  +            return pd.DataFrame(
                  +                index=pwt.index,
                  +                columns=pwt.columns,
                  +                data=pwt_values / (pwt_values.sum(axis=1).reshape(-1, 1) + eps)
                  +            )
                  +
                  +        assert False
                  +
                  +    def _compute_coherence(self, topic, document, word_topic_relatednesses):
                  +        assert isinstance(self._computation_method, ComputationMethod)
                  +
                  +        words = self._get_words(document)
                  +
                  +        if self._computation_method == ComputationMethod.SUM_OVER_WINDOW:
                  +            average_sum_over_window = self._sum_relatednesses_over_window(
                  +                topic, words, word_topic_relatednesses
                  +            )
                  +
                  +            return average_sum_over_window
                  +
                  +        topic_segment_length, topic_segment_weight = self._compute_segment_characteristics(
                  +            topic, words, word_topic_relatednesses
                  +        )
                  +
                  +        if self._computation_method == ComputationMethod.SEGMENT_LENGTH:
                  +            return topic_segment_length
                  +
                  +        elif self._computation_method == ComputationMethod.SEGMENT_WEIGHT:
                  +            return topic_segment_weight
                  +
                  +    def _get_words(self, document):
                  +        def get_biggest_modality_or_default():
                  +            modalities = list(self._dataset.get_possible_modalities())
                  +
                  +            if len(modalities) == 0:
                  +                return DEFAULT_ARTM_MODALITY
                  +
                  +            modalities_vocabulary_sizes = list(map(
                  +                lambda m: self._dataset.get_dataset().loc[m].shape[0],
                  +                modalities
                  +            ))
                  +
                  +            return modalities[np.argmax(modalities_vocabulary_sizes)]
                  +
                  +        if self._text_type == TextType.RAW_TEXT:
                  +            text = self._dataset.get_source_document(document).values[0, 0]  # TODO: this way?
                  +            modality = get_biggest_modality_or_default()
                  +
                  +            return list(map(lambda w: (modality, w), text.split()))
                  +
                  +        if self._text_type == TextType.VW_TEXT:
                  +            text = self._dataset.get_vw_document(document).values[0, 0]  # TODO: this way?
                  +
                  +            words = []
                  +            modality = None
                  +
                  +            # TODO: there was similar bunch of code somewhere...
                  +            for word in text.split()[1:]:  # skip document id
                  +                if word.startswith(MODALITY_START_SYMBOL):
                  +                    modality = word[1:]
                  +
                  +                    continue
                  +
                  +                word = word.split(':')[0]
                  +
                  +                if modality is not None:
                  +                    word = (modality, word)  # phi multiIndex
                  +                else:
                  +                    word = (DEFAULT_ARTM_MODALITY, word)
                  +
                  +                words.append(word)
                  +
                  +            return words
                  +
                  +        assert False
                  +
                  +    def _compute_segment_characteristics(
                  +            self, topic, words, word_topic_relatednesses: pd.DataFrame
                  +    ) -> Tuple[float, float]:
                  +
                  +        topic_segment_lengths = []
                  +        topic_segment_weights = []
                  +
                  +        topic_index = word_topic_relatednesses.columns.get_loc(topic)
                  +        word_topic_indices = np.argmax(word_topic_relatednesses.values, axis=1)
                  +
                  +        def get_word_topic_index(word):
                  +            if word not in word_topic_relatednesses.index:
                  +                return -1
                  +            else:
                  +                return word_topic_indices[
                  +                    word_topic_relatednesses.index.get_loc(word)
                  +                ]
                  +
                  +        index = 0
                  +
                  +        while index < len(words):
                  +            original_index = index
                  +
                  +            if get_word_topic_index(words[index]) != topic_index:
                  +                index += 1
                  +
                  +                continue
                  +
                  +            segment_length = 1
                  +            segment_weight = IntratextCoherenceScore._get_relatedness(
                  +                words[index], topic, word_topic_relatednesses
                  +            )
                  +
                  +            num_out_of_topic_words = 0
                  +
                  +            index += 1
                  +
                  +            while index < len(words) and num_out_of_topic_words < self._max_num_out_of_topic_words:
                  +                if get_word_topic_index(words[index]) != topic_index:
                  +                    num_out_of_topic_words += 1
                  +                else:
                  +                    segment_length += 1
                  +                    segment_weight += IntratextCoherenceScore._get_relatedness(
                  +                        words[index], topic, word_topic_relatednesses
                  +                    )
                  +
                  +                    num_out_of_topic_words = 0
                  +
                  +                index += 1
                  +
                  +            topic_segment_lengths.append(segment_length)
                  +            topic_segment_weights.append(segment_weight)
                  +
                  +            assert index > original_index
                  +
                  +        if len(topic_segment_lengths) == 0:
                  +            return None, None
                  +        else:
                  +            return np.mean(topic_segment_lengths), np.mean(topic_segment_weights)
                  +
                  +    def _sum_relatednesses_over_window(
                  +            self, topic, words, word_topic_relatednesses) -> float:
                  +
                  +        topic_index = word_topic_relatednesses.columns.get_loc(topic)
                  +        word_topic_indices = np.argmax(word_topic_relatednesses.values, axis=1)
                  +
                  +        def get_word_topic_index(word):
                  +            if word not in word_topic_relatednesses.index:
                  +                return -1
                  +            else:
                  +                return word_topic_indices[
                  +                    word_topic_relatednesses.index.get_loc(word)
                  +                ]
                  +
                  +        def find_next_topic_word(starting_index: int) -> int:
                  +            index = starting_index
                  +
                  +            while index < len(words) and\
                  +                    get_word_topic_index(words[index]) != topic_index:
                  +                index += 1
                  +
                  +            if index == len(words):
                  +                return -1  # failed to find next topic word
                  +
                  +            return index
                  +
                  +        word_index = find_next_topic_word(0)
                  +
                  +        if word_index == -1:
                  +            return None
                  +
                  +        sums = list()
                  +
                  +        while word_index < len(words) and word_index != -1:
                  +            original_word_index = word_index
                  +
                  +            window_lower_bound = word_index - int(np.floor(self._window // 2))
                  +            window_upper_bound = word_index + int(np.ceil(self._window // 2))
                  +
                  +            sum_in_window = np.sum(
                  +                [
                  +                    IntratextCoherenceScore._get_relatedness(
                  +                        w, topic, word_topic_relatednesses
                  +                    )
                  +                    for w in words[window_lower_bound:window_upper_bound]
                  +                ]
                  +            )
                  +
                  +            sums.append(sum_in_window)
                  +
                  +            word_index = find_next_topic_word(window_upper_bound)
                  +
                  +            assert word_index > original_word_index or word_index == -1
                  +
                  +        return np.mean(sums)
                  +
                  +    @staticmethod
                  +    def _get_relatedness(
                  +            word, topic, word_topic_relatednesses: pd.DataFrame) -> float:
                  +
                  +        if word in word_topic_relatednesses.index:
                  +            return word_topic_relatednesses.loc[word, topic]
                  +
                  +        # TODO: throw Warning or log somewhere?
                  +        return np.mean(word_topic_relatednesses.values)
                  +
                  @@ -48,6 +549,32 @@

                  Attributes

                  word of the topic is found in text, it is the center of the first window; next word of the topic is found (outside of the previous window), window; etc
                  +
                  + +Expand source code + +
                  class ComputationMethod(IntEnum):
                  +    """
                  +    Ways to compute intra-text coherence
                  +    (see more about coherence below in IntratextCoherenceScore)
                  +
                  +    Attributes
                  +    ----------
                  +        SEGMENT_LENGTH :
                  +            Estimate the length of topic segments
                  +        SEGMENT_WEIGHT :
                  +            Estimate the weight of topic segment
                  +            (weight - sum of specificities for the topic over words in segment)
                  +        SUM_OVER_WINDOW :
                  +            Sum of specificities for the topic over words in given window.
                  +            The process is as follows:
                  +            word of the topic is found in text, it is the center of the first window;
                  +            next word of the topic is found (outside of the previous window), window; etc
                  +    """
                  +    SEGMENT_LENGTH = auto()
                  +    SEGMENT_WEIGHT = auto()
                  +    SUM_OVER_WINDOW = auto()
                  +

                  Ancestors

                  • enum.IntEnum
                  • @@ -58,21 +585,60 @@

                    Class variables

                    var SEGMENT_LENGTH
                    -
                    +

                    Ways to compute intra-text coherence +(see more about coherence below in IntratextCoherenceScore)

                    +

                    Attributes

                    +
                    SEGMENT_LENGTH :
                    +    Estimate the length of topic segments
                    +SEGMENT_WEIGHT :
                    +    Estimate the weight of topic segment
                    +    (weight - sum of specificities for the topic over words in segment)
                    +SUM_OVER_WINDOW :
                    +    Sum of specificities for the topic over words in given window.
                    +    The process is as follows:
                    +    word of the topic is found in text, it is the center of the first window;
                    +    next word of the topic is found (outside of the previous window), window; etc
                    +
                    var SEGMENT_WEIGHT
                    -
                    +

                    Ways to compute intra-text coherence +(see more about coherence below in IntratextCoherenceScore)

                    +

                    Attributes

                    +
                    SEGMENT_LENGTH :
                    +    Estimate the length of topic segments
                    +SEGMENT_WEIGHT :
                    +    Estimate the weight of topic segment
                    +    (weight - sum of specificities for the topic over words in segment)
                    +SUM_OVER_WINDOW :
                    +    Sum of specificities for the topic over words in given window.
                    +    The process is as follows:
                    +    word of the topic is found in text, it is the center of the first window;
                    +    next word of the topic is found (outside of the previous window), window; etc
                    +
                    var SUM_OVER_WINDOW
                    -
                    +

                    Ways to compute intra-text coherence +(see more about coherence below in IntratextCoherenceScore)

                    +

                    Attributes

                    +
                    SEGMENT_LENGTH :
                    +    Estimate the length of topic segments
                    +SEGMENT_WEIGHT :
                    +    Estimate the weight of topic segment
                    +    (weight - sum of specificities for the topic over words in segment)
                    +SUM_OVER_WINDOW :
                    +    Sum of specificities for the topic over words in given window.
                    +    The process is as follows:
                    +    word of the topic is found in text, it is the center of the first window;
                    +    next word of the topic is found (outside of the previous window), window; etc
                    +
                    class IntratextCoherenceScore -(dataset, documents=None, text_type=, computation_method=, word_topic_relatedness=, specificity_estimation=, max_num_out_of_topic_words=10, window=10) +(dataset, documents=None, text_type=TextType.VW_TEXT, computation_method=ComputationMethod.SEGMENT_LENGTH, word_topic_relatedness=WordTopicRelatednessType.PWT, specificity_estimation=SpecificityEstimationMethod.NONE, max_num_out_of_topic_words=10, window=10)

                    Computes intratext coherence

                    @@ -109,6 +675,424 @@

                    Parameters

                    Window width. So the window will be the words with positions in [current position - window / 2, current position + window / 2)
                    +
                    + +Expand source code + +
                    class IntratextCoherenceScore(BaseScore):
                    +    """Computes intratext coherence
                    +
                    +    For each topic of topic model its distribution throughout document collection is observed.
                    +    Hypothetically, the better the topic, the more often it is represented by
                    +    long segments of words highly related to the topic.
                    +    The score tries to bring to life this idea.
                    +
                    +    For more details one may see the article http://www.dialog-21.ru/media/4281/alekseevva.pdf
                    +    """
                    +    def __init__(
                    +            self,
                    +            dataset: Dataset,
                    +            documents: List[str] = None,
                    +            text_type: TextType = TextType.VW_TEXT,
                    +            computation_method: ComputationMethod = ComputationMethod.SEGMENT_LENGTH,
                    +            word_topic_relatedness: WordTopicRelatednessType = WordTopicRelatednessType.PWT,
                    +            specificity_estimation: SpecificityEstimationMethod = SpecificityEstimationMethod.NONE,
                    +            max_num_out_of_topic_words=10,
                    +            window=10
                    +    ):
                    +        """
                    +        Parameters
                    +        ----------
                    +        dataset : Dataset
                    +            Dataset with document collection
                    +            (any model passed to `call()` is supposed to be trained on it)
                    +        documents : list of str
                    +            Which documents from the dataset are to be used for computing coherence
                    +        text_type : TextType
                    +            What text to use when computing coherence: raw text or VW text
                    +            Preferable to use VW (as it is usually preprocessed, stop-words removed etc.),
                    +            and with words in *natural order*.
                    +            Score needs "real" text to compute coherence
                    +        computation_method : ComputationMethod
                    +            The way to compute intra-text coherence
                    +        word_topic_relatedness : WordTopicRelatednessType
                    +            How to estimate word relevance to topic: using p(w | t) or p(t | w)
                    +        specificity_estimation : SpecificityEstimationMethod
                    +            How to estimate specificity of word to topic
                    +        max_num_out_of_topic_words : int
                    +            In case computation_method = ComputationMethod.SEGMENT_LENGTH or
                    +            ComputationMethod.SEGMENT_WEIGHT:
                    +            Maximum number of words not of the topic which can be encountered without stopping
                    +            the process of adding words to the current segment
                    +        window : int
                    +            In case computation_method = ComputationMethod.SUM_OVER_WINDOW:
                    +            Window width. So the window will be the words with positions
                    +            in [current position - window / 2, current position + window / 2)
                    +        """
                    +        # TODO: word_topic_relatedness seems to be connected with TopTokensViewer stuff
                    +        super().__init__()
                    +
                    +        if not isinstance(dataset, Dataset):
                    +            raise TypeError(
                    +                f'Got "{type(dataset)}" as \"dataset\". Expect it to derive from "Dataset"')
                    +
                    +        if not isinstance(text_type, TextType):
                    +            raise TypeError(
                    +                f'Wrong "text_type": \"{text_type}\". '
                    +                f'Expect to be \"{TextType}\"')
                    +
                    +        if not isinstance(computation_method, ComputationMethod):
                    +            raise TypeError(
                    +                f'Wrong "computation_method": \"{computation_method}\". '
                    +                f'Expect to be \"{ComputationMethod}\"')
                    +
                    +        if not isinstance(word_topic_relatedness, WordTopicRelatednessType):
                    +            raise TypeError(
                    +                f'Wrong "word_topic_relatedness": \"{word_topic_relatedness}\". '
                    +                f'Expect to be \"{WordTopicRelatednessType}\"')
                    +
                    +        if not isinstance(specificity_estimation, SpecificityEstimationMethod):
                    +            raise TypeError(
                    +                f'Wrong "specificity_estimation": \"{specificity_estimation}\". '
                    +                f'Expect to be \"{SpecificityEstimationMethod}\"')
                    +
                    +        if not isinstance(max_num_out_of_topic_words, int):
                    +            raise TypeError(
                    +                f'Wrong "max_num_out_of_topic_words": \"{max_num_out_of_topic_words}\". '
                    +                f'Expect to be \"int\"')
                    +
                    +        if not isinstance(window, int):
                    +            raise TypeError(f'Wrong "window": \"{window}\". Expect to be \"int\"')
                    +
                    +        if window < 0 or (window == 0 and computation_method == ComputationMethod.SUM_OVER_WINDOW):
                    +            raise ValueError(
                    +                f'Wrong value for "window": \"{window}\". '
                    +                f'Expect to be non-negative. And greater than zero in case '
                    +                f'computation_method == ComputationMethod.SUM_OVER_WINDOW')
                    +
                    +        self._dataset = dataset
                    +        self._text_type = text_type
                    +        self._computation_method = computation_method
                    +        self._word_topic_relatedness = word_topic_relatedness
                    +        self._specificity_estimation_method = specificity_estimation
                    +        self._max_num_out_of_topic_words = max_num_out_of_topic_words
                    +        self._window = window
                    +
                    +        if documents is not None:
                    +            self._documents = documents
                    +        else:
                    +            self._documents = list(self._dataset.get_dataset().index)
                    +
                    +    def call(self, model: BaseModel) -> float:
                    +        topic_coherences = self.compute(model, None)
                    +
                    +        coherence_values = list(
                    +            v if v is not None else 0.0  # TODO: state the behavior clearer somehow
                    +            for v in topic_coherences.values()
                    +        )
                    +
                    +        return np.median(coherence_values)  # TODO: or mean?
                    +
                    +    def compute(
                    +            self,
                    +            model: BaseModel,
                    +            topics: List[str] = None,
                    +            documents: List[str] = None
                    +    ) -> Dict[str, float]:
                    +
                    +        if not isinstance(model, BaseModel):
                    +            raise TypeError(
                    +                f'Got "{type(model)}" as "model". '
                    +                f'Expect it to derive from "BaseModel"')
                    +
                    +        if topics is None:
                    +            topics = IntratextCoherenceScore._get_topics(model)
                    +
                    +        if documents is None:
                    +            documents = list(self._documents)
                    +
                    +        if not isinstance(topics, list):
                    +            raise TypeError(
                    +                f'Got "{type(topics)}" as "topics". Expect list of topic names')
                    +
                    +        if not isinstance(documents, list):
                    +            raise TypeError(
                    +                f'Got "{type(documents)}" as "documents". Expect list of document ids')
                    +
                    +        word_topic_relatednesses = self._get_word_topic_relatednesses(model)
                    +
                    +        topic_document_coherences = np.zeros((len(topics), len(documents)))
                    +        document_indices_with_topic_coherence = defaultdict(list)
                    +
                    +        for document_index, document in enumerate(documents):
                    +            for topic_index, topic in enumerate(topics):
                    +                # TODO: read document text only once for all topics
                    +                topic_coherence = self._compute_coherence(
                    +                    topic, document, word_topic_relatednesses)
                    +
                    +                if topic_coherence is not None:
                    +                    topic_document_coherences[topic_index, document_index] = topic_coherence
                    +                    document_indices_with_topic_coherence[topic].append(document_index)
                    +
                    +        topic_coherences = [
                    +            topic_document_coherences[topic_index, document_indices_with_topic_coherence[topic]]
                    +            if len(document_indices_with_topic_coherence) > 0 else list()
                    +            for topic_index, topic in enumerate(topics)
                    +        ]
                    +
                    +        return dict(zip(
                    +            topics,
                    +            [np.mean(coherence_values) if len(coherence_values) > 0 else None
                    +             for coherence_values in topic_coherences]
                    +        ))
                    +
                    +    @staticmethod
                    +    def _get_topics(model):
                    +        return list(model.get_phi().columns)
                    +
                    +    def _get_word_topic_relatednesses(self, model) -> pd.DataFrame:
                    +        phi = model.get_phi()
                    +
                    +        word_topic_probs = self._get_word_topic_probs(phi)
                    +
                    +        if self._specificity_estimation_method == SpecificityEstimationMethod.NONE:
                    +            pass
                    +
                    +        elif self._specificity_estimation_method == SpecificityEstimationMethod.AVERAGE:
                    +            word_topic_probs[:] = (
                    +                word_topic_probs.values -
                    +                    np.sum(word_topic_probs.values, axis=1, keepdims=True) /  # noqa: line alignment
                    +                        max(word_topic_probs.shape[1], 1)
                    +            )
                    +
                    +        elif self._specificity_estimation_method == SpecificityEstimationMethod.MAXIMUM:
                    +            new_columns = []
                    +
                    +            for t in word_topic_probs.columns:
                    +                new_column = (
                    +                    word_topic_probs[t].values -
                    +                    np.max(
                    +                        word_topic_probs[word_topic_probs.columns.difference([t])].values, axis=1)
                    +                )
                    +                new_columns.append(list(new_column))
                    +
                    +            word_topic_probs[:] = np.array(new_columns).T
                    +
                    +        return word_topic_probs
                    +
                    +    def _get_word_topic_probs(self, phi: pd.DataFrame) -> pd.DataFrame:
                    +        if self._word_topic_relatedness == WordTopicRelatednessType.PWT:
                    +            return phi
                    +
                    +        elif self._word_topic_relatedness == WordTopicRelatednessType.PTW:
                    +            # Treat all topics as equally probable
                    +            eps = np.finfo(float).tiny
                    +
                    +            pwt = phi
                    +            pwt_values = pwt.values
                    +
                    +            return pd.DataFrame(
                    +                index=pwt.index,
                    +                columns=pwt.columns,
                    +                data=pwt_values / (pwt_values.sum(axis=1).reshape(-1, 1) + eps)
                    +            )
                    +
                    +        assert False
                    +
                    +    def _compute_coherence(self, topic, document, word_topic_relatednesses):
                    +        assert isinstance(self._computation_method, ComputationMethod)
                    +
                    +        words = self._get_words(document)
                    +
                    +        if self._computation_method == ComputationMethod.SUM_OVER_WINDOW:
                    +            average_sum_over_window = self._sum_relatednesses_over_window(
                    +                topic, words, word_topic_relatednesses
                    +            )
                    +
                    +            return average_sum_over_window
                    +
                    +        topic_segment_length, topic_segment_weight = self._compute_segment_characteristics(
                    +            topic, words, word_topic_relatednesses
                    +        )
                    +
                    +        if self._computation_method == ComputationMethod.SEGMENT_LENGTH:
                    +            return topic_segment_length
                    +
                    +        elif self._computation_method == ComputationMethod.SEGMENT_WEIGHT:
                    +            return topic_segment_weight
                    +
                    +    def _get_words(self, document):
                    +        def get_biggest_modality_or_default():
                    +            modalities = list(self._dataset.get_possible_modalities())
                    +
                    +            if len(modalities) == 0:
                    +                return DEFAULT_ARTM_MODALITY
                    +
                    +            modalities_vocabulary_sizes = list(map(
                    +                lambda m: self._dataset.get_dataset().loc[m].shape[0],
                    +                modalities
                    +            ))
                    +
                    +            return modalities[np.argmax(modalities_vocabulary_sizes)]
                    +
                    +        if self._text_type == TextType.RAW_TEXT:
                    +            text = self._dataset.get_source_document(document).values[0, 0]  # TODO: this way?
                    +            modality = get_biggest_modality_or_default()
                    +
                    +            return list(map(lambda w: (modality, w), text.split()))
                    +
                    +        if self._text_type == TextType.VW_TEXT:
                    +            text = self._dataset.get_vw_document(document).values[0, 0]  # TODO: this way?
                    +
                    +            words = []
                    +            modality = None
                    +
                    +            # TODO: there was similar bunch of code somewhere...
                    +            for word in text.split()[1:]:  # skip document id
                    +                if word.startswith(MODALITY_START_SYMBOL):
                    +                    modality = word[1:]
                    +
                    +                    continue
                    +
                    +                word = word.split(':')[0]
                    +
                    +                if modality is not None:
                    +                    word = (modality, word)  # phi multiIndex
                    +                else:
                    +                    word = (DEFAULT_ARTM_MODALITY, word)
                    +
                    +                words.append(word)
                    +
                    +            return words
                    +
                    +        assert False
                    +
                    +    def _compute_segment_characteristics(
                    +            self, topic, words, word_topic_relatednesses: pd.DataFrame
                    +    ) -> Tuple[float, float]:
                    +
                    +        topic_segment_lengths = []
                    +        topic_segment_weights = []
                    +
                    +        topic_index = word_topic_relatednesses.columns.get_loc(topic)
                    +        word_topic_indices = np.argmax(word_topic_relatednesses.values, axis=1)
                    +
                    +        def get_word_topic_index(word):
                    +            if word not in word_topic_relatednesses.index:
                    +                return -1
                    +            else:
                    +                return word_topic_indices[
                    +                    word_topic_relatednesses.index.get_loc(word)
                    +                ]
                    +
                    +        index = 0
                    +
                    +        while index < len(words):
                    +            original_index = index
                    +
                    +            if get_word_topic_index(words[index]) != topic_index:
                    +                index += 1
                    +
                    +                continue
                    +
                    +            segment_length = 1
                    +            segment_weight = IntratextCoherenceScore._get_relatedness(
                    +                words[index], topic, word_topic_relatednesses
                    +            )
                    +
                    +            num_out_of_topic_words = 0
                    +
                    +            index += 1
                    +
                    +            while index < len(words) and num_out_of_topic_words < self._max_num_out_of_topic_words:
                    +                if get_word_topic_index(words[index]) != topic_index:
                    +                    num_out_of_topic_words += 1
                    +                else:
                    +                    segment_length += 1
                    +                    segment_weight += IntratextCoherenceScore._get_relatedness(
                    +                        words[index], topic, word_topic_relatednesses
                    +                    )
                    +
                    +                    num_out_of_topic_words = 0
                    +
                    +                index += 1
                    +
                    +            topic_segment_lengths.append(segment_length)
                    +            topic_segment_weights.append(segment_weight)
                    +
                    +            assert index > original_index
                    +
                    +        if len(topic_segment_lengths) == 0:
                    +            return None, None
                    +        else:
                    +            return np.mean(topic_segment_lengths), np.mean(topic_segment_weights)
                    +
                    +    def _sum_relatednesses_over_window(
                    +            self, topic, words, word_topic_relatednesses) -> float:
                    +
                    +        topic_index = word_topic_relatednesses.columns.get_loc(topic)
                    +        word_topic_indices = np.argmax(word_topic_relatednesses.values, axis=1)
                    +
                    +        def get_word_topic_index(word):
                    +            if word not in word_topic_relatednesses.index:
                    +                return -1
                    +            else:
                    +                return word_topic_indices[
                    +                    word_topic_relatednesses.index.get_loc(word)
                    +                ]
                    +
                    +        def find_next_topic_word(starting_index: int) -> int:
                    +            index = starting_index
                    +
                    +            while index < len(words) and\
                    +                    get_word_topic_index(words[index]) != topic_index:
                    +                index += 1
                    +
                    +            if index == len(words):
                    +                return -1  # failed to find next topic word
                    +
                    +            return index
                    +
                    +        word_index = find_next_topic_word(0)
                    +
                    +        if word_index == -1:
                    +            return None
                    +
                    +        sums = list()
                    +
                    +        while word_index < len(words) and word_index != -1:
                    +            original_word_index = word_index
                    +
                    +            window_lower_bound = word_index - int(np.floor(self._window // 2))
                    +            window_upper_bound = word_index + int(np.ceil(self._window // 2))
                    +
                    +            sum_in_window = np.sum(
                    +                [
                    +                    IntratextCoherenceScore._get_relatedness(
                    +                        w, topic, word_topic_relatednesses
                    +                    )
                    +                    for w in words[window_lower_bound:window_upper_bound]
                    +                ]
                    +            )
                    +
                    +            sums.append(sum_in_window)
                    +
                    +            word_index = find_next_topic_word(window_upper_bound)
                    +
                    +            assert word_index > original_word_index or word_index == -1
                    +
                    +        return np.mean(sums)
                    +
                    +    @staticmethod
                    +    def _get_relatedness(
                    +            word, topic, word_topic_relatednesses: pd.DataFrame) -> float:
                    +
                    +        if word in word_topic_relatednesses.index:
                    +            return word_topic_relatednesses.loc[word, topic]
                    +
                    +        # TODO: throw Warning or log somewhere?
                    +        return np.mean(word_topic_relatednesses.values)
                    +

                    Ancestors

                    • BaseScore
                    • @@ -120,6 +1104,63 @@

                      Methods

                      +
                      + +Expand source code + +
                      def compute(
                      +        self,
                      +        model: BaseModel,
                      +        topics: List[str] = None,
                      +        documents: List[str] = None
                      +) -> Dict[str, float]:
                      +
                      +    if not isinstance(model, BaseModel):
                      +        raise TypeError(
                      +            f'Got "{type(model)}" as "model". '
                      +            f'Expect it to derive from "BaseModel"')
                      +
                      +    if topics is None:
                      +        topics = IntratextCoherenceScore._get_topics(model)
                      +
                      +    if documents is None:
                      +        documents = list(self._documents)
                      +
                      +    if not isinstance(topics, list):
                      +        raise TypeError(
                      +            f'Got "{type(topics)}" as "topics". Expect list of topic names')
                      +
                      +    if not isinstance(documents, list):
                      +        raise TypeError(
                      +            f'Got "{type(documents)}" as "documents". Expect list of document ids')
                      +
                      +    word_topic_relatednesses = self._get_word_topic_relatednesses(model)
                      +
                      +    topic_document_coherences = np.zeros((len(topics), len(documents)))
                      +    document_indices_with_topic_coherence = defaultdict(list)
                      +
                      +    for document_index, document in enumerate(documents):
                      +        for topic_index, topic in enumerate(topics):
                      +            # TODO: read document text only once for all topics
                      +            topic_coherence = self._compute_coherence(
                      +                topic, document, word_topic_relatednesses)
                      +
                      +            if topic_coherence is not None:
                      +                topic_document_coherences[topic_index, document_index] = topic_coherence
                      +                document_indices_with_topic_coherence[topic].append(document_index)
                      +
                      +    topic_coherences = [
                      +        topic_document_coherences[topic_index, document_indices_with_topic_coherence[topic]]
                      +        if len(document_indices_with_topic_coherence) > 0 else list()
                      +        for topic_index, topic in enumerate(topics)
                      +    ]
                      +
                      +    return dict(zip(
                      +        topics,
                      +        [np.mean(coherence_values) if len(coherence_values) > 0 else None
                      +         for coherence_values in topic_coherences]
                      +    ))
                      +

                      Inherited members

                      @@ -152,6 +1193,33 @@

                      Attributes

                      From probability, corresponding to word and topic, extract *average* among probabilities for the word and other topics
                      +
                      + +Expand source code + +
                      class SpecificityEstimationMethod(IntEnum):
                      +    """
                      +    Way to estimate how particular word is specific for particular topic.
                      +    Unlike probability, eg. p(w | t), specificity_estimation takes into account
                      +    values for all topics, eg. p(w | t_1), p(w | t_2), ..., p(w | t_n):
                      +    the higher the value p(w | t) comparing other p(w | t_i),
                      +    the higher the specificity_estimation of word "w" for the topic "t"
                      +
                      +    Attributes
                      +    ----------
                      +        NONE :
                      +            Don't try to estimate specificity_estimation, return the probability as is
                      +        MAXIMUM :
                      +            From probability, corresponding to word and topic,
                      +            extract *maximum* among probabilities for the word and other topics
                      +        AVERAGE :
                      +            From probability, corresponding to word and topic,
                      +            extract *average* among probabilities for the word and other topics
                      +    """
                      +    NONE = auto()
                      +    MAXIMUM = auto()
                      +    AVERAGE = auto()
                      +

                      Ancestors

                      • enum.IntEnum
                      • @@ -162,15 +1230,57 @@

                        Class variables

                        var AVERAGE
                        -
                        +

                        Way to estimate how particular word is specific for particular topic. +Unlike probability, eg. p(w | t), specificity_estimation takes into account +values for all topics, eg. p(w | t_1), p(w | t_2), …, p(w | t_n): +the higher the value p(w | t) comparing other p(w | t_i), +the higher the specificity_estimation of word "w" for the topic "t"

                        +

                        Attributes

                        +
                        NONE :
                        +    Don't try to estimate specificity_estimation, return the probability as is
                        +MAXIMUM :
                        +    From probability, corresponding to word and topic,
                        +    extract *maximum* among probabilities for the word and other topics
                        +AVERAGE :
                        +    From probability, corresponding to word and topic,
                        +    extract *average* among probabilities for the word and other topics
                        +
                        var MAXIMUM
                        -
                        +

                        Way to estimate how particular word is specific for particular topic. +Unlike probability, eg. p(w | t), specificity_estimation takes into account +values for all topics, eg. p(w | t_1), p(w | t_2), …, p(w | t_n): +the higher the value p(w | t) comparing other p(w | t_i), +the higher the specificity_estimation of word "w" for the topic "t"

                        +

                        Attributes

                        +
                        NONE :
                        +    Don't try to estimate specificity_estimation, return the probability as is
                        +MAXIMUM :
                        +    From probability, corresponding to word and topic,
                        +    extract *maximum* among probabilities for the word and other topics
                        +AVERAGE :
                        +    From probability, corresponding to word and topic,
                        +    extract *average* among probabilities for the word and other topics
                        +
                        var NONE
                        -
                        +

                        Way to estimate how particular word is specific for particular topic. +Unlike probability, eg. p(w | t), specificity_estimation takes into account +values for all topics, eg. p(w | t_1), p(w | t_2), …, p(w | t_n): +the higher the value p(w | t) comparing other p(w | t_i), +the higher the specificity_estimation of word "w" for the topic "t"

                        +

                        Attributes

                        +
                        NONE :
                        +    Don't try to estimate specificity_estimation, return the probability as is
                        +MAXIMUM :
                        +    From probability, corresponding to word and topic,
                        +    extract *maximum* among probabilities for the word and other topics
                        +AVERAGE :
                        +    From probability, corresponding to word and topic,
                        +    extract *average* among probabilities for the word and other topics
                        +
                        @@ -180,6 +1290,14 @@

                        Class variables

                        An enumeration.

                        +
                        + +Expand source code + +
                        class TextType(Enum):
                        +    VW_TEXT = VW_TEXT_COL
                        +    RAW_TEXT = RAW_TEXT_COL
                        +

                        Ancestors

                        • enum.Enum
                        • @@ -188,11 +1306,11 @@

                          Class variables

                          var RAW_TEXT
                          -
                          +

                          An enumeration.

                          var VW_TEXT
                          -
                          +

                          An enumeration.

                        @@ -208,6 +1326,24 @@

                        Attributes

                        PTW : p(t | w) +
                        + +Expand source code + +
                        class WordTopicRelatednessType(IntEnum):
                        +    """
                        +    Word-topic relatedness estimate
                        +
                        +    Attributes
                        +    ----------
                        +        PWT :
                        +            p(w | t)
                        +        PTW :
                        +            p(t | w)
                        +    """
                        +    PWT = auto()
                        +    PTW = auto()
                        +

                        Ancestors

                        • enum.IntEnum
                        • @@ -218,11 +1354,23 @@

                          Class variables

                          var PTW
                          -
                          +

                          Word-topic relatedness estimate

                          +

                          Attributes

                          +
                          PWT :
                          +    p(w | t)
                          +PTW :
                          +    p(t | w)
                          +
                          var PWT
                          -
                          +

                          Word-topic relatedness estimate

                          +

                          Attributes

                          +
                          PWT :
                          +    p(w | t)
                          +PTW :
                          +    p(t | w)
                          +
                          @@ -284,7 +1432,9 @@

                          -

                          Generated by pdoc 0.6.3.

                          +

                          Generated by pdoc 0.7.2.

                          + + \ No newline at end of file diff --git a/docs/cooking_machine/models/scores.html b/docs/cooking_machine/models/scores.html index fc524ca..c8c8bd2 100644 --- a/docs/cooking_machine/models/scores.html +++ b/docs/cooking_machine/models/scores.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.models.scores API documentation - + + @@ -19,6 +20,17 @@

                          Module topicnet.cooking_machine.models.scores

                          +
                          + +Expand source code + +
                          from .example_score import ScoreExample
                          +from .intratext_coherence_score import IntratextCoherenceScore
                          +from .blei_lafferty_score import BleiLaffertyScore
                          +from .semantic_radius_score import SemanticRaduisScore
                          +
                          +__all__ = ["ScoreExample", "IntratextCoherenceScore", "BleiLaffertyScore", "SemanticRaduisScore"]
                          +
                          @@ -45,6 +57,76 @@

                          Parameters

                          num_top_tokens : int
                          now many tokens we consider to be
                          +
                          + +Expand source code + +
                          class BleiLaffertyScore(BaseScore):
                          +    """
                          +    This score implements method described in 2009 paper
                          +    Blei, David M., and John D. Lafferty. "Topic models." Text Mining.
                          +    Chapman and Hall/CRC, 2009. 101-124.
                          +    At the core this score helps to discover tokens that are most likely
                          +    to describe given topic. Summing up that score helps to estimate how
                          +    well the model distinguishes between topics. The higher this score - better
                          +    """
                          +    def __init__(self, num_top_tokens: int = 30):
                          +        """
                          +
                          +        Parameters
                          +        ----------
                          +        num_top_tokens : int
                          +            now many tokens we consider to be
                          +
                          +        """
                          +        super().__init__()
                          +        self.num_top_tokens = num_top_tokens
                          +
                          +    def _compute_blei_scores(self, phi):
                          +        """
                          +        Computes Blei score  
                          +        phi[wt] * [log(phi[wt]) - 1/T sum_k log(phi[wk])]
                          +
                          +        Parameters
                          +        ----------
                          +        phi : pd.Dataframe
                          +            phi matrix of the model
                          +
                          +        Returns
                          +        -------
                          +        score : pd.Dataframe
                          +            wheighted phi matrix
                          +
                          +        """  # noqa: W291
                          +
                          +        topic_number = phi.shape[1]
                          +        blei_eps = 1e-42
                          +        log_phi = np.log(phi + blei_eps)
                          +        numerator = np.sum(log_phi, axis=1)
                          +        numerator = numerator[:, np.newaxis]
                          +
                          +        if hasattr(log_phi, "values"):
                          +            multiplier = log_phi.values - numerator / topic_number
                          +        else:
                          +            multiplier = log_phi - numerator / topic_number
                          +
                          +        scores = phi * multiplier
                          +        return scores
                          +
                          +    def call(self, model):
                          +        modalities = list(model.class_ids.keys())
                          +
                          +        score = 0
                          +        for modality in modalities:
                          +            phi = model.get_phi(class_ids=modality)
                          +            modality_scores = np.sort(self._compute_blei_scores(phi).values)
                          +            score += np.sum(modality_scores[-self.num_top_tokens:, :])
                          +        if modalities is None:
                          +            phi = model.get_phi()
                          +            modality_scores = np.sort(self._compute_blei_scores(phi).values)
                          +            score = np.sum(modality_scores[-self.num_top_tokens:, :])
                          +        return score
                          +

                          Ancestors

                          • BaseScore
                          • @@ -61,7 +143,7 @@

                            Inherited members

                            class IntratextCoherenceScore -(dataset, documents=None, text_type=, computation_method=, word_topic_relatedness=, specificity_estimation=, max_num_out_of_topic_words=10, window=10) +(dataset, documents=None, text_type=TextType.VW_TEXT, computation_method=ComputationMethod.SEGMENT_LENGTH, word_topic_relatedness=WordTopicRelatednessType.PWT, specificity_estimation=SpecificityEstimationMethod.NONE, max_num_out_of_topic_words=10, window=10)

                            Computes intratext coherence

                            @@ -98,6 +180,424 @@

                            Parameters

                            Window width. So the window will be the words with positions in [current position - window / 2, current position + window / 2)
                            +
                            + +Expand source code + +
                            class IntratextCoherenceScore(BaseScore):
                            +    """Computes intratext coherence
                            +
                            +    For each topic of topic model its distribution throughout document collection is observed.
                            +    Hypothetically, the better the topic, the more often it is represented by
                            +    long segments of words highly related to the topic.
                            +    The score tries to bring to life this idea.
                            +
                            +    For more details one may see the article http://www.dialog-21.ru/media/4281/alekseevva.pdf
                            +    """
                            +    def __init__(
                            +            self,
                            +            dataset: Dataset,
                            +            documents: List[str] = None,
                            +            text_type: TextType = TextType.VW_TEXT,
                            +            computation_method: ComputationMethod = ComputationMethod.SEGMENT_LENGTH,
                            +            word_topic_relatedness: WordTopicRelatednessType = WordTopicRelatednessType.PWT,
                            +            specificity_estimation: SpecificityEstimationMethod = SpecificityEstimationMethod.NONE,
                            +            max_num_out_of_topic_words=10,
                            +            window=10
                            +    ):
                            +        """
                            +        Parameters
                            +        ----------
                            +        dataset : Dataset
                            +            Dataset with document collection
                            +            (any model passed to `call()` is supposed to be trained on it)
                            +        documents : list of str
                            +            Which documents from the dataset are to be used for computing coherence
                            +        text_type : TextType
                            +            What text to use when computing coherence: raw text or VW text
                            +            Preferable to use VW (as it is usually preprocessed, stop-words removed etc.),
                            +            and with words in *natural order*.
                            +            Score needs "real" text to compute coherence
                            +        computation_method : ComputationMethod
                            +            The way to compute intra-text coherence
                            +        word_topic_relatedness : WordTopicRelatednessType
                            +            How to estimate word relevance to topic: using p(w | t) or p(t | w)
                            +        specificity_estimation : SpecificityEstimationMethod
                            +            How to estimate specificity of word to topic
                            +        max_num_out_of_topic_words : int
                            +            In case computation_method = ComputationMethod.SEGMENT_LENGTH or
                            +            ComputationMethod.SEGMENT_WEIGHT:
                            +            Maximum number of words not of the topic which can be encountered without stopping
                            +            the process of adding words to the current segment
                            +        window : int
                            +            In case computation_method = ComputationMethod.SUM_OVER_WINDOW:
                            +            Window width. So the window will be the words with positions
                            +            in [current position - window / 2, current position + window / 2)
                            +        """
                            +        # TODO: word_topic_relatedness seems to be connected with TopTokensViewer stuff
                            +        super().__init__()
                            +
                            +        if not isinstance(dataset, Dataset):
                            +            raise TypeError(
                            +                f'Got "{type(dataset)}" as \"dataset\". Expect it to derive from "Dataset"')
                            +
                            +        if not isinstance(text_type, TextType):
                            +            raise TypeError(
                            +                f'Wrong "text_type": \"{text_type}\". '
                            +                f'Expect to be \"{TextType}\"')
                            +
                            +        if not isinstance(computation_method, ComputationMethod):
                            +            raise TypeError(
                            +                f'Wrong "computation_method": \"{computation_method}\". '
                            +                f'Expect to be \"{ComputationMethod}\"')
                            +
                            +        if not isinstance(word_topic_relatedness, WordTopicRelatednessType):
                            +            raise TypeError(
                            +                f'Wrong "word_topic_relatedness": \"{word_topic_relatedness}\". '
                            +                f'Expect to be \"{WordTopicRelatednessType}\"')
                            +
                            +        if not isinstance(specificity_estimation, SpecificityEstimationMethod):
                            +            raise TypeError(
                            +                f'Wrong "specificity_estimation": \"{specificity_estimation}\". '
                            +                f'Expect to be \"{SpecificityEstimationMethod}\"')
                            +
                            +        if not isinstance(max_num_out_of_topic_words, int):
                            +            raise TypeError(
                            +                f'Wrong "max_num_out_of_topic_words": \"{max_num_out_of_topic_words}\". '
                            +                f'Expect to be \"int\"')
                            +
                            +        if not isinstance(window, int):
                            +            raise TypeError(f'Wrong "window": \"{window}\". Expect to be \"int\"')
                            +
                            +        if window < 0 or (window == 0 and computation_method == ComputationMethod.SUM_OVER_WINDOW):
                            +            raise ValueError(
                            +                f'Wrong value for "window": \"{window}\". '
                            +                f'Expect to be non-negative. And greater than zero in case '
                            +                f'computation_method == ComputationMethod.SUM_OVER_WINDOW')
                            +
                            +        self._dataset = dataset
                            +        self._text_type = text_type
                            +        self._computation_method = computation_method
                            +        self._word_topic_relatedness = word_topic_relatedness
                            +        self._specificity_estimation_method = specificity_estimation
                            +        self._max_num_out_of_topic_words = max_num_out_of_topic_words
                            +        self._window = window
                            +
                            +        if documents is not None:
                            +            self._documents = documents
                            +        else:
                            +            self._documents = list(self._dataset.get_dataset().index)
                            +
                            +    def call(self, model: BaseModel) -> float:
                            +        topic_coherences = self.compute(model, None)
                            +
                            +        coherence_values = list(
                            +            v if v is not None else 0.0  # TODO: state the behavior clearer somehow
                            +            for v in topic_coherences.values()
                            +        )
                            +
                            +        return np.median(coherence_values)  # TODO: or mean?
                            +
                            +    def compute(
                            +            self,
                            +            model: BaseModel,
                            +            topics: List[str] = None,
                            +            documents: List[str] = None
                            +    ) -> Dict[str, float]:
                            +
                            +        if not isinstance(model, BaseModel):
                            +            raise TypeError(
                            +                f'Got "{type(model)}" as "model". '
                            +                f'Expect it to derive from "BaseModel"')
                            +
                            +        if topics is None:
                            +            topics = IntratextCoherenceScore._get_topics(model)
                            +
                            +        if documents is None:
                            +            documents = list(self._documents)
                            +
                            +        if not isinstance(topics, list):
                            +            raise TypeError(
                            +                f'Got "{type(topics)}" as "topics". Expect list of topic names')
                            +
                            +        if not isinstance(documents, list):
                            +            raise TypeError(
                            +                f'Got "{type(documents)}" as "documents". Expect list of document ids')
                            +
                            +        word_topic_relatednesses = self._get_word_topic_relatednesses(model)
                            +
                            +        topic_document_coherences = np.zeros((len(topics), len(documents)))
                            +        document_indices_with_topic_coherence = defaultdict(list)
                            +
                            +        for document_index, document in enumerate(documents):
                            +            for topic_index, topic in enumerate(topics):
                            +                # TODO: read document text only once for all topics
                            +                topic_coherence = self._compute_coherence(
                            +                    topic, document, word_topic_relatednesses)
                            +
                            +                if topic_coherence is not None:
                            +                    topic_document_coherences[topic_index, document_index] = topic_coherence
                            +                    document_indices_with_topic_coherence[topic].append(document_index)
                            +
                            +        topic_coherences = [
                            +            topic_document_coherences[topic_index, document_indices_with_topic_coherence[topic]]
                            +            if len(document_indices_with_topic_coherence) > 0 else list()
                            +            for topic_index, topic in enumerate(topics)
                            +        ]
                            +
                            +        return dict(zip(
                            +            topics,
                            +            [np.mean(coherence_values) if len(coherence_values) > 0 else None
                            +             for coherence_values in topic_coherences]
                            +        ))
                            +
                            +    @staticmethod
                            +    def _get_topics(model):
                            +        return list(model.get_phi().columns)
                            +
                            +    def _get_word_topic_relatednesses(self, model) -> pd.DataFrame:
                            +        phi = model.get_phi()
                            +
                            +        word_topic_probs = self._get_word_topic_probs(phi)
                            +
                            +        if self._specificity_estimation_method == SpecificityEstimationMethod.NONE:
                            +            pass
                            +
                            +        elif self._specificity_estimation_method == SpecificityEstimationMethod.AVERAGE:
                            +            word_topic_probs[:] = (
                            +                word_topic_probs.values -
                            +                    np.sum(word_topic_probs.values, axis=1, keepdims=True) /  # noqa: line alignment
                            +                        max(word_topic_probs.shape[1], 1)
                            +            )
                            +
                            +        elif self._specificity_estimation_method == SpecificityEstimationMethod.MAXIMUM:
                            +            new_columns = []
                            +
                            +            for t in word_topic_probs.columns:
                            +                new_column = (
                            +                    word_topic_probs[t].values -
                            +                    np.max(
                            +                        word_topic_probs[word_topic_probs.columns.difference([t])].values, axis=1)
                            +                )
                            +                new_columns.append(list(new_column))
                            +
                            +            word_topic_probs[:] = np.array(new_columns).T
                            +
                            +        return word_topic_probs
                            +
                            +    def _get_word_topic_probs(self, phi: pd.DataFrame) -> pd.DataFrame:
                            +        if self._word_topic_relatedness == WordTopicRelatednessType.PWT:
                            +            return phi
                            +
                            +        elif self._word_topic_relatedness == WordTopicRelatednessType.PTW:
                            +            # Treat all topics as equally probable
                            +            eps = np.finfo(float).tiny
                            +
                            +            pwt = phi
                            +            pwt_values = pwt.values
                            +
                            +            return pd.DataFrame(
                            +                index=pwt.index,
                            +                columns=pwt.columns,
                            +                data=pwt_values / (pwt_values.sum(axis=1).reshape(-1, 1) + eps)
                            +            )
                            +
                            +        assert False
                            +
                            +    def _compute_coherence(self, topic, document, word_topic_relatednesses):
                            +        assert isinstance(self._computation_method, ComputationMethod)
                            +
                            +        words = self._get_words(document)
                            +
                            +        if self._computation_method == ComputationMethod.SUM_OVER_WINDOW:
                            +            average_sum_over_window = self._sum_relatednesses_over_window(
                            +                topic, words, word_topic_relatednesses
                            +            )
                            +
                            +            return average_sum_over_window
                            +
                            +        topic_segment_length, topic_segment_weight = self._compute_segment_characteristics(
                            +            topic, words, word_topic_relatednesses
                            +        )
                            +
                            +        if self._computation_method == ComputationMethod.SEGMENT_LENGTH:
                            +            return topic_segment_length
                            +
                            +        elif self._computation_method == ComputationMethod.SEGMENT_WEIGHT:
                            +            return topic_segment_weight
                            +
                            +    def _get_words(self, document):
                            +        def get_biggest_modality_or_default():
                            +            modalities = list(self._dataset.get_possible_modalities())
                            +
                            +            if len(modalities) == 0:
                            +                return DEFAULT_ARTM_MODALITY
                            +
                            +            modalities_vocabulary_sizes = list(map(
                            +                lambda m: self._dataset.get_dataset().loc[m].shape[0],
                            +                modalities
                            +            ))
                            +
                            +            return modalities[np.argmax(modalities_vocabulary_sizes)]
                            +
                            +        if self._text_type == TextType.RAW_TEXT:
                            +            text = self._dataset.get_source_document(document).values[0, 0]  # TODO: this way?
                            +            modality = get_biggest_modality_or_default()
                            +
                            +            return list(map(lambda w: (modality, w), text.split()))
                            +
                            +        if self._text_type == TextType.VW_TEXT:
                            +            text = self._dataset.get_vw_document(document).values[0, 0]  # TODO: this way?
                            +
                            +            words = []
                            +            modality = None
                            +
                            +            # TODO: there was similar bunch of code somewhere...
                            +            for word in text.split()[1:]:  # skip document id
                            +                if word.startswith(MODALITY_START_SYMBOL):
                            +                    modality = word[1:]
                            +
                            +                    continue
                            +
                            +                word = word.split(':')[0]
                            +
                            +                if modality is not None:
                            +                    word = (modality, word)  # phi multiIndex
                            +                else:
                            +                    word = (DEFAULT_ARTM_MODALITY, word)
                            +
                            +                words.append(word)
                            +
                            +            return words
                            +
                            +        assert False
                            +
                            +    def _compute_segment_characteristics(
                            +            self, topic, words, word_topic_relatednesses: pd.DataFrame
                            +    ) -> Tuple[float, float]:
                            +
                            +        topic_segment_lengths = []
                            +        topic_segment_weights = []
                            +
                            +        topic_index = word_topic_relatednesses.columns.get_loc(topic)
                            +        word_topic_indices = np.argmax(word_topic_relatednesses.values, axis=1)
                            +
                            +        def get_word_topic_index(word):
                            +            if word not in word_topic_relatednesses.index:
                            +                return -1
                            +            else:
                            +                return word_topic_indices[
                            +                    word_topic_relatednesses.index.get_loc(word)
                            +                ]
                            +
                            +        index = 0
                            +
                            +        while index < len(words):
                            +            original_index = index
                            +
                            +            if get_word_topic_index(words[index]) != topic_index:
                            +                index += 1
                            +
                            +                continue
                            +
                            +            segment_length = 1
                            +            segment_weight = IntratextCoherenceScore._get_relatedness(
                            +                words[index], topic, word_topic_relatednesses
                            +            )
                            +
                            +            num_out_of_topic_words = 0
                            +
                            +            index += 1
                            +
                            +            while index < len(words) and num_out_of_topic_words < self._max_num_out_of_topic_words:
                            +                if get_word_topic_index(words[index]) != topic_index:
                            +                    num_out_of_topic_words += 1
                            +                else:
                            +                    segment_length += 1
                            +                    segment_weight += IntratextCoherenceScore._get_relatedness(
                            +                        words[index], topic, word_topic_relatednesses
                            +                    )
                            +
                            +                    num_out_of_topic_words = 0
                            +
                            +                index += 1
                            +
                            +            topic_segment_lengths.append(segment_length)
                            +            topic_segment_weights.append(segment_weight)
                            +
                            +            assert index > original_index
                            +
                            +        if len(topic_segment_lengths) == 0:
                            +            return None, None
                            +        else:
                            +            return np.mean(topic_segment_lengths), np.mean(topic_segment_weights)
                            +
                            +    def _sum_relatednesses_over_window(
                            +            self, topic, words, word_topic_relatednesses) -> float:
                            +
                            +        topic_index = word_topic_relatednesses.columns.get_loc(topic)
                            +        word_topic_indices = np.argmax(word_topic_relatednesses.values, axis=1)
                            +
                            +        def get_word_topic_index(word):
                            +            if word not in word_topic_relatednesses.index:
                            +                return -1
                            +            else:
                            +                return word_topic_indices[
                            +                    word_topic_relatednesses.index.get_loc(word)
                            +                ]
                            +
                            +        def find_next_topic_word(starting_index: int) -> int:
                            +            index = starting_index
                            +
                            +            while index < len(words) and\
                            +                    get_word_topic_index(words[index]) != topic_index:
                            +                index += 1
                            +
                            +            if index == len(words):
                            +                return -1  # failed to find next topic word
                            +
                            +            return index
                            +
                            +        word_index = find_next_topic_word(0)
                            +
                            +        if word_index == -1:
                            +            return None
                            +
                            +        sums = list()
                            +
                            +        while word_index < len(words) and word_index != -1:
                            +            original_word_index = word_index
                            +
                            +            window_lower_bound = word_index - int(np.floor(self._window // 2))
                            +            window_upper_bound = word_index + int(np.ceil(self._window // 2))
                            +
                            +            sum_in_window = np.sum(
                            +                [
                            +                    IntratextCoherenceScore._get_relatedness(
                            +                        w, topic, word_topic_relatednesses
                            +                    )
                            +                    for w in words[window_lower_bound:window_upper_bound]
                            +                ]
                            +            )
                            +
                            +            sums.append(sum_in_window)
                            +
                            +            word_index = find_next_topic_word(window_upper_bound)
                            +
                            +            assert word_index > original_word_index or word_index == -1
                            +
                            +        return np.mean(sums)
                            +
                            +    @staticmethod
                            +    def _get_relatedness(
                            +            word, topic, word_topic_relatednesses: pd.DataFrame) -> float:
                            +
                            +        if word in word_topic_relatednesses.index:
                            +            return word_topic_relatednesses.loc[word, topic]
                            +
                            +        # TODO: throw Warning or log somewhere?
                            +        return np.mean(word_topic_relatednesses.values)
                            +

                            Ancestors

                            • BaseScore
                            • @@ -109,6 +609,63 @@

                              Methods

                              +
                              + +Expand source code + +
                              def compute(
                              +        self,
                              +        model: BaseModel,
                              +        topics: List[str] = None,
                              +        documents: List[str] = None
                              +) -> Dict[str, float]:
                              +
                              +    if not isinstance(model, BaseModel):
                              +        raise TypeError(
                              +            f'Got "{type(model)}" as "model". '
                              +            f'Expect it to derive from "BaseModel"')
                              +
                              +    if topics is None:
                              +        topics = IntratextCoherenceScore._get_topics(model)
                              +
                              +    if documents is None:
                              +        documents = list(self._documents)
                              +
                              +    if not isinstance(topics, list):
                              +        raise TypeError(
                              +            f'Got "{type(topics)}" as "topics". Expect list of topic names')
                              +
                              +    if not isinstance(documents, list):
                              +        raise TypeError(
                              +            f'Got "{type(documents)}" as "documents". Expect list of document ids')
                              +
                              +    word_topic_relatednesses = self._get_word_topic_relatednesses(model)
                              +
                              +    topic_document_coherences = np.zeros((len(topics), len(documents)))
                              +    document_indices_with_topic_coherence = defaultdict(list)
                              +
                              +    for document_index, document in enumerate(documents):
                              +        for topic_index, topic in enumerate(topics):
                              +            # TODO: read document text only once for all topics
                              +            topic_coherence = self._compute_coherence(
                              +                topic, document, word_topic_relatednesses)
                              +
                              +            if topic_coherence is not None:
                              +                topic_document_coherences[topic_index, document_index] = topic_coherence
                              +                document_indices_with_topic_coherence[topic].append(document_index)
                              +
                              +    topic_coherences = [
                              +        topic_document_coherences[topic_index, document_indices_with_topic_coherence[topic]]
                              +        if len(document_indices_with_topic_coherence) > 0 else list()
                              +        for topic_index, topic in enumerate(topics)
                              +    ]
                              +
                              +    return dict(zip(
                              +        topics,
                              +        [np.mean(coherence_values) if len(coherence_values) > 0 else None
                              +         for coherence_values in topic_coherences]
                              +    ))
                              +

                              Inherited members

                              @@ -135,6 +692,48 @@

                              Parameters

                              token_threshold : float
                              what probabilities to take as token belonging to the topic
                              +
                              + +Expand source code + +
                              class ScoreExample(BaseScore):
                              +    """
                              +    Example score that calculates
                              +    average size of topic kernel across all topics.
                              +    We inherit from BaseScore in order to have self.value property and self.update() method
                              +    (the internal logic of TopicNet relies on them)
                              +
                              +    """
                              +    def __init__(self, token_threshold=1e-3):
                              +        """
                              +
                              +        Parameters
                              +        ----------
                              +        token_threshold : float
                              +            what probabilities to take as token belonging to the topic
                              +
                              +        """
                              +        super().__init__()
                              +        self.threshold = token_threshold
                              +
                              +    def call(self, model):
                              +        """
                              +        Method that calculates the score
                              +
                              +        Parameters
                              +        ----------
                              +        model : TopicModel
                              +
                              +        Returns
                              +        -------
                              +        score : float
                              +            mean kernel size for all topics in the model
                              +
                              +        """
                              +        phi = model.get_phi().values
                              +        score = np.sum((phi > self.threshold).astype('int'), axis=0).mean()
                              +        return score
                              +

                              Ancestors

                              • BaseScore
                              • @@ -156,6 +755,28 @@

                                Returns

                                score : float
                                mean kernel size for all topics in the model
                                +
                                + +Expand source code + +
                                def call(self, model):
                                +    """
                                +    Method that calculates the score
                                +
                                +    Parameters
                                +    ----------
                                +    model : TopicModel
                                +
                                +    Returns
                                +    -------
                                +    score : float
                                +        mean kernel size for all topics in the model
                                +
                                +    """
                                +    phi = model.get_phi().values
                                +    score = np.sum((phi > self.threshold).astype('int'), axis=0).mean()
                                +    return score
                                +

                                Inherited members

                                @@ -182,6 +803,73 @@

                                Parameters

                                batch_vectorizer
                                 
                                +
                                + +Expand source code + +
                                class SemanticRaduisScore(BaseScore):
                                +    """
                                +    This score implements cluster semantic radius, described in paper
                                +    'Проверка гипотезы условной независимости 
                                +    для оценивания качества тематической кластеризации' by Rogozina A.
                                +    At the core this score helps to discover topics uniformity.
                                +    The lower this score - better
                                +    """  # noqa: W291
                                +    def __init__(self, batch_vectorizer):
                                +        """
                                +
                                +        Parameters
                                +        ----------
                                +        batch_vectorizer
                                +
                                +        """
                                +        super().__init__()
                                +        self.batch_vectorizer = batch_vectorizer
                                +
                                +    def update(self, score):
                                +        known_errors = (ValueError, TypeError)
                                +        try:
                                +            score = np.array(score, float)
                                +        except known_errors:
                                +            raise ValueError(f'Score call should return list of float but not {score}')
                                +        self.value.append(score)
                                +
                                +    def call(self, model, max_sampled_document_len=None, sample_step=5, sample_size=3, alpha=0.1):
                                +        """
                                +
                                +        Parameters
                                +        ----------
                                +        model : TopicModel
                                +        max_sampled_document_len : int
                                +            Maximum length of pseudo-document for quantile regression
                                +            (Default value = None)
                                +        sample_step : int
                                +            Grain for quantile regression
                                +            (Default value = 5)
                                +        sample_size : int
                                +            Size of every sample for quantile regression  
                                +            (Default value = 3)
                                +        alpha : float
                                +            (1 - alpha) quantile level, must be <= 1  
                                +            (Default value = 0.1)
                                +
                                +        """  # noqa: W291
                                +        ntdw, ntd, nwt, nt = calculate_n(model._model, self.batch_vectorizer)
                                +
                                +        if max_sampled_document_len is None:
                                +            max_sampled_document_len = int(np.max(ntd.values))
                                +
                                +        regression_coeffs = radii_vs_ntd(
                                +            max_sampled_document_len, sample_step, sample_size, nwt, nt, alpha
                                +        )
                                +        radii = [
                                +            radius_for_ntd(topic_ntd, coeff)
                                +            for topic_ntd, coeff
                                +            in zip(ntd.values.mean(axis=1), regression_coeffs)
                                +        ]
                                +
                                +        return radii
                                +

                                Ancestors

                                • BaseScore
                                • @@ -209,6 +897,46 @@

                                  Methods

                                  (1 - alpha) quantile level, must be <= 1
                                  (Default value = 0.1)
                                  +
                                  + +Expand source code + +
                                  def call(self, model, max_sampled_document_len=None, sample_step=5, sample_size=3, alpha=0.1):
                                  +    """
                                  +
                                  +    Parameters
                                  +    ----------
                                  +    model : TopicModel
                                  +    max_sampled_document_len : int
                                  +        Maximum length of pseudo-document for quantile regression
                                  +        (Default value = None)
                                  +    sample_step : int
                                  +        Grain for quantile regression
                                  +        (Default value = 5)
                                  +    sample_size : int
                                  +        Size of every sample for quantile regression  
                                  +        (Default value = 3)
                                  +    alpha : float
                                  +        (1 - alpha) quantile level, must be <= 1  
                                  +        (Default value = 0.1)
                                  +
                                  +    """  # noqa: W291
                                  +    ntdw, ntd, nwt, nt = calculate_n(model._model, self.batch_vectorizer)
                                  +
                                  +    if max_sampled_document_len is None:
                                  +        max_sampled_document_len = int(np.max(ntd.values))
                                  +
                                  +    regression_coeffs = radii_vs_ntd(
                                  +        max_sampled_document_len, sample_step, sample_size, nwt, nt, alpha
                                  +    )
                                  +    radii = [
                                  +        radius_for_ntd(topic_ntd, coeff)
                                  +        for topic_ntd, coeff
                                  +        in zip(ntd.values.mean(axis=1), regression_coeffs)
                                  +    ]
                                  +
                                  +    return radii
                                  +

                                  Inherited members

                                  @@ -263,7 +991,9 @@

                                  + + \ No newline at end of file diff --git a/docs/cooking_machine/models/semantic_radius_score.html b/docs/cooking_machine/models/semantic_radius_score.html index f155e05..de0bddc 100644 --- a/docs/cooking_machine/models/semantic_radius_score.html +++ b/docs/cooking_machine/models/semantic_radius_score.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.models.semantic_radius_score API documentation - + + @@ -19,6 +20,197 @@

                                  Module topicnet.cooking_machine.models.semantic_radius_score

                                  +
                                  + +Expand source code + +
                                  import artm
                                  +import pandas as pd
                                  +import numpy as np
                                  +from collections import Counter
                                  +from scipy.optimize import curve_fit
                                  +from .base_score import BaseScore
                                  +
                                  +# change log style
                                  +lc = artm.messages.ConfigureLoggingArgs()
                                  +lc.minloglevel = 3
                                  +lib = artm.wrapper.LibArtm(logging_config=lc)
                                  +
                                  +
                                  +def calculate_n(model, batch_vectorizer):
                                  +    """
                                  +    Calculate all necessary statistics from batch. This may take some time.
                                  +    """
                                  +    tokens = []
                                  +    for batch_id in range(len(batch_vectorizer._batches_list)):
                                  +        batch_name = batch_vectorizer._batches_list[batch_id]._filename
                                  +        batch = artm.messages.Batch()
                                  +        with open(batch_name, "rb") as f:
                                  +            batch.ParseFromString(f.read())
                                  +
                                  +        for item_id in range(len(batch.item)):
                                  +            item = batch.item[item_id]
                                  +            for token_id in item.token_id:
                                  +                tokens.append(batch.token[token_id])
                                  +
                                  +    ntdw = model.transform(batch_vectorizer=batch_vectorizer, theta_matrix_type='dense_ptdw')
                                  +    docs = ntdw.columns
                                  +    ntdw.columns = pd.MultiIndex.from_arrays([docs, tokens], names=('doc', 'token'))
                                  +
                                  +    ntd = ntdw.groupby(level=0, axis=1).sum()
                                  +
                                  +    nwt = ntdw.groupby(level=1, axis=1).sum().T
                                  +
                                  +    nt = nwt.sum(axis=0)
                                  +
                                  +    return ntdw, ntd, nwt, nt
                                  +
                                  +
                                  +def synthetic_doc_ntdw_and_ntd(doc_len, nwt):
                                  +    """
                                  +    Create synthetic document from nwt with specific doc_len.
                                  +    """
                                  +    pwt = np.float64(nwt) / np.sum(np.float64(nwt)).astype(float)
                                  +    doc_idx = np.random.choice(len(pwt), doc_len, p=pwt)
                                  +    doc_count = dict(Counter(doc_idx))
                                  +
                                  +    ntdw = np.empty((len(pwt)))
                                  +    for word_idx in range(len(ntdw)):
                                  +        ntdw[word_idx] = doc_count.get(word_idx, 0)
                                  +    ntd = np.sum(ntdw)
                                  +
                                  +    return ntdw, ntd
                                  +
                                  +
                                  +def cressie_reed_sampled(topic, ntdw_calc, ntd_calc, nwt, nt, gimel=-1/2):
                                  +    """
                                  +    Calculate Cressie-Reed divergence for sampled pseudo-document.
                                  +    """
                                  +    mul_part = ntd_calc * nwt.iloc[:, topic]
                                  +
                                  +    if np.all(ntdw_calc == 0) or nt[topic] == 0 or np.all(mul_part == 0):
                                  +        gimel_part = np.array([0])
                                  +    else:
                                  +        gimel_part = 0
                                  +        for token_id, token in enumerate(nwt.index):
                                  +            token_ntdw = ntdw_calc[token_id]
                                  +            token_denom = mul_part.iloc[token_id]
                                  +            if token_ntdw and token_denom:
                                  +                gimel_part += token_ntdw * (
                                  +                    np.power(token_ntdw * nt[topic] / token_denom, gimel) - 1
                                  +                )
                                  +
                                  +    cressie_reed_for_l = 2 / (gimel * (gimel + 1)) * np.sum(gimel_part)
                                  +
                                  +    return cressie_reed_for_l
                                  +
                                  +
                                  +def third_degree(x, a, b, c, d):
                                  +    return a + b * x + c * x ** 2 + d * x ** 3
                                  +
                                  +
                                  +def radius_vs_ndt(topic, max_len, sample_step, sample_size, nwt, nt, alpha):
                                  +    """
                                  +    Calculate third degree approximation for radius vs ndt dependency.
                                  +    """
                                  +    crs_for_alpha = []
                                  +    ntds_sampled = []
                                  +    for doc_len in range(1, max_len, sample_step):
                                  +        local_crs_for_alpha = []
                                  +        for _ in range(sample_size):
                                  +            ntdw_sampled, ntd_sampled = synthetic_doc_ntdw_and_ntd(doc_len, nwt.iloc[:, topic])
                                  +            local_crs_for_alpha.append(cressie_reed_sampled(
                                  +                topic, ntdw_sampled, ntd_sampled, nwt, nt
                                  +            ))
                                  +
                                  +        crs_for_alpha.append(np.quantile(local_crs_for_alpha, 1 - alpha))
                                  +        ntds_sampled.append(ntd_sampled)
                                  +
                                  +    regression_coeff, cov = curve_fit(third_degree, ntds_sampled, crs_for_alpha)
                                  +    return regression_coeff
                                  +
                                  +
                                  +def radii_vs_ntd(max_len, sample_step, sample_size, nwt, nt, alpha):
                                  +    regression_coeffs = []
                                  +    for topic in range(len(nt)):
                                  +        regression_coeffs.append(radius_vs_ndt(
                                  +            topic, max_len, sample_step, sample_size, nwt, nt, alpha
                                  +        ))
                                  +
                                  +    return regression_coeffs
                                  +
                                  +
                                  +def radius_for_ntd(ntd, regression_coeff):
                                  +    return third_degree(ntd, *regression_coeff)
                                  +
                                  +
                                  +def radii_for_ntd(ntd, regression_coeff):
                                  +    return ntd.apply(lambda x: third_degree(x, *regression_coeff))
                                  +
                                  +
                                  +class SemanticRaduisScore(BaseScore):
                                  +    """
                                  +    This score implements cluster semantic radius, described in paper
                                  +    'Проверка гипотезы условной независимости 
                                  +    для оценивания качества тематической кластеризации' by Rogozina A.
                                  +    At the core this score helps to discover topics uniformity.
                                  +    The lower this score - better
                                  +    """  # noqa: W291
                                  +    def __init__(self, batch_vectorizer):
                                  +        """
                                  +
                                  +        Parameters
                                  +        ----------
                                  +        batch_vectorizer
                                  +
                                  +        """
                                  +        super().__init__()
                                  +        self.batch_vectorizer = batch_vectorizer
                                  +
                                  +    def update(self, score):
                                  +        known_errors = (ValueError, TypeError)
                                  +        try:
                                  +            score = np.array(score, float)
                                  +        except known_errors:
                                  +            raise ValueError(f'Score call should return list of float but not {score}')
                                  +        self.value.append(score)
                                  +
                                  +    def call(self, model, max_sampled_document_len=None, sample_step=5, sample_size=3, alpha=0.1):
                                  +        """
                                  +
                                  +        Parameters
                                  +        ----------
                                  +        model : TopicModel
                                  +        max_sampled_document_len : int
                                  +            Maximum length of pseudo-document for quantile regression
                                  +            (Default value = None)
                                  +        sample_step : int
                                  +            Grain for quantile regression
                                  +            (Default value = 5)
                                  +        sample_size : int
                                  +            Size of every sample for quantile regression  
                                  +            (Default value = 3)
                                  +        alpha : float
                                  +            (1 - alpha) quantile level, must be <= 1  
                                  +            (Default value = 0.1)
                                  +
                                  +        """  # noqa: W291
                                  +        ntdw, ntd, nwt, nt = calculate_n(model._model, self.batch_vectorizer)
                                  +
                                  +        if max_sampled_document_len is None:
                                  +            max_sampled_document_len = int(np.max(ntd.values))
                                  +
                                  +        regression_coeffs = radii_vs_ntd(
                                  +            max_sampled_document_len, sample_step, sample_size, nwt, nt, alpha
                                  +        )
                                  +        radii = [
                                  +            radius_for_ntd(topic_ntd, coeff)
                                  +            for topic_ntd, coeff
                                  +            in zip(ntd.values.mean(axis=1), regression_coeffs)
                                  +        ]
                                  +
                                  +        return radii
                                  +
                                  @@ -32,48 +224,183 @@

                                  Functions

                                  Calculate all necessary statistics from batch. This may take some time.

                                  +
                                  + +Expand source code + +
                                  def calculate_n(model, batch_vectorizer):
                                  +    """
                                  +    Calculate all necessary statistics from batch. This may take some time.
                                  +    """
                                  +    tokens = []
                                  +    for batch_id in range(len(batch_vectorizer._batches_list)):
                                  +        batch_name = batch_vectorizer._batches_list[batch_id]._filename
                                  +        batch = artm.messages.Batch()
                                  +        with open(batch_name, "rb") as f:
                                  +            batch.ParseFromString(f.read())
                                  +
                                  +        for item_id in range(len(batch.item)):
                                  +            item = batch.item[item_id]
                                  +            for token_id in item.token_id:
                                  +                tokens.append(batch.token[token_id])
                                  +
                                  +    ntdw = model.transform(batch_vectorizer=batch_vectorizer, theta_matrix_type='dense_ptdw')
                                  +    docs = ntdw.columns
                                  +    ntdw.columns = pd.MultiIndex.from_arrays([docs, tokens], names=('doc', 'token'))
                                  +
                                  +    ntd = ntdw.groupby(level=0, axis=1).sum()
                                  +
                                  +    nwt = ntdw.groupby(level=1, axis=1).sum().T
                                  +
                                  +    nt = nwt.sum(axis=0)
                                  +
                                  +    return ntdw, ntd, nwt, nt
                                  +
                                  def cressie_reed_sampled(topic, ntdw_calc, ntd_calc, nwt, nt, gimel=-0.5)

                                  Calculate Cressie-Reed divergence for sampled pseudo-document.

                                  +
                                  + +Expand source code + +
                                  def cressie_reed_sampled(topic, ntdw_calc, ntd_calc, nwt, nt, gimel=-1/2):
                                  +    """
                                  +    Calculate Cressie-Reed divergence for sampled pseudo-document.
                                  +    """
                                  +    mul_part = ntd_calc * nwt.iloc[:, topic]
                                  +
                                  +    if np.all(ntdw_calc == 0) or nt[topic] == 0 or np.all(mul_part == 0):
                                  +        gimel_part = np.array([0])
                                  +    else:
                                  +        gimel_part = 0
                                  +        for token_id, token in enumerate(nwt.index):
                                  +            token_ntdw = ntdw_calc[token_id]
                                  +            token_denom = mul_part.iloc[token_id]
                                  +            if token_ntdw and token_denom:
                                  +                gimel_part += token_ntdw * (
                                  +                    np.power(token_ntdw * nt[topic] / token_denom, gimel) - 1
                                  +                )
                                  +
                                  +    cressie_reed_for_l = 2 / (gimel * (gimel + 1)) * np.sum(gimel_part)
                                  +
                                  +    return cressie_reed_for_l
                                  +
                                  def radii_for_ntd(ntd, regression_coeff)
                                  +
                                  + +Expand source code + +
                                  def radii_for_ntd(ntd, regression_coeff):
                                  +    return ntd.apply(lambda x: third_degree(x, *regression_coeff))
                                  +
                                  def radii_vs_ntd(max_len, sample_step, sample_size, nwt, nt, alpha)
                                  +
                                  + +Expand source code + +
                                  def radii_vs_ntd(max_len, sample_step, sample_size, nwt, nt, alpha):
                                  +    regression_coeffs = []
                                  +    for topic in range(len(nt)):
                                  +        regression_coeffs.append(radius_vs_ndt(
                                  +            topic, max_len, sample_step, sample_size, nwt, nt, alpha
                                  +        ))
                                  +
                                  +    return regression_coeffs
                                  +
                                  def radius_for_ntd(ntd, regression_coeff)
                                  +
                                  + +Expand source code + +
                                  def radius_for_ntd(ntd, regression_coeff):
                                  +    return third_degree(ntd, *regression_coeff)
                                  +
                                  def radius_vs_ndt(topic, max_len, sample_step, sample_size, nwt, nt, alpha)

                                  Calculate third degree approximation for radius vs ndt dependency.

                                  +
                                  + +Expand source code + +
                                  def radius_vs_ndt(topic, max_len, sample_step, sample_size, nwt, nt, alpha):
                                  +    """
                                  +    Calculate third degree approximation for radius vs ndt dependency.
                                  +    """
                                  +    crs_for_alpha = []
                                  +    ntds_sampled = []
                                  +    for doc_len in range(1, max_len, sample_step):
                                  +        local_crs_for_alpha = []
                                  +        for _ in range(sample_size):
                                  +            ntdw_sampled, ntd_sampled = synthetic_doc_ntdw_and_ntd(doc_len, nwt.iloc[:, topic])
                                  +            local_crs_for_alpha.append(cressie_reed_sampled(
                                  +                topic, ntdw_sampled, ntd_sampled, nwt, nt
                                  +            ))
                                  +
                                  +        crs_for_alpha.append(np.quantile(local_crs_for_alpha, 1 - alpha))
                                  +        ntds_sampled.append(ntd_sampled)
                                  +
                                  +    regression_coeff, cov = curve_fit(third_degree, ntds_sampled, crs_for_alpha)
                                  +    return regression_coeff
                                  +
                                  def synthetic_doc_ntdw_and_ntd(doc_len, nwt)

                                  Create synthetic document from nwt with specific doc_len.

                                  +
                                  + +Expand source code + +
                                  def synthetic_doc_ntdw_and_ntd(doc_len, nwt):
                                  +    """
                                  +    Create synthetic document from nwt with specific doc_len.
                                  +    """
                                  +    pwt = np.float64(nwt) / np.sum(np.float64(nwt)).astype(float)
                                  +    doc_idx = np.random.choice(len(pwt), doc_len, p=pwt)
                                  +    doc_count = dict(Counter(doc_idx))
                                  +
                                  +    ntdw = np.empty((len(pwt)))
                                  +    for word_idx in range(len(ntdw)):
                                  +        ntdw[word_idx] = doc_count.get(word_idx, 0)
                                  +    ntd = np.sum(ntdw)
                                  +
                                  +    return ntdw, ntd
                                  +
                                  def third_degree(x, a, b, c, d)
                                  +
                                  + +Expand source code + +
                                  def third_degree(x, a, b, c, d):
                                  +    return a + b * x + c * x ** 2 + d * x ** 3
                                  +
                                  @@ -95,6 +422,73 @@

                                  Parameters

                                  batch_vectorizer
                                   
                                  +
                                  + +Expand source code + +
                                  class SemanticRaduisScore(BaseScore):
                                  +    """
                                  +    This score implements cluster semantic radius, described in paper
                                  +    'Проверка гипотезы условной независимости 
                                  +    для оценивания качества тематической кластеризации' by Rogozina A.
                                  +    At the core this score helps to discover topics uniformity.
                                  +    The lower this score - better
                                  +    """  # noqa: W291
                                  +    def __init__(self, batch_vectorizer):
                                  +        """
                                  +
                                  +        Parameters
                                  +        ----------
                                  +        batch_vectorizer
                                  +
                                  +        """
                                  +        super().__init__()
                                  +        self.batch_vectorizer = batch_vectorizer
                                  +
                                  +    def update(self, score):
                                  +        known_errors = (ValueError, TypeError)
                                  +        try:
                                  +            score = np.array(score, float)
                                  +        except known_errors:
                                  +            raise ValueError(f'Score call should return list of float but not {score}')
                                  +        self.value.append(score)
                                  +
                                  +    def call(self, model, max_sampled_document_len=None, sample_step=5, sample_size=3, alpha=0.1):
                                  +        """
                                  +
                                  +        Parameters
                                  +        ----------
                                  +        model : TopicModel
                                  +        max_sampled_document_len : int
                                  +            Maximum length of pseudo-document for quantile regression
                                  +            (Default value = None)
                                  +        sample_step : int
                                  +            Grain for quantile regression
                                  +            (Default value = 5)
                                  +        sample_size : int
                                  +            Size of every sample for quantile regression  
                                  +            (Default value = 3)
                                  +        alpha : float
                                  +            (1 - alpha) quantile level, must be <= 1  
                                  +            (Default value = 0.1)
                                  +
                                  +        """  # noqa: W291
                                  +        ntdw, ntd, nwt, nt = calculate_n(model._model, self.batch_vectorizer)
                                  +
                                  +        if max_sampled_document_len is None:
                                  +            max_sampled_document_len = int(np.max(ntd.values))
                                  +
                                  +        regression_coeffs = radii_vs_ntd(
                                  +            max_sampled_document_len, sample_step, sample_size, nwt, nt, alpha
                                  +        )
                                  +        radii = [
                                  +            radius_for_ntd(topic_ntd, coeff)
                                  +            for topic_ntd, coeff
                                  +            in zip(ntd.values.mean(axis=1), regression_coeffs)
                                  +        ]
                                  +
                                  +        return radii
                                  +

                                  Ancestors

                                  • BaseScore
                                  • @@ -122,6 +516,46 @@

                                    Methods

                                    (1 - alpha) quantile level, must be <= 1
                                    (Default value = 0.1)
                                    +
                                    + +Expand source code + +
                                    def call(self, model, max_sampled_document_len=None, sample_step=5, sample_size=3, alpha=0.1):
                                    +    """
                                    +
                                    +    Parameters
                                    +    ----------
                                    +    model : TopicModel
                                    +    max_sampled_document_len : int
                                    +        Maximum length of pseudo-document for quantile regression
                                    +        (Default value = None)
                                    +    sample_step : int
                                    +        Grain for quantile regression
                                    +        (Default value = 5)
                                    +    sample_size : int
                                    +        Size of every sample for quantile regression  
                                    +        (Default value = 3)
                                    +    alpha : float
                                    +        (1 - alpha) quantile level, must be <= 1  
                                    +        (Default value = 0.1)
                                    +
                                    +    """  # noqa: W291
                                    +    ntdw, ntd, nwt, nt = calculate_n(model._model, self.batch_vectorizer)
                                    +
                                    +    if max_sampled_document_len is None:
                                    +        max_sampled_document_len = int(np.max(ntd.values))
                                    +
                                    +    regression_coeffs = radii_vs_ntd(
                                    +        max_sampled_document_len, sample_step, sample_size, nwt, nt, alpha
                                    +    )
                                    +    radii = [
                                    +        radius_for_ntd(topic_ntd, coeff)
                                    +        for topic_ntd, coeff
                                    +        in zip(ntd.values.mean(axis=1), regression_coeffs)
                                    +    ]
                                    +
                                    +    return radii
                                    +

                                    Inherited members

                                    @@ -173,7 +607,9 @@

                                    -

                                    Generated by pdoc 0.6.3.

                                    +

                                    Generated by pdoc 0.7.2.

                                    + + \ No newline at end of file diff --git a/docs/cooking_machine/models/topic_model.html b/docs/cooking_machine/models/topic_model.html index 24c8c3c..4ac5d07 100644 --- a/docs/cooking_machine/models/topic_model.html +++ b/docs/cooking_machine/models/topic_model.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.models.topic_model API documentation - + + @@ -19,6 +20,759 @@

                                    Module topicnet.cooking_machine.models.topic_model

                                    +
                                    + +Expand source code + +
                                    from .base_model import BaseModel
                                    +from .frozen_score import FrozenScore
                                    +from ..routine import transform_complex_entity_to_dict
                                    +
                                    +import os
                                    +import json
                                    +import glob
                                    +import dill
                                    +import pickle
                                    +import shutil
                                    +import pandas as pd
                                    +import warnings
                                    +import inspect
                                    +
                                    +import artm
                                    +from artm.wrapper.exceptions import ArtmException
                                    +
                                    +from six import iteritems
                                    +from copy import deepcopy
                                    +
                                    +from inspect import signature
                                    +
                                    +# change log style
                                    +lc = artm.messages.ConfigureLoggingArgs()
                                    +lc.minloglevel = 3
                                    +lib = artm.wrapper.LibArtm(logging_config=lc)
                                    +
                                    +ARTM_NINE = artm.version().split(".")[1] == "9"
                                    +
                                    +SUPPORTED_SCORES_WITHOUT_VALUE_PROPERTY = (
                                    +    artm.score_tracker.TopTokensScoreTracker,
                                    +    artm.score_tracker.ThetaSnippetScoreTracker,
                                    +    artm.score_tracker.TopicKernelScoreTracker,
                                    +)
                                    +
                                    +
                                    +class TopicModel(BaseModel):
                                    +    """
                                    +    Topic Model contains artm model and all necessary information: scores, training pipeline, etc.
                                    +
                                    +    """
                                    +    def __init__(self, artm_model=None, model_id=None,
                                    +                 parent_model_id=None, data_path=None,
                                    +                 description=None, experiment=None,
                                    +                 callbacks=list(), depth=0, scores=dict(),
                                    +                 custom_scores=dict(), custom_regularizers=dict(),
                                    +                 *args, **kwargs):
                                    +        """
                                    +        Initialize stage, also used for loading previously saved experiments.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        artm_model : artm model or None
                                    +            model to use, None if you want to create model (Default value = None)
                                    +        model_id : str
                                    +            model id (Default value = None)
                                    +        parent_model_id : str
                                    +            model id from which current model was created (Default value = None)
                                    +        data_path : str
                                    +            path to the data (Default value = None)
                                    +        description : list of dict
                                    +            description of the model (Default value = None)
                                    +        experiment : Experiment
                                    +            the experiment to which the model is bound (Default value = None)
                                    +        callbacks : list of objects with invoke() method
                                    +            function called inside _fit which alters model parameters
                                    +            mainly used for fancy regularizer coefficients manipulation
                                    +        custom_scores : dict
                                    +            dictionary with score names as keys and score classes as functions
                                    +            (score class with functionality like those of BaseScore)
                                    +        custom_regularizers : dict
                                    +            dictionary with regularizer names as keys and regularizer classes as values
                                    +
                                    +        """
                                    +        super().__init__(model_id=model_id, parent_model_id=parent_model_id,
                                    +                         experiment=experiment, *args, **kwargs)
                                    +
                                    +        self.callbacks = list(callbacks)
                                    +
                                    +        if artm_model is None:
                                    +            artm_ARTM_args = inspect.getfullargspec(artm.ARTM).args
                                    +            kwargs = {k: v for k, v in kwargs.items() if k in artm_ARTM_args}
                                    +
                                    +            try:
                                    +                self._model = artm.ARTM(**kwargs)
                                    +            except ArtmException as e:
                                    +                error_message = repr(e)
                                    +                raise ValueError(
                                    +                    f'Cannot create artm model with parameters {kwargs}.\n'
                                    +                    "ARTM failed with following: " + error_message
                                    +                )
                                    +        else:
                                    +            self._model = artm_model
                                    +
                                    +        self.data_path = data_path
                                    +        self.custom_scores = custom_scores
                                    +        self.custom_regularizers = custom_regularizers
                                    +
                                    +        self._score_caches = None  # returned by model.score, reset by model._fit
                                    +
                                    +        self._description = []
                                    +        if description is None and self._model._initialized:
                                    +            init_params = self.get_jsonable_from_parameters()
                                    +            self._description = [{"action": "init",
                                    +                                  "params": [init_params]}]
                                    +        else:
                                    +            self._description = description
                                    +
                                    +    def __getattr__(self, attr_name):
                                    +        return getattr(self._model, attr_name)
                                    +
                                    +    def _get_all_scores(self):
                                    +        if len(self._model.score_tracker.items()) == 0:
                                    +            yield from {
                                    +                key: FrozenScore(list())
                                    +                for key in self._model.scores.data.keys()
                                    +            }.items()
                                    +        yield from self._model.score_tracker.items()
                                    +
                                    +        if self.custom_scores is not None:  # default is dict(), but maybe better to set None?
                                    +            yield from self.custom_scores.items()
                                    +
                                    +    def _reset_score_caches(self):
                                    +        self._score_caches = None
                                    +
                                    +    def _compute_score_values(self):
                                    +        def get_score_properties_and_values(score_name, score_object):
                                    +            for internal_name in dir(score_object):
                                    +                if internal_name.startswith('_') or internal_name.startswith('last'):
                                    +                    continue
                                    +
                                    +                score_property_name = score_name + '.' + internal_name
                                    +
                                    +                yield score_property_name, getattr(score_object, internal_name)
                                    +
                                    +        score_values = dict()
                                    +
                                    +        for score_name, score_object in self._get_all_scores():
                                    +            try:
                                    +                score_values[score_name] = getattr(score_object, 'value')
                                    +            except AttributeError:
                                    +                if not isinstance(score_object, SUPPORTED_SCORES_WITHOUT_VALUE_PROPERTY):
                                    +                    warnings.warn(f'Score "{str(score_object.__class__)}" is not supported')
                                    +                    continue
                                    +
                                    +                for score_property_name, value in get_score_properties_and_values(
                                    +                        score_name, score_object):
                                    +
                                    +                    score_values[score_property_name] = value
                                    +
                                    +        return score_values
                                    +
                                    +    def _fit(self, dataset_trainable, num_iterations, custom_regularizers=dict()):
                                    +        """
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        dataset_trainable : BatchVectorizer
                                    +            Data for model fit
                                    +        num_iterations : int
                                    +            Amount of fit steps
                                    +        custom_regularizers : dict of BaseRegularizer
                                    +            Regularizers to apply to model
                                    +
                                    +        """
                                    +        all_custom_regularizers = deepcopy(custom_regularizers)
                                    +        all_custom_regularizers.update(self.custom_regularizers)
                                    +
                                    +        if len(all_custom_regularizers) != 0:
                                    +            for regularizer in all_custom_regularizers.values():
                                    +                regularizer.attach(self._model)
                                    +
                                    +            base_regularizers_name = [regularizer.name
                                    +                                      for regularizer in self._model.regularizers.data.values()]
                                    +            base_regularizers_tau = [regularizer.tau
                                    +                                     for regularizer in self._model.regularizers.data.values()]
                                    +
                                    +        for cur_iter in range(num_iterations):
                                    +            self._model.fit_offline(batch_vectorizer=dataset_trainable,
                                    +                                    num_collection_passes=1)
                                    +
                                    +            if len(all_custom_regularizers) != 0:
                                    +                self._apply_custom_regularizers(
                                    +                    dataset_trainable, all_custom_regularizers,
                                    +                    base_regularizers_name, base_regularizers_tau
                                    +                )
                                    +
                                    +            for name, custom_score in self.custom_scores.items():
                                    +                try:
                                    +                    score = custom_score.call(self)
                                    +                    custom_score.update(score)
                                    +                    self._model.score_tracker[name] = custom_score
                                    +                except AttributeError:  # TODO: means no "call" attribute?
                                    +                    raise AttributeError(f'Score {name} doesn\'t have a desired attribute')
                                    +
                                    +            # TODO: think about performance issues
                                    +            for callback_agent in self.callbacks:
                                    +                callback_agent.invoke(self, cur_iter)
                                    +
                                    +            self._reset_score_caches()
                                    +
                                    +    def _apply_custom_regularizers(self, dataset_trainable, custom_regularizers,
                                    +                                   base_regularizers_name, base_regularizers_tau):
                                    +        """
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        dataset_trainable : BatchVectorizer
                                    +            Data for model fit
                                    +        custom_regularizers : dict of BaseRegularizer
                                    +            Regularizers to apply to model
                                    +        base_regularizers_name : list of str
                                    +            List with all artm.regularizers names, applied to model
                                    +        base_regularizers_tau : list of float
                                    +            List with tau for all artm.regularizers, applied to model
                                    +
                                    +        """
                                    +        pwt = self._model.get_phi(model_name=self._model.model_pwt)
                                    +        nwt = self._model.get_phi(model_name=self._model.model_nwt)
                                    +        rwt_name = 'rwt'
                                    +
                                    +        self._model.master.regularize_model(pwt=self._model.model_pwt,
                                    +                                            nwt=self._model.model_nwt,
                                    +                                            rwt=rwt_name,
                                    +                                            regularizer_name=base_regularizers_name,
                                    +                                            regularizer_tau=base_regularizers_tau)
                                    +
                                    +        (meta, nd_array) = self._model.master.attach_model(rwt_name)
                                    +        attached_rwt = pd.DataFrame(data=nd_array, columns=meta.topic_name, index=meta.token)
                                    +
                                    +        for regularizer in custom_regularizers.values():
                                    +            attached_rwt.values[:, :] += regularizer.grad(pwt, nwt)
                                    +
                                    +        self._model.master.normalize_model(pwt=self._model.model_pwt,
                                    +                                           nwt=self._model.model_nwt,
                                    +                                           rwt=rwt_name)
                                    +
                                    +    def get_jsonable_from_parameters(self):
                                    +        """
                                    +        Gets artm model params.
                                    +
                                    +        Returns
                                    +        -------
                                    +        dict
                                    +            artm model parameters
                                    +
                                    +        """
                                    +        parameters = transform_complex_entity_to_dict(self._model)
                                    +
                                    +        regularizers = {}
                                    +        for name, regularizer in iteritems(self._model._regularizers.data):
                                    +            tau = None
                                    +            gamma = None
                                    +            try:
                                    +                tau = regularizer.tau
                                    +                gamma = regularizer.gamma
                                    +            except KeyError:
                                    +                pass
                                    +            regularizers[name] = [str(regularizer.config), tau, gamma]
                                    +        for name, regularizer in iteritems(self.custom_regularizers):
                                    +            tau = getattr(regularizer, 'tau', None)
                                    +            gamma = getattr(regularizer, 'gamma', None)
                                    +            config = str(getattr(regularizer, 'config', ''))
                                    +            regularizers[name] = [config, tau, gamma]
                                    +
                                    +        parameters['regularizers'] = regularizers
                                    +        parameters['version'] = artm.version()
                                    +
                                    +        return parameters
                                    +
                                    +    def get_init_parameters(self, not_include=list()):
                                    +        init_artm_parameter_names = [
                                    +            p.name for p in list(signature(artm.ARTM.__init__).parameters.values())
                                    +        ][1:]
                                    +        parameters = transform_complex_entity_to_dict(self._model)
                                    +        filtered = dict()
                                    +        for parameter_name, parameter_value in parameters.items():
                                    +            if parameter_name not in not_include and parameter_name in init_artm_parameter_names:
                                    +                filtered[parameter_name] = parameter_value
                                    +        return filtered
                                    +
                                    +    def save_custom_regularizers(self, model_save_path=None):
                                    +        if model_save_path is None:
                                    +            model_save_path = self.model_default_save_path
                                    +
                                    +        for regularizer_name, regularizer_object in self.custom_regularizers.items():
                                    +            try:
                                    +                save_path = os.path.join(model_save_path, regularizer_name + '.rd')
                                    +                with open(save_path, 'wb') as reg_f:
                                    +                    dill.dump(regularizer_object, reg_f)
                                    +            except (TypeError, AttributeError):
                                    +                try:
                                    +                    save_path = os.path.join(model_save_path, regularizer_name + '.rp')
                                    +                    with open(save_path, 'wb') as reg_f:
                                    +                        pickle.dump(regularizer_object, reg_f)
                                    +                except (TypeError, AttributeError):
                                    +                    warnings.warn(f'Cannot save {regularizer_name} regularizer.')
                                    +
                                    +    def save(self,
                                    +             model_save_path=None,
                                    +             phi=True,
                                    +             theta=False,
                                    +             dataset=None,):
                                    +        """
                                    +        Saves model description and dumps artm model.
                                    +        Use this method if you want to dump the model.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        model_save_path : str
                                    +            path to the folder with dumped info about model
                                    +        phi : bool
                                    +            save phi in csv format if True
                                    +        theta : bool
                                    +            save theta in csv format if True
                                    +        dataset : Dataset
                                    +             dataset
                                    +
                                    +        """
                                    +        if model_save_path is None:
                                    +            model_save_path = self.model_default_save_path
                                    +
                                    +        if not os.path.exists(model_save_path):
                                    +            os.makedirs(model_save_path)
                                    +        if phi:
                                    +            self._model.get_phi().to_csv(f"{model_save_path}/phi.csv")
                                    +        if theta:
                                    +            self.get_theta(dataset=dataset).to_csv(f"{model_save_path}/theta.csv")
                                    +
                                    +        model_itself_save_path = f"{model_save_path}/model"
                                    +
                                    +        if os.path.exists(model_itself_save_path):
                                    +            shutil.rmtree(model_itself_save_path)
                                    +        self._model.dump_artm_model(model_itself_save_path)
                                    +        self.save_parameters(model_save_path)
                                    +
                                    +        for score_name, score_object in self.custom_scores.items():
                                    +            save_path = os.path.join(model_save_path, score_name + '.p')
                                    +            with open(save_path, 'wb') as score_f:
                                    +                try:
                                    +                    dill.dump(score_object, score_f)
                                    +                except pickle.PicklingError:
                                    +                    warnings.warn(
                                    +                        f'Failed to save custom score "{score_object}" correctly! '
                                    +                        f'Freezing score (saving only its value)'
                                    +                    )
                                    +
                                    +                    frozen_score_object = FrozenScore(score_object.value)
                                    +                    dill.dump(frozen_score_object, score_f)
                                    +
                                    +        self.save_custom_regularizers(model_save_path)
                                    +
                                    +        for i, agent in enumerate(self.callbacks):
                                    +            save_path = os.path.join(model_save_path, f"callback_{i}.pkl")
                                    +            with open(save_path, 'wb') as agent_f:
                                    +                dill.dump(agent, agent_f)
                                    +
                                    +    @staticmethod
                                    +    def load(path, experiment=None):
                                    +        """
                                    +        Loads the model.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        path : str
                                    +            path to the model's folder
                                    +        experiment : Experiment
                                    +
                                    +        Returns
                                    +        -------
                                    +        TopicModel
                                    +
                                    +        """
                                    +
                                    +        if "model" in os.listdir(f"{path}"):
                                    +            model = artm.load_artm_model(f"{path}/model")
                                    +        else:
                                    +            model = None
                                    +            print("There is no dumped model. You should train it again.")
                                    +
                                    +        with open(f"{path}/params.json", "r", encoding='utf-8') as params_f:
                                    +            params = json.load(params_f)
                                    +
                                    +        topic_model = TopicModel(model, **params)
                                    +        topic_model.experiment = experiment
                                    +
                                    +        custom_scores = {}
                                    +
                                    +        for score_path in glob.glob(os.path.join(path, '*.p')):
                                    +            score_name = os.path.basename(score_path).split('.')[0]
                                    +            with open(score_path, 'rb') as score_f:
                                    +                custom_scores[score_name] = dill.load(score_f)
                                    +
                                    +        topic_model.custom_scores = custom_scores
                                    +
                                    +        custom_regularizers = {}
                                    +
                                    +        for regularizer_path in glob.glob(os.path.join(path, '*.rd')):
                                    +            regularizer_name = os.path.basename(regularizer_path).split('.')[0]
                                    +            with open(regularizer_path, 'rb') as reg_f:
                                    +                custom_regularizers[regularizer_name] = dill.load(reg_f)
                                    +
                                    +        for regularizer_path in glob.glob(os.path.join(path, '*.rp')):
                                    +            regularizer_name = os.path.basename(regularizer_path).split('.')[0]
                                    +            with open(regularizer_path, 'rb') as reg_f:
                                    +                custom_regularizers[regularizer_name] = pickle.load(reg_f)
                                    +
                                    +        topic_model.custom_regularizers = custom_regularizers
                                    +
                                    +        all_agents = glob.glob(os.path.join(path, 'callback*.pkl'))
                                    +        topic_model.callbacks = [None for _ in enumerate(all_agents)]
                                    +
                                    +        for agent_path in all_agents:
                                    +            filename = os.path.basename(agent_path).split('.')[0]
                                    +            original_index = int(filename.partition("_")[2])
                                    +            with open(agent_path, 'rb') as agent_f:
                                    +                topic_model.callbacks[original_index] = dill.load(agent_f)
                                    +
                                    +        topic_model._reset_score_caches()
                                    +
                                    +        return topic_model
                                    +
                                    +    def clone(self, model_id=None):
                                    +        """
                                    +        Creates a copy of the model except model_id.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        model_id : str
                                    +            (Default value = None)
                                    +
                                    +        Returns
                                    +        -------
                                    +        TopicModel
                                    +
                                    +        """
                                    +        topic_model = TopicModel(artm_model=self._model.clone(),
                                    +                                 model_id=model_id,
                                    +                                 parent_model_id=self.parent_model_id,
                                    +                                 description=deepcopy(self.description),
                                    +                                 custom_scores=deepcopy(self.custom_scores),
                                    +                                 custom_regularizers=deepcopy(self.custom_regularizers),
                                    +                                 experiment=self.experiment)
                                    +        topic_model._score_functions = deepcopy(topic_model.score_functions)
                                    +        topic_model._scores = deepcopy(topic_model.scores)
                                    +        topic_model.callbacks = deepcopy(self.callbacks)
                                    +
                                    +        return topic_model
                                    +
                                    +    def get_phi(self, topic_names=None, class_ids=None, model_name=None):
                                    +        """
                                    +        Gets custom Phi matrix of model.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        topic_names : list of str or str
                                    +            list with topics or single topic to extract,
                                    +            None value means all topics (Default value = None)
                                    +        class_ids : list of str or str
                                    +            list with class_ids or single class_id to extract,
                                    +            None means all class ids (Default value = None)
                                    +        model_name : str
                                    +            self.model.model_pwt by default, self.model.model_nwt is also
                                    +            reasonable to extract unnormalized counters
                                    +
                                    +        Returns
                                    +        -------
                                    +        pd.DataFrame
                                    +            phi matrix
                                    +
                                    +        """
                                    +        if ARTM_NINE:
                                    +            phi_parts_array = []
                                    +            if isinstance(class_ids, str):
                                    +                class_ids = [class_ids]
                                    +            class_ids_iter = class_ids or self._model.class_ids
                                    +            # TODO: this workaround seems to be a correct solution to this problem
                                    +            if not class_ids_iter:
                                    +                valid_model_name = self._model.model_pwt
                                    +                info = self._model.master.get_phi_info(valid_model_name)
                                    +                class_ids_iter = list(set(info.class_id))
                                    +
                                    +            for class_id in class_ids_iter:
                                    +                phi_part = self._model.get_phi(topic_names, class_id, model_name)
                                    +                phi_part.index.rename("token", inplace=True)
                                    +                phi_part.reset_index(inplace=True)
                                    +                phi_part["modality"] = class_id
                                    +                phi_parts_array.append(phi_part)
                                    +            phi = pd.concat(phi_parts_array).set_index(['modality', 'token'])
                                    +        else:
                                    +            phi = self._model.get_phi(topic_names, class_ids, model_name)
                                    +            phi.index = pd.MultiIndex.from_tuples(phi.index, names=('modality', 'token'))
                                    +
                                    +        return phi
                                    +
                                    +    def get_phi_dense(self, topic_names=None, class_ids=None, model_name=None):
                                    +        """
                                    +        Gets custom Phi matrix of model.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        topic_names : list of str or str
                                    +            list with topics or single topic to extract,
                                    +            None value means all topics (Default value = None)
                                    +        class_ids : list of str or str
                                    +            list with class_ids or single class_id to extract,
                                    +            None means all class ids (Default value = None)
                                    +        model_name : str
                                    +            self.model.model_pwt by default, self.model.model_nwt is also
                                    +            reasonable to extract unnormalized counters
                                    +
                                    +        Returns
                                    +        -------
                                    +        3-tuple
                                    +            dense phi matrix
                                    +
                                    +        """
                                    +        return self._model.get_phi_dense(topic_names, class_ids, model_name)
                                    +
                                    +    def get_phi_sparse(self, topic_names=None, class_ids=None, model_name=None, eps=None):
                                    +        """
                                    +        Gets custom Phi matrix of model as sparse scipy matrix.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        topic_names : list of str or str
                                    +            list with topics or single topic to extract,
                                    +            None value means all topics (Default value = None)
                                    +        class_ids : list of str or str
                                    +            list with class_ids or single class_id to extract,
                                    +            None means all class ids (Default value = None)
                                    +        model_name : str
                                    +            self.model.model_pwt by default, self.model.model_nwt is also
                                    +            reasonable to extract unnormalized counters
                                    +        eps : float
                                    +            threshold to consider values as zero (Default value = None)
                                    +
                                    +        Returns
                                    +        -------
                                    +        3-tuple
                                    +            sparse phi matrix
                                    +
                                    +        """
                                    +        return self._model.get_phi_sparse(topic_names, class_ids, model_name, eps)
                                    +
                                    +    def get_theta(self, topic_names=None,
                                    +                  dataset=None,
                                    +                  theta_matrix_type='dense_theta',
                                    +                  predict_class_id=None,
                                    +                  sparse=False,
                                    +                  eps=None,):
                                    +        """
                                    +        Gets Theta matrix as pandas DataFrame
                                    +        or sparse scipy matrix.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        topic_names : list of str or str
                                    +            list with topics or single topic to extract,
                                    +            None value means all topics (Default value = None)
                                    +        dataset : Dataset
                                    +            an instance of Dataset class (Default value = None)
                                    +        theta_matrix_type : str
                                    +            type of matrix to be returned, possible values:
                                    +            ‘dense_theta’, ‘dense_ptdw’, ‘cache’, None (Default value = ’dense_theta’)
                                    +        predict_class_id : str
                                    +            class_id of a target modality to predict. When this option
                                    +            is enabled the resulting columns of theta matrix will
                                    +            correspond to unique labels of a target modality. The values
                                    +            will represent p(c|d), which give the probability of class
                                    +            label c for document d (Default value = None)
                                    +        sparse : bool
                                    +            if method returns sparse representation of the data (Default value = False)
                                    +        eps : float
                                    +            threshold to consider values as zero. Required for sparse matrix.
                                    +            depends on the collection (Default value = None)
                                    +
                                    +        Returns
                                    +        -------
                                    +        pd.DataFrame
                                    +            theta matrix
                                    +
                                    +        """
                                    +        # assuming particular case of BigARTM library that user can't get theta matrix
                                    +        # without cache_theta == True. This also covers theta_name == None case
                                    +        if self._cache_theta:
                                    +            # TODO wrap sparse in pd.SparseDataFrame and check that viewers work with that output
                                    +            if sparse:
                                    +                return self._model.get_theta_sparse(topic_names, eps)
                                    +            else:
                                    +                return self._model.get_theta(topic_names)
                                    +        else:
                                    +            if dataset is None:
                                    +                raise ValueError("To get theta a dataset is required")
                                    +            else:
                                    +                batch_vectorizer = dataset.get_batch_vectorizer()
                                    +                if sparse:
                                    +                    return self._model.transform_sparse(batch_vectorizer, eps)
                                    +                else:
                                    +                    theta = self._model.transform(batch_vectorizer,
                                    +                                                  theta_matrix_type,
                                    +                                                  predict_class_id)
                                    +                    return theta
                                    +
                                    +    def to_dummy(self):
                                    +        """Creates dummy model
                                    +
                                    +        Returns
                                    +        -------
                                    +        DummyTopicModel
                                    +            Dummy model: without inner ARTM model,
                                    +            but with scores and init parameters of calling TopicModel
                                    +
                                    +        Notes
                                    +        -----
                                    +        Dummy model has the same model_id as the original model,
                                    +        but "model_id" key in experiment.models contains original model, not dummy
                                    +        """
                                    +        from .dummy_topic_model import DummyTopicModel
                                    +        # python crashes if place this import on top of the file
                                    +        # import circle: TopicModel -> DummyTopicModel -> TopicModel
                                    +
                                    +        dummy = DummyTopicModel(
                                    +            init_parameters=self.get_init_parameters(),
                                    +            scores=self.scores,
                                    +            model_id=self.model_id,
                                    +            parent_model_id=self.parent_model_id,
                                    +            description=self.description,
                                    +            experiment=self.experiment
                                    +        )
                                    +
                                    +        # BaseModel spoils model_id trying to make it unique
                                    +        dummy._model_id = self.model_id  # accessing private field instead of public property
                                    +
                                    +        return dummy
                                    +
                                    +    def make_dummy(self, save_to_drive=True, save_path=None, dataset=None):
                                    +        """Makes topic model dummy in-place
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        save_to_drive : bool
                                    +            Whether to save model to drive or not. If not, the info will be lost
                                    +        save_path : str (or None)
                                    +            Path to folder to dump info to
                                    +        dataset : Dataset
                                    +            Dataset with text collection on which the model was trained.
                                    +            Needed for saving Theta matrix
                                    +
                                    +        Notes
                                    +        -----
                                    +        After calling the method, the model is still of type TopicModel,
                                    +        but all its attributes are now like DummyTopicModel's
                                    +        """
                                    +        from .dummy_topic_model import DummyTopicModel
                                    +        from .dummy_topic_model import WARNING_ALREADY_DUMMY
                                    +
                                    +        if hasattr(self, DummyTopicModel._dummy_attribute):
                                    +            warnings.warn(WARNING_ALREADY_DUMMY)
                                    +
                                    +            return
                                    +
                                    +        if not save_to_drive:
                                    +            save_path = None
                                    +        else:
                                    +            save_path = save_path or self.model_default_save_path
                                    +            save_theta = self._model._cache_theta or (dataset is not None)
                                    +            self.save(save_path, phi=True, theta=save_theta, dataset=dataset)
                                    +
                                    +        dummy = self.to_dummy()
                                    +        dummy._original_model_save_folder_path = save_path
                                    +
                                    +        self._model.dispose()
                                    +        self._model = dummy._model
                                    +
                                    +        del dummy
                                    +
                                    +        setattr(self, DummyTopicModel._dummy_attribute, True)
                                    +
                                    +    @property
                                    +    def scores(self):
                                    +        """
                                    +        Gets score values by name.
                                    +
                                    +        Returns
                                    +        -------
                                    +        score_values : dict : string -> list
                                    +            dictionary with scores and corresponding values
                                    +
                                    +        """
                                    +        if self._score_caches is None:  # assume users won't try to corrupt _score_caches
                                    +            self._score_caches = self._compute_score_values()
                                    +
                                    +        assert self._score_caches is not None  # maybe empty dict, but not None
                                    +
                                    +        return self._score_caches
                                    +
                                    +    @property
                                    +    def description(self):
                                    +        """ """
                                    +        return self._description
                                    +
                                    +    @property
                                    +    def regularizers(self):
                                    +        """
                                    +        Gets regularizers from model.
                                    +
                                    +        """
                                    +        return self._model.regularizers
                                    +
                                    +    @property
                                    +    def all_regularizers(self):
                                    +        """
                                    +        Gets all regularizers with custom regularizers.
                                    +
                                    +        Returns
                                    +        -------
                                    +        regularizers_dict : dict
                                    +            dict with artm.regularizer and BaseRegularizer instances
                                    +
                                    +        """
                                    +        regularizers_dict = dict()
                                    +        for custom_regularizer_name, custom_regularizer in self.custom_regularizers.items():
                                    +            regularizers_dict[custom_regularizer_name] = custom_regularizer
                                    +        regularizers_dict.update(self._model.regularizers.data)
                                    +
                                    +        return regularizers_dict
                                    +
                                    +    @property
                                    +    def class_ids(self):
                                    +        """ """
                                    +        return self._model.class_ids
                                    +
                                    +    def describe_scores(self):
                                    +        data = []
                                    +        for score_name, score in self.scores.items():
                                    +            data.append([self.model_id, score_name, score[-1]])
                                    +        result = pd.DataFrame(columns=["model_id", "score_name", "last_value"], data=data)
                                    +        return result.set_index(["model_id", "score_name"])
                                    +
                                    +    def describe_regularizers(self):
                                    +        data = []
                                    +        for reg_name, reg in self.regularizers._data.items():
                                    +            data.append([self.model_id, reg_name, reg.tau, reg.gamma])
                                    +        for custom_reg_name, custom_reg in self.custom_regularizers.items():
                                    +            data.append([self.model_id, custom_reg_name, custom_reg.tau, custom_reg.gamma])
                                    +        result = pd.DataFrame(columns=["model_id", "regularizer_name", "tau", "gamma"], data=data)
                                    +        return result.set_index(["model_id", "regularizer_name"])
                                    +
                                    @@ -29,12 +783,6 @@

                                    Module topicnet.cooking_machine.models.topic_model

                                    Classes

                                    -
                                    -class EmptyScore -
                                    -
                                    -
                                    -
                                    class TopicModel (artm_model=None, model_id=None, parent_model_id=None, data_path=None, description=None, experiment=None, callbacks=[], depth=0, scores={}, custom_scores={}, custom_regularizers={}, *args, **kwargs) @@ -65,6 +813,723 @@

                                    Parameters

                                    custom_regularizers : dict
                                    dictionary with regularizer names as keys and regularizer classes as values
                                    +
                                    + +Expand source code + +
                                    class TopicModel(BaseModel):
                                    +    """
                                    +    Topic Model contains artm model and all necessary information: scores, training pipeline, etc.
                                    +
                                    +    """
                                    +    def __init__(self, artm_model=None, model_id=None,
                                    +                 parent_model_id=None, data_path=None,
                                    +                 description=None, experiment=None,
                                    +                 callbacks=list(), depth=0, scores=dict(),
                                    +                 custom_scores=dict(), custom_regularizers=dict(),
                                    +                 *args, **kwargs):
                                    +        """
                                    +        Initialize stage, also used for loading previously saved experiments.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        artm_model : artm model or None
                                    +            model to use, None if you want to create model (Default value = None)
                                    +        model_id : str
                                    +            model id (Default value = None)
                                    +        parent_model_id : str
                                    +            model id from which current model was created (Default value = None)
                                    +        data_path : str
                                    +            path to the data (Default value = None)
                                    +        description : list of dict
                                    +            description of the model (Default value = None)
                                    +        experiment : Experiment
                                    +            the experiment to which the model is bound (Default value = None)
                                    +        callbacks : list of objects with invoke() method
                                    +            function called inside _fit which alters model parameters
                                    +            mainly used for fancy regularizer coefficients manipulation
                                    +        custom_scores : dict
                                    +            dictionary with score names as keys and score classes as functions
                                    +            (score class with functionality like those of BaseScore)
                                    +        custom_regularizers : dict
                                    +            dictionary with regularizer names as keys and regularizer classes as values
                                    +
                                    +        """
                                    +        super().__init__(model_id=model_id, parent_model_id=parent_model_id,
                                    +                         experiment=experiment, *args, **kwargs)
                                    +
                                    +        self.callbacks = list(callbacks)
                                    +
                                    +        if artm_model is None:
                                    +            artm_ARTM_args = inspect.getfullargspec(artm.ARTM).args
                                    +            kwargs = {k: v for k, v in kwargs.items() if k in artm_ARTM_args}
                                    +
                                    +            try:
                                    +                self._model = artm.ARTM(**kwargs)
                                    +            except ArtmException as e:
                                    +                error_message = repr(e)
                                    +                raise ValueError(
                                    +                    f'Cannot create artm model with parameters {kwargs}.\n'
                                    +                    "ARTM failed with following: " + error_message
                                    +                )
                                    +        else:
                                    +            self._model = artm_model
                                    +
                                    +        self.data_path = data_path
                                    +        self.custom_scores = custom_scores
                                    +        self.custom_regularizers = custom_regularizers
                                    +
                                    +        self._score_caches = None  # returned by model.score, reset by model._fit
                                    +
                                    +        self._description = []
                                    +        if description is None and self._model._initialized:
                                    +            init_params = self.get_jsonable_from_parameters()
                                    +            self._description = [{"action": "init",
                                    +                                  "params": [init_params]}]
                                    +        else:
                                    +            self._description = description
                                    +
                                    +    def __getattr__(self, attr_name):
                                    +        return getattr(self._model, attr_name)
                                    +
                                    +    def _get_all_scores(self):
                                    +        if len(self._model.score_tracker.items()) == 0:
                                    +            yield from {
                                    +                key: FrozenScore(list())
                                    +                for key in self._model.scores.data.keys()
                                    +            }.items()
                                    +        yield from self._model.score_tracker.items()
                                    +
                                    +        if self.custom_scores is not None:  # default is dict(), but maybe better to set None?
                                    +            yield from self.custom_scores.items()
                                    +
                                    +    def _reset_score_caches(self):
                                    +        self._score_caches = None
                                    +
                                    +    def _compute_score_values(self):
                                    +        def get_score_properties_and_values(score_name, score_object):
                                    +            for internal_name in dir(score_object):
                                    +                if internal_name.startswith('_') or internal_name.startswith('last'):
                                    +                    continue
                                    +
                                    +                score_property_name = score_name + '.' + internal_name
                                    +
                                    +                yield score_property_name, getattr(score_object, internal_name)
                                    +
                                    +        score_values = dict()
                                    +
                                    +        for score_name, score_object in self._get_all_scores():
                                    +            try:
                                    +                score_values[score_name] = getattr(score_object, 'value')
                                    +            except AttributeError:
                                    +                if not isinstance(score_object, SUPPORTED_SCORES_WITHOUT_VALUE_PROPERTY):
                                    +                    warnings.warn(f'Score "{str(score_object.__class__)}" is not supported')
                                    +                    continue
                                    +
                                    +                for score_property_name, value in get_score_properties_and_values(
                                    +                        score_name, score_object):
                                    +
                                    +                    score_values[score_property_name] = value
                                    +
                                    +        return score_values
                                    +
                                    +    def _fit(self, dataset_trainable, num_iterations, custom_regularizers=dict()):
                                    +        """
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        dataset_trainable : BatchVectorizer
                                    +            Data for model fit
                                    +        num_iterations : int
                                    +            Amount of fit steps
                                    +        custom_regularizers : dict of BaseRegularizer
                                    +            Regularizers to apply to model
                                    +
                                    +        """
                                    +        all_custom_regularizers = deepcopy(custom_regularizers)
                                    +        all_custom_regularizers.update(self.custom_regularizers)
                                    +
                                    +        if len(all_custom_regularizers) != 0:
                                    +            for regularizer in all_custom_regularizers.values():
                                    +                regularizer.attach(self._model)
                                    +
                                    +            base_regularizers_name = [regularizer.name
                                    +                                      for regularizer in self._model.regularizers.data.values()]
                                    +            base_regularizers_tau = [regularizer.tau
                                    +                                     for regularizer in self._model.regularizers.data.values()]
                                    +
                                    +        for cur_iter in range(num_iterations):
                                    +            self._model.fit_offline(batch_vectorizer=dataset_trainable,
                                    +                                    num_collection_passes=1)
                                    +
                                    +            if len(all_custom_regularizers) != 0:
                                    +                self._apply_custom_regularizers(
                                    +                    dataset_trainable, all_custom_regularizers,
                                    +                    base_regularizers_name, base_regularizers_tau
                                    +                )
                                    +
                                    +            for name, custom_score in self.custom_scores.items():
                                    +                try:
                                    +                    score = custom_score.call(self)
                                    +                    custom_score.update(score)
                                    +                    self._model.score_tracker[name] = custom_score
                                    +                except AttributeError:  # TODO: means no "call" attribute?
                                    +                    raise AttributeError(f'Score {name} doesn\'t have a desired attribute')
                                    +
                                    +            # TODO: think about performance issues
                                    +            for callback_agent in self.callbacks:
                                    +                callback_agent.invoke(self, cur_iter)
                                    +
                                    +            self._reset_score_caches()
                                    +
                                    +    def _apply_custom_regularizers(self, dataset_trainable, custom_regularizers,
                                    +                                   base_regularizers_name, base_regularizers_tau):
                                    +        """
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        dataset_trainable : BatchVectorizer
                                    +            Data for model fit
                                    +        custom_regularizers : dict of BaseRegularizer
                                    +            Regularizers to apply to model
                                    +        base_regularizers_name : list of str
                                    +            List with all artm.regularizers names, applied to model
                                    +        base_regularizers_tau : list of float
                                    +            List with tau for all artm.regularizers, applied to model
                                    +
                                    +        """
                                    +        pwt = self._model.get_phi(model_name=self._model.model_pwt)
                                    +        nwt = self._model.get_phi(model_name=self._model.model_nwt)
                                    +        rwt_name = 'rwt'
                                    +
                                    +        self._model.master.regularize_model(pwt=self._model.model_pwt,
                                    +                                            nwt=self._model.model_nwt,
                                    +                                            rwt=rwt_name,
                                    +                                            regularizer_name=base_regularizers_name,
                                    +                                            regularizer_tau=base_regularizers_tau)
                                    +
                                    +        (meta, nd_array) = self._model.master.attach_model(rwt_name)
                                    +        attached_rwt = pd.DataFrame(data=nd_array, columns=meta.topic_name, index=meta.token)
                                    +
                                    +        for regularizer in custom_regularizers.values():
                                    +            attached_rwt.values[:, :] += regularizer.grad(pwt, nwt)
                                    +
                                    +        self._model.master.normalize_model(pwt=self._model.model_pwt,
                                    +                                           nwt=self._model.model_nwt,
                                    +                                           rwt=rwt_name)
                                    +
                                    +    def get_jsonable_from_parameters(self):
                                    +        """
                                    +        Gets artm model params.
                                    +
                                    +        Returns
                                    +        -------
                                    +        dict
                                    +            artm model parameters
                                    +
                                    +        """
                                    +        parameters = transform_complex_entity_to_dict(self._model)
                                    +
                                    +        regularizers = {}
                                    +        for name, regularizer in iteritems(self._model._regularizers.data):
                                    +            tau = None
                                    +            gamma = None
                                    +            try:
                                    +                tau = regularizer.tau
                                    +                gamma = regularizer.gamma
                                    +            except KeyError:
                                    +                pass
                                    +            regularizers[name] = [str(regularizer.config), tau, gamma]
                                    +        for name, regularizer in iteritems(self.custom_regularizers):
                                    +            tau = getattr(regularizer, 'tau', None)
                                    +            gamma = getattr(regularizer, 'gamma', None)
                                    +            config = str(getattr(regularizer, 'config', ''))
                                    +            regularizers[name] = [config, tau, gamma]
                                    +
                                    +        parameters['regularizers'] = regularizers
                                    +        parameters['version'] = artm.version()
                                    +
                                    +        return parameters
                                    +
                                    +    def get_init_parameters(self, not_include=list()):
                                    +        init_artm_parameter_names = [
                                    +            p.name for p in list(signature(artm.ARTM.__init__).parameters.values())
                                    +        ][1:]
                                    +        parameters = transform_complex_entity_to_dict(self._model)
                                    +        filtered = dict()
                                    +        for parameter_name, parameter_value in parameters.items():
                                    +            if parameter_name not in not_include and parameter_name in init_artm_parameter_names:
                                    +                filtered[parameter_name] = parameter_value
                                    +        return filtered
                                    +
                                    +    def save_custom_regularizers(self, model_save_path=None):
                                    +        if model_save_path is None:
                                    +            model_save_path = self.model_default_save_path
                                    +
                                    +        for regularizer_name, regularizer_object in self.custom_regularizers.items():
                                    +            try:
                                    +                save_path = os.path.join(model_save_path, regularizer_name + '.rd')
                                    +                with open(save_path, 'wb') as reg_f:
                                    +                    dill.dump(regularizer_object, reg_f)
                                    +            except (TypeError, AttributeError):
                                    +                try:
                                    +                    save_path = os.path.join(model_save_path, regularizer_name + '.rp')
                                    +                    with open(save_path, 'wb') as reg_f:
                                    +                        pickle.dump(regularizer_object, reg_f)
                                    +                except (TypeError, AttributeError):
                                    +                    warnings.warn(f'Cannot save {regularizer_name} regularizer.')
                                    +
                                    +    def save(self,
                                    +             model_save_path=None,
                                    +             phi=True,
                                    +             theta=False,
                                    +             dataset=None,):
                                    +        """
                                    +        Saves model description and dumps artm model.
                                    +        Use this method if you want to dump the model.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        model_save_path : str
                                    +            path to the folder with dumped info about model
                                    +        phi : bool
                                    +            save phi in csv format if True
                                    +        theta : bool
                                    +            save theta in csv format if True
                                    +        dataset : Dataset
                                    +             dataset
                                    +
                                    +        """
                                    +        if model_save_path is None:
                                    +            model_save_path = self.model_default_save_path
                                    +
                                    +        if not os.path.exists(model_save_path):
                                    +            os.makedirs(model_save_path)
                                    +        if phi:
                                    +            self._model.get_phi().to_csv(f"{model_save_path}/phi.csv")
                                    +        if theta:
                                    +            self.get_theta(dataset=dataset).to_csv(f"{model_save_path}/theta.csv")
                                    +
                                    +        model_itself_save_path = f"{model_save_path}/model"
                                    +
                                    +        if os.path.exists(model_itself_save_path):
                                    +            shutil.rmtree(model_itself_save_path)
                                    +        self._model.dump_artm_model(model_itself_save_path)
                                    +        self.save_parameters(model_save_path)
                                    +
                                    +        for score_name, score_object in self.custom_scores.items():
                                    +            save_path = os.path.join(model_save_path, score_name + '.p')
                                    +            with open(save_path, 'wb') as score_f:
                                    +                try:
                                    +                    dill.dump(score_object, score_f)
                                    +                except pickle.PicklingError:
                                    +                    warnings.warn(
                                    +                        f'Failed to save custom score "{score_object}" correctly! '
                                    +                        f'Freezing score (saving only its value)'
                                    +                    )
                                    +
                                    +                    frozen_score_object = FrozenScore(score_object.value)
                                    +                    dill.dump(frozen_score_object, score_f)
                                    +
                                    +        self.save_custom_regularizers(model_save_path)
                                    +
                                    +        for i, agent in enumerate(self.callbacks):
                                    +            save_path = os.path.join(model_save_path, f"callback_{i}.pkl")
                                    +            with open(save_path, 'wb') as agent_f:
                                    +                dill.dump(agent, agent_f)
                                    +
                                    +    @staticmethod
                                    +    def load(path, experiment=None):
                                    +        """
                                    +        Loads the model.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        path : str
                                    +            path to the model's folder
                                    +        experiment : Experiment
                                    +
                                    +        Returns
                                    +        -------
                                    +        TopicModel
                                    +
                                    +        """
                                    +
                                    +        if "model" in os.listdir(f"{path}"):
                                    +            model = artm.load_artm_model(f"{path}/model")
                                    +        else:
                                    +            model = None
                                    +            print("There is no dumped model. You should train it again.")
                                    +
                                    +        with open(f"{path}/params.json", "r", encoding='utf-8') as params_f:
                                    +            params = json.load(params_f)
                                    +
                                    +        topic_model = TopicModel(model, **params)
                                    +        topic_model.experiment = experiment
                                    +
                                    +        custom_scores = {}
                                    +
                                    +        for score_path in glob.glob(os.path.join(path, '*.p')):
                                    +            score_name = os.path.basename(score_path).split('.')[0]
                                    +            with open(score_path, 'rb') as score_f:
                                    +                custom_scores[score_name] = dill.load(score_f)
                                    +
                                    +        topic_model.custom_scores = custom_scores
                                    +
                                    +        custom_regularizers = {}
                                    +
                                    +        for regularizer_path in glob.glob(os.path.join(path, '*.rd')):
                                    +            regularizer_name = os.path.basename(regularizer_path).split('.')[0]
                                    +            with open(regularizer_path, 'rb') as reg_f:
                                    +                custom_regularizers[regularizer_name] = dill.load(reg_f)
                                    +
                                    +        for regularizer_path in glob.glob(os.path.join(path, '*.rp')):
                                    +            regularizer_name = os.path.basename(regularizer_path).split('.')[0]
                                    +            with open(regularizer_path, 'rb') as reg_f:
                                    +                custom_regularizers[regularizer_name] = pickle.load(reg_f)
                                    +
                                    +        topic_model.custom_regularizers = custom_regularizers
                                    +
                                    +        all_agents = glob.glob(os.path.join(path, 'callback*.pkl'))
                                    +        topic_model.callbacks = [None for _ in enumerate(all_agents)]
                                    +
                                    +        for agent_path in all_agents:
                                    +            filename = os.path.basename(agent_path).split('.')[0]
                                    +            original_index = int(filename.partition("_")[2])
                                    +            with open(agent_path, 'rb') as agent_f:
                                    +                topic_model.callbacks[original_index] = dill.load(agent_f)
                                    +
                                    +        topic_model._reset_score_caches()
                                    +
                                    +        return topic_model
                                    +
                                    +    def clone(self, model_id=None):
                                    +        """
                                    +        Creates a copy of the model except model_id.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        model_id : str
                                    +            (Default value = None)
                                    +
                                    +        Returns
                                    +        -------
                                    +        TopicModel
                                    +
                                    +        """
                                    +        topic_model = TopicModel(artm_model=self._model.clone(),
                                    +                                 model_id=model_id,
                                    +                                 parent_model_id=self.parent_model_id,
                                    +                                 description=deepcopy(self.description),
                                    +                                 custom_scores=deepcopy(self.custom_scores),
                                    +                                 custom_regularizers=deepcopy(self.custom_regularizers),
                                    +                                 experiment=self.experiment)
                                    +        topic_model._score_functions = deepcopy(topic_model.score_functions)
                                    +        topic_model._scores = deepcopy(topic_model.scores)
                                    +        topic_model.callbacks = deepcopy(self.callbacks)
                                    +
                                    +        return topic_model
                                    +
                                    +    def get_phi(self, topic_names=None, class_ids=None, model_name=None):
                                    +        """
                                    +        Gets custom Phi matrix of model.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        topic_names : list of str or str
                                    +            list with topics or single topic to extract,
                                    +            None value means all topics (Default value = None)
                                    +        class_ids : list of str or str
                                    +            list with class_ids or single class_id to extract,
                                    +            None means all class ids (Default value = None)
                                    +        model_name : str
                                    +            self.model.model_pwt by default, self.model.model_nwt is also
                                    +            reasonable to extract unnormalized counters
                                    +
                                    +        Returns
                                    +        -------
                                    +        pd.DataFrame
                                    +            phi matrix
                                    +
                                    +        """
                                    +        if ARTM_NINE:
                                    +            phi_parts_array = []
                                    +            if isinstance(class_ids, str):
                                    +                class_ids = [class_ids]
                                    +            class_ids_iter = class_ids or self._model.class_ids
                                    +            # TODO: this workaround seems to be a correct solution to this problem
                                    +            if not class_ids_iter:
                                    +                valid_model_name = self._model.model_pwt
                                    +                info = self._model.master.get_phi_info(valid_model_name)
                                    +                class_ids_iter = list(set(info.class_id))
                                    +
                                    +            for class_id in class_ids_iter:
                                    +                phi_part = self._model.get_phi(topic_names, class_id, model_name)
                                    +                phi_part.index.rename("token", inplace=True)
                                    +                phi_part.reset_index(inplace=True)
                                    +                phi_part["modality"] = class_id
                                    +                phi_parts_array.append(phi_part)
                                    +            phi = pd.concat(phi_parts_array).set_index(['modality', 'token'])
                                    +        else:
                                    +            phi = self._model.get_phi(topic_names, class_ids, model_name)
                                    +            phi.index = pd.MultiIndex.from_tuples(phi.index, names=('modality', 'token'))
                                    +
                                    +        return phi
                                    +
                                    +    def get_phi_dense(self, topic_names=None, class_ids=None, model_name=None):
                                    +        """
                                    +        Gets custom Phi matrix of model.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        topic_names : list of str or str
                                    +            list with topics or single topic to extract,
                                    +            None value means all topics (Default value = None)
                                    +        class_ids : list of str or str
                                    +            list with class_ids or single class_id to extract,
                                    +            None means all class ids (Default value = None)
                                    +        model_name : str
                                    +            self.model.model_pwt by default, self.model.model_nwt is also
                                    +            reasonable to extract unnormalized counters
                                    +
                                    +        Returns
                                    +        -------
                                    +        3-tuple
                                    +            dense phi matrix
                                    +
                                    +        """
                                    +        return self._model.get_phi_dense(topic_names, class_ids, model_name)
                                    +
                                    +    def get_phi_sparse(self, topic_names=None, class_ids=None, model_name=None, eps=None):
                                    +        """
                                    +        Gets custom Phi matrix of model as sparse scipy matrix.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        topic_names : list of str or str
                                    +            list with topics or single topic to extract,
                                    +            None value means all topics (Default value = None)
                                    +        class_ids : list of str or str
                                    +            list with class_ids or single class_id to extract,
                                    +            None means all class ids (Default value = None)
                                    +        model_name : str
                                    +            self.model.model_pwt by default, self.model.model_nwt is also
                                    +            reasonable to extract unnormalized counters
                                    +        eps : float
                                    +            threshold to consider values as zero (Default value = None)
                                    +
                                    +        Returns
                                    +        -------
                                    +        3-tuple
                                    +            sparse phi matrix
                                    +
                                    +        """
                                    +        return self._model.get_phi_sparse(topic_names, class_ids, model_name, eps)
                                    +
                                    +    def get_theta(self, topic_names=None,
                                    +                  dataset=None,
                                    +                  theta_matrix_type='dense_theta',
                                    +                  predict_class_id=None,
                                    +                  sparse=False,
                                    +                  eps=None,):
                                    +        """
                                    +        Gets Theta matrix as pandas DataFrame
                                    +        or sparse scipy matrix.
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        topic_names : list of str or str
                                    +            list with topics or single topic to extract,
                                    +            None value means all topics (Default value = None)
                                    +        dataset : Dataset
                                    +            an instance of Dataset class (Default value = None)
                                    +        theta_matrix_type : str
                                    +            type of matrix to be returned, possible values:
                                    +            ‘dense_theta’, ‘dense_ptdw’, ‘cache’, None (Default value = ’dense_theta’)
                                    +        predict_class_id : str
                                    +            class_id of a target modality to predict. When this option
                                    +            is enabled the resulting columns of theta matrix will
                                    +            correspond to unique labels of a target modality. The values
                                    +            will represent p(c|d), which give the probability of class
                                    +            label c for document d (Default value = None)
                                    +        sparse : bool
                                    +            if method returns sparse representation of the data (Default value = False)
                                    +        eps : float
                                    +            threshold to consider values as zero. Required for sparse matrix.
                                    +            depends on the collection (Default value = None)
                                    +
                                    +        Returns
                                    +        -------
                                    +        pd.DataFrame
                                    +            theta matrix
                                    +
                                    +        """
                                    +        # assuming particular case of BigARTM library that user can't get theta matrix
                                    +        # without cache_theta == True. This also covers theta_name == None case
                                    +        if self._cache_theta:
                                    +            # TODO wrap sparse in pd.SparseDataFrame and check that viewers work with that output
                                    +            if sparse:
                                    +                return self._model.get_theta_sparse(topic_names, eps)
                                    +            else:
                                    +                return self._model.get_theta(topic_names)
                                    +        else:
                                    +            if dataset is None:
                                    +                raise ValueError("To get theta a dataset is required")
                                    +            else:
                                    +                batch_vectorizer = dataset.get_batch_vectorizer()
                                    +                if sparse:
                                    +                    return self._model.transform_sparse(batch_vectorizer, eps)
                                    +                else:
                                    +                    theta = self._model.transform(batch_vectorizer,
                                    +                                                  theta_matrix_type,
                                    +                                                  predict_class_id)
                                    +                    return theta
                                    +
                                    +    def to_dummy(self):
                                    +        """Creates dummy model
                                    +
                                    +        Returns
                                    +        -------
                                    +        DummyTopicModel
                                    +            Dummy model: without inner ARTM model,
                                    +            but with scores and init parameters of calling TopicModel
                                    +
                                    +        Notes
                                    +        -----
                                    +        Dummy model has the same model_id as the original model,
                                    +        but "model_id" key in experiment.models contains original model, not dummy
                                    +        """
                                    +        from .dummy_topic_model import DummyTopicModel
                                    +        # python crashes if place this import on top of the file
                                    +        # import circle: TopicModel -> DummyTopicModel -> TopicModel
                                    +
                                    +        dummy = DummyTopicModel(
                                    +            init_parameters=self.get_init_parameters(),
                                    +            scores=self.scores,
                                    +            model_id=self.model_id,
                                    +            parent_model_id=self.parent_model_id,
                                    +            description=self.description,
                                    +            experiment=self.experiment
                                    +        )
                                    +
                                    +        # BaseModel spoils model_id trying to make it unique
                                    +        dummy._model_id = self.model_id  # accessing private field instead of public property
                                    +
                                    +        return dummy
                                    +
                                    +    def make_dummy(self, save_to_drive=True, save_path=None, dataset=None):
                                    +        """Makes topic model dummy in-place
                                    +
                                    +        Parameters
                                    +        ----------
                                    +        save_to_drive : bool
                                    +            Whether to save model to drive or not. If not, the info will be lost
                                    +        save_path : str (or None)
                                    +            Path to folder to dump info to
                                    +        dataset : Dataset
                                    +            Dataset with text collection on which the model was trained.
                                    +            Needed for saving Theta matrix
                                    +
                                    +        Notes
                                    +        -----
                                    +        After calling the method, the model is still of type TopicModel,
                                    +        but all its attributes are now like DummyTopicModel's
                                    +        """
                                    +        from .dummy_topic_model import DummyTopicModel
                                    +        from .dummy_topic_model import WARNING_ALREADY_DUMMY
                                    +
                                    +        if hasattr(self, DummyTopicModel._dummy_attribute):
                                    +            warnings.warn(WARNING_ALREADY_DUMMY)
                                    +
                                    +            return
                                    +
                                    +        if not save_to_drive:
                                    +            save_path = None
                                    +        else:
                                    +            save_path = save_path or self.model_default_save_path
                                    +            save_theta = self._model._cache_theta or (dataset is not None)
                                    +            self.save(save_path, phi=True, theta=save_theta, dataset=dataset)
                                    +
                                    +        dummy = self.to_dummy()
                                    +        dummy._original_model_save_folder_path = save_path
                                    +
                                    +        self._model.dispose()
                                    +        self._model = dummy._model
                                    +
                                    +        del dummy
                                    +
                                    +        setattr(self, DummyTopicModel._dummy_attribute, True)
                                    +
                                    +    @property
                                    +    def scores(self):
                                    +        """
                                    +        Gets score values by name.
                                    +
                                    +        Returns
                                    +        -------
                                    +        score_values : dict : string -> list
                                    +            dictionary with scores and corresponding values
                                    +
                                    +        """
                                    +        if self._score_caches is None:  # assume users won't try to corrupt _score_caches
                                    +            self._score_caches = self._compute_score_values()
                                    +
                                    +        assert self._score_caches is not None  # maybe empty dict, but not None
                                    +
                                    +        return self._score_caches
                                    +
                                    +    @property
                                    +    def description(self):
                                    +        """ """
                                    +        return self._description
                                    +
                                    +    @property
                                    +    def regularizers(self):
                                    +        """
                                    +        Gets regularizers from model.
                                    +
                                    +        """
                                    +        return self._model.regularizers
                                    +
                                    +    @property
                                    +    def all_regularizers(self):
                                    +        """
                                    +        Gets all regularizers with custom regularizers.
                                    +
                                    +        Returns
                                    +        -------
                                    +        regularizers_dict : dict
                                    +            dict with artm.regularizer and BaseRegularizer instances
                                    +
                                    +        """
                                    +        regularizers_dict = dict()
                                    +        for custom_regularizer_name, custom_regularizer in self.custom_regularizers.items():
                                    +            regularizers_dict[custom_regularizer_name] = custom_regularizer
                                    +        regularizers_dict.update(self._model.regularizers.data)
                                    +
                                    +        return regularizers_dict
                                    +
                                    +    @property
                                    +    def class_ids(self):
                                    +        """ """
                                    +        return self._model.class_ids
                                    +
                                    +    def describe_scores(self):
                                    +        data = []
                                    +        for score_name, score in self.scores.items():
                                    +            data.append([self.model_id, score_name, score[-1]])
                                    +        result = pd.DataFrame(columns=["model_id", "score_name", "last_value"], data=data)
                                    +        return result.set_index(["model_id", "score_name"])
                                    +
                                    +    def describe_regularizers(self):
                                    +        data = []
                                    +        for reg_name, reg in self.regularizers._data.items():
                                    +            data.append([self.model_id, reg_name, reg.tau, reg.gamma])
                                    +        for custom_reg_name, custom_reg in self.custom_regularizers.items():
                                    +            data.append([self.model_id, custom_reg_name, custom_reg.tau, custom_reg.gamma])
                                    +        result = pd.DataFrame(columns=["model_id", "regularizer_name", "tau", "gamma"], data=data)
                                    +        return result.set_index(["model_id", "regularizer_name"])
                                    +

                                    Ancestors

                                    • BaseModel
                                    • @@ -72,7 +1537,7 @@

                                      Ancestors

                                      Subclasses

                                      Static methods

                                      @@ -93,6 +1558,75 @@

                                      Returns

                                      TopicModel
                                       
                                      +
                                      + +Expand source code + +
                                      @staticmethod
                                      +def load(path, experiment=None):
                                      +    """
                                      +    Loads the model.
                                      +
                                      +    Parameters
                                      +    ----------
                                      +    path : str
                                      +        path to the model's folder
                                      +    experiment : Experiment
                                      +
                                      +    Returns
                                      +    -------
                                      +    TopicModel
                                      +
                                      +    """
                                      +
                                      +    if "model" in os.listdir(f"{path}"):
                                      +        model = artm.load_artm_model(f"{path}/model")
                                      +    else:
                                      +        model = None
                                      +        print("There is no dumped model. You should train it again.")
                                      +
                                      +    with open(f"{path}/params.json", "r", encoding='utf-8') as params_f:
                                      +        params = json.load(params_f)
                                      +
                                      +    topic_model = TopicModel(model, **params)
                                      +    topic_model.experiment = experiment
                                      +
                                      +    custom_scores = {}
                                      +
                                      +    for score_path in glob.glob(os.path.join(path, '*.p')):
                                      +        score_name = os.path.basename(score_path).split('.')[0]
                                      +        with open(score_path, 'rb') as score_f:
                                      +            custom_scores[score_name] = dill.load(score_f)
                                      +
                                      +    topic_model.custom_scores = custom_scores
                                      +
                                      +    custom_regularizers = {}
                                      +
                                      +    for regularizer_path in glob.glob(os.path.join(path, '*.rd')):
                                      +        regularizer_name = os.path.basename(regularizer_path).split('.')[0]
                                      +        with open(regularizer_path, 'rb') as reg_f:
                                      +            custom_regularizers[regularizer_name] = dill.load(reg_f)
                                      +
                                      +    for regularizer_path in glob.glob(os.path.join(path, '*.rp')):
                                      +        regularizer_name = os.path.basename(regularizer_path).split('.')[0]
                                      +        with open(regularizer_path, 'rb') as reg_f:
                                      +            custom_regularizers[regularizer_name] = pickle.load(reg_f)
                                      +
                                      +    topic_model.custom_regularizers = custom_regularizers
                                      +
                                      +    all_agents = glob.glob(os.path.join(path, 'callback*.pkl'))
                                      +    topic_model.callbacks = [None for _ in enumerate(all_agents)]
                                      +
                                      +    for agent_path in all_agents:
                                      +        filename = os.path.basename(agent_path).split('.')[0]
                                      +        original_index = int(filename.partition("_")[2])
                                      +        with open(agent_path, 'rb') as agent_f:
                                      +            topic_model.callbacks[original_index] = dill.load(agent_f)
                                      +
                                      +    topic_model._reset_score_caches()
                                      +
                                      +    return topic_model
                                      +

                                      Instance variables

                                      @@ -105,18 +1639,70 @@

                                      Returns

                                      regularizers_dict : dict
                                      dict with artm.regularizer and BaseRegularizer instances
                                      +
                                      + +Expand source code + +
                                      @property
                                      +def all_regularizers(self):
                                      +    """
                                      +    Gets all regularizers with custom regularizers.
                                      +
                                      +    Returns
                                      +    -------
                                      +    regularizers_dict : dict
                                      +        dict with artm.regularizer and BaseRegularizer instances
                                      +
                                      +    """
                                      +    regularizers_dict = dict()
                                      +    for custom_regularizer_name, custom_regularizer in self.custom_regularizers.items():
                                      +        regularizers_dict[custom_regularizer_name] = custom_regularizer
                                      +    regularizers_dict.update(self._model.regularizers.data)
                                      +
                                      +    return regularizers_dict
                                      +
                                      var class_ids
                                      +
                                      + +Expand source code + +
                                      @property
                                      +def class_ids(self):
                                      +    """ """
                                      +    return self._model.class_ids
                                      +
                                      var description
                                      +
                                      + +Expand source code + +
                                      @property
                                      +def description(self):
                                      +    """ """
                                      +    return self._description
                                      +
                                      var regularizers

                                      Gets regularizers from model.

                                      +
                                      + +Expand source code + +
                                      @property
                                      +def regularizers(self):
                                      +    """
                                      +    Gets regularizers from model.
                                      +
                                      +    """
                                      +    return self._model.regularizers
                                      +
                                      var scores
                                      @@ -126,6 +1712,28 @@

                                      Returns

                                      score_values : dict : string -> list
                                      dictionary with scores and corresponding values
                                      +
                                      + +Expand source code + +
                                      @property
                                      +def scores(self):
                                      +    """
                                      +    Gets score values by name.
                                      +
                                      +    Returns
                                      +    -------
                                      +    score_values : dict : string -> list
                                      +        dictionary with scores and corresponding values
                                      +
                                      +    """
                                      +    if self._score_caches is None:  # assume users won't try to corrupt _score_caches
                                      +        self._score_caches = self._compute_score_values()
                                      +
                                      +    assert self._score_caches is not None  # maybe empty dict, but not None
                                      +
                                      +    return self._score_caches
                                      +

                                      Methods

                                      @@ -145,24 +1753,94 @@

                                      Returns

                                      TopicModel
                                       
                                      +
                                      + +Expand source code + +
                                      def clone(self, model_id=None):
                                      +    """
                                      +    Creates a copy of the model except model_id.
                                      +
                                      +    Parameters
                                      +    ----------
                                      +    model_id : str
                                      +        (Default value = None)
                                      +
                                      +    Returns
                                      +    -------
                                      +    TopicModel
                                      +
                                      +    """
                                      +    topic_model = TopicModel(artm_model=self._model.clone(),
                                      +                             model_id=model_id,
                                      +                             parent_model_id=self.parent_model_id,
                                      +                             description=deepcopy(self.description),
                                      +                             custom_scores=deepcopy(self.custom_scores),
                                      +                             custom_regularizers=deepcopy(self.custom_regularizers),
                                      +                             experiment=self.experiment)
                                      +    topic_model._score_functions = deepcopy(topic_model.score_functions)
                                      +    topic_model._scores = deepcopy(topic_model.scores)
                                      +    topic_model.callbacks = deepcopy(self.callbacks)
                                      +
                                      +    return topic_model
                                      +
                                      def describe_regularizers(self)
                                      +
                                      + +Expand source code + +
                                      def describe_regularizers(self):
                                      +    data = []
                                      +    for reg_name, reg in self.regularizers._data.items():
                                      +        data.append([self.model_id, reg_name, reg.tau, reg.gamma])
                                      +    for custom_reg_name, custom_reg in self.custom_regularizers.items():
                                      +        data.append([self.model_id, custom_reg_name, custom_reg.tau, custom_reg.gamma])
                                      +    result = pd.DataFrame(columns=["model_id", "regularizer_name", "tau", "gamma"], data=data)
                                      +    return result.set_index(["model_id", "regularizer_name"])
                                      +
                                      def describe_scores(self)
                                      +
                                      + +Expand source code + +
                                      def describe_scores(self):
                                      +    data = []
                                      +    for score_name, score in self.scores.items():
                                      +        data.append([self.model_id, score_name, score[-1]])
                                      +    result = pd.DataFrame(columns=["model_id", "score_name", "last_value"], data=data)
                                      +    return result.set_index(["model_id", "score_name"])
                                      +
                                      def get_init_parameters(self, not_include=[])
                                      +
                                      + +Expand source code + +
                                      def get_init_parameters(self, not_include=list()):
                                      +    init_artm_parameter_names = [
                                      +        p.name for p in list(signature(artm.ARTM.__init__).parameters.values())
                                      +    ][1:]
                                      +    parameters = transform_complex_entity_to_dict(self._model)
                                      +    filtered = dict()
                                      +    for parameter_name, parameter_value in parameters.items():
                                      +        if parameter_name not in not_include and parameter_name in init_artm_parameter_names:
                                      +            filtered[parameter_name] = parameter_value
                                      +    return filtered
                                      +
                                      def get_jsonable_from_parameters(self) @@ -174,6 +1852,43 @@

                                      Returns

                                      dict
                                      artm model parameters
                                      +
                                      + +Expand source code + +
                                      def get_jsonable_from_parameters(self):
                                      +    """
                                      +    Gets artm model params.
                                      +
                                      +    Returns
                                      +    -------
                                      +    dict
                                      +        artm model parameters
                                      +
                                      +    """
                                      +    parameters = transform_complex_entity_to_dict(self._model)
                                      +
                                      +    regularizers = {}
                                      +    for name, regularizer in iteritems(self._model._regularizers.data):
                                      +        tau = None
                                      +        gamma = None
                                      +        try:
                                      +            tau = regularizer.tau
                                      +            gamma = regularizer.gamma
                                      +        except KeyError:
                                      +            pass
                                      +        regularizers[name] = [str(regularizer.config), tau, gamma]
                                      +    for name, regularizer in iteritems(self.custom_regularizers):
                                      +        tau = getattr(regularizer, 'tau', None)
                                      +        gamma = getattr(regularizer, 'gamma', None)
                                      +        config = str(getattr(regularizer, 'config', ''))
                                      +        regularizers[name] = [config, tau, gamma]
                                      +
                                      +    parameters['regularizers'] = regularizers
                                      +    parameters['version'] = artm.version()
                                      +
                                      +    return parameters
                                      +
                                      def get_phi(self, topic_names=None, class_ids=None, model_name=None) @@ -197,6 +1912,56 @@

                                      Returns

                                      pd.DataFrame
                                      phi matrix
                                      +
                                      + +Expand source code + +
                                      def get_phi(self, topic_names=None, class_ids=None, model_name=None):
                                      +    """
                                      +    Gets custom Phi matrix of model.
                                      +
                                      +    Parameters
                                      +    ----------
                                      +    topic_names : list of str or str
                                      +        list with topics or single topic to extract,
                                      +        None value means all topics (Default value = None)
                                      +    class_ids : list of str or str
                                      +        list with class_ids or single class_id to extract,
                                      +        None means all class ids (Default value = None)
                                      +    model_name : str
                                      +        self.model.model_pwt by default, self.model.model_nwt is also
                                      +        reasonable to extract unnormalized counters
                                      +
                                      +    Returns
                                      +    -------
                                      +    pd.DataFrame
                                      +        phi matrix
                                      +
                                      +    """
                                      +    if ARTM_NINE:
                                      +        phi_parts_array = []
                                      +        if isinstance(class_ids, str):
                                      +            class_ids = [class_ids]
                                      +        class_ids_iter = class_ids or self._model.class_ids
                                      +        # TODO: this workaround seems to be a correct solution to this problem
                                      +        if not class_ids_iter:
                                      +            valid_model_name = self._model.model_pwt
                                      +            info = self._model.master.get_phi_info(valid_model_name)
                                      +            class_ids_iter = list(set(info.class_id))
                                      +
                                      +        for class_id in class_ids_iter:
                                      +            phi_part = self._model.get_phi(topic_names, class_id, model_name)
                                      +            phi_part.index.rename("token", inplace=True)
                                      +            phi_part.reset_index(inplace=True)
                                      +            phi_part["modality"] = class_id
                                      +            phi_parts_array.append(phi_part)
                                      +        phi = pd.concat(phi_parts_array).set_index(['modality', 'token'])
                                      +    else:
                                      +        phi = self._model.get_phi(topic_names, class_ids, model_name)
                                      +        phi.index = pd.MultiIndex.from_tuples(phi.index, names=('modality', 'token'))
                                      +
                                      +    return phi
                                      +
                                      def get_phi_dense(self, topic_names=None, class_ids=None, model_name=None) @@ -220,6 +1985,34 @@

                                      Returns

                                      3-tuple
                                      dense phi matrix
                                      +
                                      + +Expand source code + +
                                      def get_phi_dense(self, topic_names=None, class_ids=None, model_name=None):
                                      +    """
                                      +    Gets custom Phi matrix of model.
                                      +
                                      +    Parameters
                                      +    ----------
                                      +    topic_names : list of str or str
                                      +        list with topics or single topic to extract,
                                      +        None value means all topics (Default value = None)
                                      +    class_ids : list of str or str
                                      +        list with class_ids or single class_id to extract,
                                      +        None means all class ids (Default value = None)
                                      +    model_name : str
                                      +        self.model.model_pwt by default, self.model.model_nwt is also
                                      +        reasonable to extract unnormalized counters
                                      +
                                      +    Returns
                                      +    -------
                                      +    3-tuple
                                      +        dense phi matrix
                                      +
                                      +    """
                                      +    return self._model.get_phi_dense(topic_names, class_ids, model_name)
                                      +
                                      def get_phi_sparse(self, topic_names=None, class_ids=None, model_name=None, eps=None) @@ -245,6 +2038,36 @@

                                      Returns

                                      3-tuple
                                      sparse phi matrix
                                      +
                                      + +Expand source code + +
                                      def get_phi_sparse(self, topic_names=None, class_ids=None, model_name=None, eps=None):
                                      +    """
                                      +    Gets custom Phi matrix of model as sparse scipy matrix.
                                      +
                                      +    Parameters
                                      +    ----------
                                      +    topic_names : list of str or str
                                      +        list with topics or single topic to extract,
                                      +        None value means all topics (Default value = None)
                                      +    class_ids : list of str or str
                                      +        list with class_ids or single class_id to extract,
                                      +        None means all class ids (Default value = None)
                                      +    model_name : str
                                      +        self.model.model_pwt by default, self.model.model_nwt is also
                                      +        reasonable to extract unnormalized counters
                                      +    eps : float
                                      +        threshold to consider values as zero (Default value = None)
                                      +
                                      +    Returns
                                      +    -------
                                      +    3-tuple
                                      +        sparse phi matrix
                                      +
                                      +    """
                                      +    return self._model.get_phi_sparse(topic_names, class_ids, model_name, eps)
                                      +
                                      def get_theta(self, topic_names=None, dataset=None, theta_matrix_type='dense_theta', predict_class_id=None, sparse=False, eps=None) @@ -279,6 +2102,69 @@

                                      Returns

                                      pd.DataFrame
                                      theta matrix
                                      +
                                      + +Expand source code + +
                                      def get_theta(self, topic_names=None,
                                      +              dataset=None,
                                      +              theta_matrix_type='dense_theta',
                                      +              predict_class_id=None,
                                      +              sparse=False,
                                      +              eps=None,):
                                      +    """
                                      +    Gets Theta matrix as pandas DataFrame
                                      +    or sparse scipy matrix.
                                      +
                                      +    Parameters
                                      +    ----------
                                      +    topic_names : list of str or str
                                      +        list with topics or single topic to extract,
                                      +        None value means all topics (Default value = None)
                                      +    dataset : Dataset
                                      +        an instance of Dataset class (Default value = None)
                                      +    theta_matrix_type : str
                                      +        type of matrix to be returned, possible values:
                                      +        ‘dense_theta’, ‘dense_ptdw’, ‘cache’, None (Default value = ’dense_theta’)
                                      +    predict_class_id : str
                                      +        class_id of a target modality to predict. When this option
                                      +        is enabled the resulting columns of theta matrix will
                                      +        correspond to unique labels of a target modality. The values
                                      +        will represent p(c|d), which give the probability of class
                                      +        label c for document d (Default value = None)
                                      +    sparse : bool
                                      +        if method returns sparse representation of the data (Default value = False)
                                      +    eps : float
                                      +        threshold to consider values as zero. Required for sparse matrix.
                                      +        depends on the collection (Default value = None)
                                      +
                                      +    Returns
                                      +    -------
                                      +    pd.DataFrame
                                      +        theta matrix
                                      +
                                      +    """
                                      +    # assuming particular case of BigARTM library that user can't get theta matrix
                                      +    # without cache_theta == True. This also covers theta_name == None case
                                      +    if self._cache_theta:
                                      +        # TODO wrap sparse in pd.SparseDataFrame and check that viewers work with that output
                                      +        if sparse:
                                      +            return self._model.get_theta_sparse(topic_names, eps)
                                      +        else:
                                      +            return self._model.get_theta(topic_names)
                                      +    else:
                                      +        if dataset is None:
                                      +            raise ValueError("To get theta a dataset is required")
                                      +        else:
                                      +            batch_vectorizer = dataset.get_batch_vectorizer()
                                      +            if sparse:
                                      +                return self._model.transform_sparse(batch_vectorizer, eps)
                                      +            else:
                                      +                theta = self._model.transform(batch_vectorizer,
                                      +                                              theta_matrix_type,
                                      +                                              predict_class_id)
                                      +                return theta
                                      +
                                      def make_dummy(self, save_to_drive=True, save_path=None, dataset=None) @@ -298,6 +2184,53 @@

                                      Parameters

                                      Notes

                                      After calling the method, the model is still of type TopicModel, but all its attributes are now like DummyTopicModel's

                                      +
                                      + +Expand source code + +
                                      def make_dummy(self, save_to_drive=True, save_path=None, dataset=None):
                                      +    """Makes topic model dummy in-place
                                      +
                                      +    Parameters
                                      +    ----------
                                      +    save_to_drive : bool
                                      +        Whether to save model to drive or not. If not, the info will be lost
                                      +    save_path : str (or None)
                                      +        Path to folder to dump info to
                                      +    dataset : Dataset
                                      +        Dataset with text collection on which the model was trained.
                                      +        Needed for saving Theta matrix
                                      +
                                      +    Notes
                                      +    -----
                                      +    After calling the method, the model is still of type TopicModel,
                                      +    but all its attributes are now like DummyTopicModel's
                                      +    """
                                      +    from .dummy_topic_model import DummyTopicModel
                                      +    from .dummy_topic_model import WARNING_ALREADY_DUMMY
                                      +
                                      +    if hasattr(self, DummyTopicModel._dummy_attribute):
                                      +        warnings.warn(WARNING_ALREADY_DUMMY)
                                      +
                                      +        return
                                      +
                                      +    if not save_to_drive:
                                      +        save_path = None
                                      +    else:
                                      +        save_path = save_path or self.model_default_save_path
                                      +        save_theta = self._model._cache_theta or (dataset is not None)
                                      +        self.save(save_path, phi=True, theta=save_theta, dataset=dataset)
                                      +
                                      +    dummy = self.to_dummy()
                                      +    dummy._original_model_save_folder_path = save_path
                                      +
                                      +    self._model.dispose()
                                      +    self._model = dummy._model
                                      +
                                      +    del dummy
                                      +
                                      +    setattr(self, DummyTopicModel._dummy_attribute, True)
                                      +
                                      def save(self, model_save_path=None, phi=True, theta=False, dataset=None) @@ -316,12 +2249,96 @@

                                      Parameters

                                      dataset : Dataset
                                      dataset
                                      +
                                      + +Expand source code + +
                                      def save(self,
                                      +         model_save_path=None,
                                      +         phi=True,
                                      +         theta=False,
                                      +         dataset=None,):
                                      +    """
                                      +    Saves model description and dumps artm model.
                                      +    Use this method if you want to dump the model.
                                      +
                                      +    Parameters
                                      +    ----------
                                      +    model_save_path : str
                                      +        path to the folder with dumped info about model
                                      +    phi : bool
                                      +        save phi in csv format if True
                                      +    theta : bool
                                      +        save theta in csv format if True
                                      +    dataset : Dataset
                                      +         dataset
                                      +
                                      +    """
                                      +    if model_save_path is None:
                                      +        model_save_path = self.model_default_save_path
                                      +
                                      +    if not os.path.exists(model_save_path):
                                      +        os.makedirs(model_save_path)
                                      +    if phi:
                                      +        self._model.get_phi().to_csv(f"{model_save_path}/phi.csv")
                                      +    if theta:
                                      +        self.get_theta(dataset=dataset).to_csv(f"{model_save_path}/theta.csv")
                                      +
                                      +    model_itself_save_path = f"{model_save_path}/model"
                                      +
                                      +    if os.path.exists(model_itself_save_path):
                                      +        shutil.rmtree(model_itself_save_path)
                                      +    self._model.dump_artm_model(model_itself_save_path)
                                      +    self.save_parameters(model_save_path)
                                      +
                                      +    for score_name, score_object in self.custom_scores.items():
                                      +        save_path = os.path.join(model_save_path, score_name + '.p')
                                      +        with open(save_path, 'wb') as score_f:
                                      +            try:
                                      +                dill.dump(score_object, score_f)
                                      +            except pickle.PicklingError:
                                      +                warnings.warn(
                                      +                    f'Failed to save custom score "{score_object}" correctly! '
                                      +                    f'Freezing score (saving only its value)'
                                      +                )
                                      +
                                      +                frozen_score_object = FrozenScore(score_object.value)
                                      +                dill.dump(frozen_score_object, score_f)
                                      +
                                      +    self.save_custom_regularizers(model_save_path)
                                      +
                                      +    for i, agent in enumerate(self.callbacks):
                                      +        save_path = os.path.join(model_save_path, f"callback_{i}.pkl")
                                      +        with open(save_path, 'wb') as agent_f:
                                      +            dill.dump(agent, agent_f)
                                      +
                                      def save_custom_regularizers(self, model_save_path=None)
                                      +
                                      + +Expand source code + +
                                      def save_custom_regularizers(self, model_save_path=None):
                                      +    if model_save_path is None:
                                      +        model_save_path = self.model_default_save_path
                                      +
                                      +    for regularizer_name, regularizer_object in self.custom_regularizers.items():
                                      +        try:
                                      +            save_path = os.path.join(model_save_path, regularizer_name + '.rd')
                                      +            with open(save_path, 'wb') as reg_f:
                                      +                dill.dump(regularizer_object, reg_f)
                                      +        except (TypeError, AttributeError):
                                      +            try:
                                      +                save_path = os.path.join(model_save_path, regularizer_name + '.rp')
                                      +                with open(save_path, 'wb') as reg_f:
                                      +                    pickle.dump(regularizer_object, reg_f)
                                      +            except (TypeError, AttributeError):
                                      +                warnings.warn(f'Cannot save {regularizer_name} regularizer.')
                                      +
                                      def to_dummy(self) @@ -337,6 +2354,42 @@

                                      Returns

                                      Notes

                                      Dummy model has the same model_id as the original model, but "model_id" key in experiment.models contains original model, not dummy

                                      +
                                      + +Expand source code + +
                                      def to_dummy(self):
                                      +    """Creates dummy model
                                      +
                                      +    Returns
                                      +    -------
                                      +    DummyTopicModel
                                      +        Dummy model: without inner ARTM model,
                                      +        but with scores and init parameters of calling TopicModel
                                      +
                                      +    Notes
                                      +    -----
                                      +    Dummy model has the same model_id as the original model,
                                      +    but "model_id" key in experiment.models contains original model, not dummy
                                      +    """
                                      +    from .dummy_topic_model import DummyTopicModel
                                      +    # python crashes if place this import on top of the file
                                      +    # import circle: TopicModel -> DummyTopicModel -> TopicModel
                                      +
                                      +    dummy = DummyTopicModel(
                                      +        init_parameters=self.get_init_parameters(),
                                      +        scores=self.scores,
                                      +        model_id=self.model_id,
                                      +        parent_model_id=self.parent_model_id,
                                      +        description=self.description,
                                      +        experiment=self.experiment
                                      +    )
                                      +
                                      +    # BaseModel spoils model_id trying to make it unique
                                      +    dummy._model_id = self.model_id  # accessing private field instead of public property
                                      +
                                      +    return dummy
                                      +

                                      Inherited members

                                      @@ -368,9 +2421,6 @@

                                      Index

                                    • Classes

                                      • -

                                        EmptyScore

                                        -
                                      • -
                                      • TopicModel

                                        • all_regularizers
                                        • @@ -400,7 +2450,9 @@

                                          + + \ No newline at end of file diff --git a/docs/cooking_machine/models/topic_prior_regularizer.html b/docs/cooking_machine/models/topic_prior_regularizer.html index 4c723ba..e1decc3 100644 --- a/docs/cooking_machine/models/topic_prior_regularizer.html +++ b/docs/cooking_machine/models/topic_prior_regularizer.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.models.topic_prior_regularizer API documentation - + + @@ -19,6 +20,127 @@

                                          Module topicnet.cooking_machine.models.topic_prior_regularizer

                                          +
                                          + +Expand source code + +
                                          import numpy as np
                                          +import warnings
                                          +from .base_regularizer import BaseRegularizer
                                          +
                                          +
                                          +class TopicPriorRegularizer(BaseRegularizer):
                                          +    """
                                          +    TopicPriorRegularizer adds prior beta_t to every column
                                          +    in Phi matrix of ARTM model. Thus every phi_wt has
                                          +    preassigned prior probability of being attached to topic t.
                                          +
                                          +    If beta is balanced with respect to apriori collection balance,
                                          +    topics become better and save n_t balance.
                                          +
                                          +    """  # noqa: W291
                                          +    def __init__(self, name, tau, num_topics=None, beta=1):
                                          +        """
                                          +
                                          +        Parameters
                                          +        ----------
                                          +        name : str
                                          +            Regularizer name
                                          +        tau : float
                                          +            Regularizer influence degree
                                          +        num_topics : int
                                          +            Number of topics for uniform sampling
                                          +        beta : float or list or np.array
                                          +            Prior for columns of Phi matrix (Default value = 1)
                                          +
                                          +        """
                                          +        super().__init__(name, tau)
                                          +
                                          +        beta_is_n_dim = isinstance(beta, (list, np.ndarray))
                                          +        if beta_is_n_dim and (num_topics is not None) and len(beta) != num_topics:
                                          +            raise ValueError('Beta dimension doesn\'t equal num_topics.')
                                          +        if num_topics is None and not beta_is_n_dim:
                                          +            warnings.warn('Num topics set to 1.')
                                          +            num_topics = 1
                                          +
                                          +        if beta_is_n_dim:
                                          +            if np.sum(np.array(beta)) == 0:
                                          +                raise ValueError('Incorrect input beta: at least one value must be greater zero.')
                                          +            if np.min(np.array(beta)) < 0:
                                          +                raise ValueError('Incorrect input beta: all values must be greater or equal zero.')
                                          +
                                          +            self.beta = np.array(beta)
                                          +            self.beta = self.beta / np.sum(self.beta)
                                          +        else:
                                          +            self.beta = np.ones(num_topics)
                                          +
                                          +    def grad(self, pwt, nwt):
                                          +        grad_array = np.repeat([self.beta * self.tau], pwt.shape[0], axis=0)
                                          +
                                          +        return grad_array
                                          +
                                          +
                                          +class TopicPriorSampledRegularizer(BaseRegularizer):
                                          +    """
                                          +    TopicPriorSampleRegularizer adds prior beta_t to every column
                                          +    in Phi matrix of ARTM model. Thus every phi_wt has
                                          +    preassigned prior probability of being attached to topic t.
                                          +
                                          +    Beta vector is sampled from
                                          +    Dirichlet distribution with parameter beta_prior.
                                          +    By varying beta_prior one can apply different degrees of balance to model.
                                          +    Beta_prior influence:
                                          +        1 - fully random balance
                                          +        << 1 - uniform distribution of topics size
                                          +        >> 1 - highly unbalanced distribution of topics size
                                          +
                                          +    If beta is balanced with respect to apriori collection balance,
                                          +    topics become better and save n_t balance.
                                          +
                                          +    """  # noqa: W291
                                          +    def __init__(self, name, tau, num_topics=None, beta_prior=(), random_seed=42):
                                          +        """
                                          +
                                          +        Parameters
                                          +        ----------
                                          +        name : str
                                          +            Regularizer name
                                          +        tau : float
                                          +            Regularizer influence degree
                                          +        num_topics : int
                                          +            Number of topics for uniform sampling
                                          +        beta_prior : list or np.array
                                          +            Prior for Dirichlet distribution to sample beta parameter
                                          +        random_seed : int
                                          +            Random seed for Dirichlet distribution (Default value = 42)
                                          +
                                          +        """
                                          +        super().__init__(name, tau)
                                          +
                                          +        if num_topics is None and len(beta_prior) == 0:
                                          +            warnings.warn('Num topics set to 1.')
                                          +            num_topics = 1
                                          +
                                          +        beta_prior_is_n_dim = isinstance(beta_prior, (list, np.ndarray))
                                          +        if len(beta_prior) != 0 and beta_prior_is_n_dim:
                                          +            if np.sum(np.array(beta_prior)) == 0:
                                          +                raise ValueError(
                                          +                    'Incorrect input beta_prior: at least one value must be greater zero.'
                                          +                )
                                          +            if np.min(np.array(beta_prior)) < 0:
                                          +                raise ValueError(
                                          +                    'Incorrect input beta_prior: all values must be greater or equal zero.'
                                          +                )
                                          +
                                          +            self.beta = np.random.RandomState(random_seed).dirichlet(beta_prior)
                                          +        else:
                                          +            self.beta = np.random.RandomState(random_seed).dirichlet([1 for _ in range(num_topics)])
                                          +
                                          +    def grad(self, pwt, nwt):
                                          +        grad_array = np.repeat([self.beta * self.tau], pwt.shape[0], axis=0)
                                          +
                                          +        return grad_array
                                          +
                                          @@ -50,6 +172,60 @@

                                          Parameters

                                          beta : float or list or np.array
                                          Prior for columns of Phi matrix (Default value = 1)
                                          +
                                          + +Expand source code + +
                                          class TopicPriorRegularizer(BaseRegularizer):
                                          +    """
                                          +    TopicPriorRegularizer adds prior beta_t to every column
                                          +    in Phi matrix of ARTM model. Thus every phi_wt has
                                          +    preassigned prior probability of being attached to topic t.
                                          +
                                          +    If beta is balanced with respect to apriori collection balance,
                                          +    topics become better and save n_t balance.
                                          +
                                          +    """  # noqa: W291
                                          +    def __init__(self, name, tau, num_topics=None, beta=1):
                                          +        """
                                          +
                                          +        Parameters
                                          +        ----------
                                          +        name : str
                                          +            Regularizer name
                                          +        tau : float
                                          +            Regularizer influence degree
                                          +        num_topics : int
                                          +            Number of topics for uniform sampling
                                          +        beta : float or list or np.array
                                          +            Prior for columns of Phi matrix (Default value = 1)
                                          +
                                          +        """
                                          +        super().__init__(name, tau)
                                          +
                                          +        beta_is_n_dim = isinstance(beta, (list, np.ndarray))
                                          +        if beta_is_n_dim and (num_topics is not None) and len(beta) != num_topics:
                                          +            raise ValueError('Beta dimension doesn\'t equal num_topics.')
                                          +        if num_topics is None and not beta_is_n_dim:
                                          +            warnings.warn('Num topics set to 1.')
                                          +            num_topics = 1
                                          +
                                          +        if beta_is_n_dim:
                                          +            if np.sum(np.array(beta)) == 0:
                                          +                raise ValueError('Incorrect input beta: at least one value must be greater zero.')
                                          +            if np.min(np.array(beta)) < 0:
                                          +                raise ValueError('Incorrect input beta: all values must be greater or equal zero.')
                                          +
                                          +            self.beta = np.array(beta)
                                          +            self.beta = self.beta / np.sum(self.beta)
                                          +        else:
                                          +            self.beta = np.ones(num_topics)
                                          +
                                          +    def grad(self, pwt, nwt):
                                          +        grad_array = np.repeat([self.beta * self.tau], pwt.shape[0], axis=0)
                                          +
                                          +        return grad_array
                                          +

                                          Ancestors

                                    • +
                                      + +Expand source code + +
                                      def grad(self, pwt, nwt):
                                      +    grad_array = np.repeat([self.beta * self.tau], pwt.shape[0], axis=0)
                                      +
                                      +    return grad_array
                                      +

                                      Inherited members

                                      @@ -102,6 +287,71 @@

                                      Parameters

                                      random_seed : int
                                      Random seed for Dirichlet distribution (Default value = 42)
                                      +
                                      + +Expand source code + +
                                      class TopicPriorSampledRegularizer(BaseRegularizer):
                                      +    """
                                      +    TopicPriorSampleRegularizer adds prior beta_t to every column
                                      +    in Phi matrix of ARTM model. Thus every phi_wt has
                                      +    preassigned prior probability of being attached to topic t.
                                      +
                                      +    Beta vector is sampled from
                                      +    Dirichlet distribution with parameter beta_prior.
                                      +    By varying beta_prior one can apply different degrees of balance to model.
                                      +    Beta_prior influence:
                                      +        1 - fully random balance
                                      +        << 1 - uniform distribution of topics size
                                      +        >> 1 - highly unbalanced distribution of topics size
                                      +
                                      +    If beta is balanced with respect to apriori collection balance,
                                      +    topics become better and save n_t balance.
                                      +
                                      +    """  # noqa: W291
                                      +    def __init__(self, name, tau, num_topics=None, beta_prior=(), random_seed=42):
                                      +        """
                                      +
                                      +        Parameters
                                      +        ----------
                                      +        name : str
                                      +            Regularizer name
                                      +        tau : float
                                      +            Regularizer influence degree
                                      +        num_topics : int
                                      +            Number of topics for uniform sampling
                                      +        beta_prior : list or np.array
                                      +            Prior for Dirichlet distribution to sample beta parameter
                                      +        random_seed : int
                                      +            Random seed for Dirichlet distribution (Default value = 42)
                                      +
                                      +        """
                                      +        super().__init__(name, tau)
                                      +
                                      +        if num_topics is None and len(beta_prior) == 0:
                                      +            warnings.warn('Num topics set to 1.')
                                      +            num_topics = 1
                                      +
                                      +        beta_prior_is_n_dim = isinstance(beta_prior, (list, np.ndarray))
                                      +        if len(beta_prior) != 0 and beta_prior_is_n_dim:
                                      +            if np.sum(np.array(beta_prior)) == 0:
                                      +                raise ValueError(
                                      +                    'Incorrect input beta_prior: at least one value must be greater zero.'
                                      +                )
                                      +            if np.min(np.array(beta_prior)) < 0:
                                      +                raise ValueError(
                                      +                    'Incorrect input beta_prior: all values must be greater or equal zero.'
                                      +                )
                                      +
                                      +            self.beta = np.random.RandomState(random_seed).dirichlet(beta_prior)
                                      +        else:
                                      +            self.beta = np.random.RandomState(random_seed).dirichlet([1 for _ in range(num_topics)])
                                      +
                                      +    def grad(self, pwt, nwt):
                                      +        grad_array = np.repeat([self.beta * self.tau], pwt.shape[0], axis=0)
                                      +
                                      +        return grad_array
                                      +

                                      Ancestors

                                      • BaseRegularizer
                                      • @@ -113,6 +363,15 @@

                                        Methods

                                        +
                                        + +Expand source code + +
                                        def grad(self, pwt, nwt):
                                        +    grad_array = np.repeat([self.beta * self.tau], pwt.shape[0], axis=0)
                                        +
                                        +    return grad_array
                                        +

                                        Inherited members

                                        @@ -158,7 +417,9 @@

                                        -

                                        Generated by pdoc 0.6.3.

                                        +

                                        Generated by pdoc 0.7.2.

                                        + + \ No newline at end of file diff --git a/docs/cooking_machine/pretty_output.html b/docs/cooking_machine/pretty_output.html index 4e2bde1..d0e71d6 100644 --- a/docs/cooking_machine/pretty_output.html +++ b/docs/cooking_machine/pretty_output.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.pretty_output API documentation - + + @@ -19,6 +20,312 @@

                                        Module topicnet.cooking_machine.pretty_output

                                        +
                                        + +Expand source code + +
                                        import numpy as np
                                        +
                                        +from datetime import datetime
                                        +from .routine import get_fix_string, get_fix_list
                                        +from .routine import get_equal_strings, get_equal_lists
                                        +from .models.base_model import MODEL_NAME_LENGTH
                                        +
                                        +UP_END = "┌"
                                        +DOWN_END = "└"
                                        +MIDDLE = "├"
                                        +LAST = "┤"
                                        +EMPTY = "│"
                                        +START_END = "┐"
                                        +SPACE = " "
                                        +
                                        +USELESS_SUBKEYS = {
                                        +    "type", "verbose", "config"
                                        +}
                                        +USELESS_KEYS = {
                                        +    "reuse_theta", "cache_theta", "num_document_passes", "theta_name",
                                        +    "parent_model_weight", "theta_columns_naming", "transaction_typenames",
                                        +    "score_tracker", "model_pwt", "model_nwt",
                                        +    "num_phi_updates", "num_online_processed_batches", "show_progress_bars",
                                        +    "library_version", "version", "regularizers",
                                        +}
                                        +
                                        +
                                        +def resize_value(key, value, tab: str = "  "):
                                        +    """
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    key : str
                                        +    value : optional
                                        +    tab: str
                                        +         (Default value = "  ")
                                        +
                                        +    Returns
                                        +    -------
                                        +    list
                                        +
                                        +    """
                                        +    if key in ["scores", "taus", "criteria"]:
                                        +        return [(tab + elem) for elem
                                        +                in get_fix_list(value, length=-1, num=-1)]
                                        +    if isinstance(value, (list, tuple, np.ndarray)):
                                        +        return [(tab + elem) for elem
                                        +                in get_fix_list(value, length=-1, num=5)]
                                        +    if isinstance(value, dict):
                                        +        def _trim(some_value):
                                        +            if isinstance(some_value, list):
                                        +                if len(some_value) > 4:
                                        +                    some_value = some_value[:2] + ["..."] + some_value[-2:]
                                        +                if len(some_value) > 0:
                                        +                    all_strings = all([isinstance(elem, str) for elem in some_value])
                                        +                    if all_strings:
                                        +                        some_value = "[" + ", ".join(some_value) + "]"
                                        +            return some_value
                                        +        pairs = [
                                        +            f"{key}={_trim(some_value)}"
                                        +            for key, some_value in value.items()
                                        +            if key not in USELESS_SUBKEYS and some_value is not None
                                        +        ]
                                        +
                                        +        return [(tab + elem) for elem in get_fix_list(pairs, length=-1, num=15)]
                                        +    return [tab + get_fix_string(value, length=-1)]
                                        +
                                        +
                                        +def get_cube_strings(cubes, tab: str = "  ", min_len_per_cube: int = MODEL_NAME_LENGTH):
                                        +    """
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    cubes : list of dict
                                        +    tab : str
                                        +         (Default value = "  ")
                                        +    min_len_per_cube : int
                                        +         (Default value = MODEL_NAME_LENGTH defined in BaseModel)
                                        +
                                        +    Returns
                                        +    -------
                                        +    dict
                                        +
                                        +    """
                                        +    cube_strings = dict()
                                        +    for id_cube, cube in enumerate(cubes):
                                        +        cube_strings[id_cube] = []
                                        +        cube_strings[id_cube].append(f"{cube['action'].upper()}")
                                        +        for key, value in cube.items():
                                        +            if key not in ["action", "params"]:
                                        +                cube_strings[id_cube] += [get_fix_string(key, length=-1) + ":",
                                        +                                          tab + get_fix_string(value, length=-1)]
                                        +        cube_strings[id_cube].append("")
                                        +        for params in cube["params"]:
                                        +            for key, value in params.items():
                                        +                if (key[0] != "_") and (key[-1] != "_"):
                                        +                    if key not in USELESS_KEYS:
                                        +                        cube_strings[id_cube].append(get_fix_string(key, length=-1) + ":")
                                        +                        cube_strings[id_cube] += resize_value(key, value, tab)
                                        +            cube_strings[id_cube].append("   +   ")
                                        +        cube_strings[id_cube][-1] = ""
                                        +        get_equal_strings(cube_strings[id_cube], min_len=min_len_per_cube)
                                        +    get_equal_lists(cube_strings)
                                        +    return cube_strings
                                        +
                                        +
                                        +def get_criteria_strings(criteria, tab: str = "  ", min_len_per_cube: int = MODEL_NAME_LENGTH):
                                        +    """
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    criteria : list of str
                                        +    tab : str
                                        +         (Default value = "  ")
                                        +    min_len_per_cube : int
                                        +         (Default value = MODEL_NAME_LENGTH defined in BaseModel)
                                        +
                                        +    Returns
                                        +    -------
                                        +    dict
                                        +
                                        +    """
                                        +    criterion_strings = dict()
                                        +    for id_criterion, criterion in enumerate(criteria):
                                        +        criterion_strings[id_criterion] = []
                                        +        if criterion is None:
                                        +            criterion_strings[id_criterion].append(' ')
                                        +        else:
                                        +            for statement_id, statement in enumerate(criterion, 1):
                                        +                stage = statement.split(' and ')
                                        +                if len(stage) > 1:
                                        +                    heading = f'stage criteria {statement_id}:'
                                        +                else:
                                        +                    heading = f'stage criterion {statement_id}:'
                                        +                criterion_strings[id_criterion].append(heading)
                                        +                for rule in stage:
                                        +                    criterion_strings[id_criterion].append(tab * 2 + rule)
                                        +                criterion_strings[id_criterion].append("")
                                        +        get_equal_strings(criterion_strings[id_criterion], min_len=min_len_per_cube)
                                        +    get_equal_lists(criterion_strings)
                                        +    return criterion_strings
                                        +
                                        +
                                        +def add_non_tree_strings(strings, strings_to_add, add_separator=True):
                                        +    """
                                        +    Adding training stage strings
                                        +    to the experiment description
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    strings : list of strings
                                        +        description of the experiment
                                        +    strings_to_add : dict of lists of strings
                                        +        new information to add to the experiment
                                        +    add_separator : bool
                                        +        make pretty separation line
                                        +        at the end of this strings (Default value = True)
                                        +
                                        +    Returns
                                        +    -------
                                        +    strings : list of strings
                                        +        description of the experiment
                                        +    """
                                        +    separation_string = ''
                                        +    for id_string in range(len(strings_to_add[0])):
                                        +        string = " "
                                        +        for id_stage, value in strings_to_add.items():
                                        +            string += value[id_string] + " | "
                                        +            if len(separation_string) < len(string):
                                        +                separation_string += "─" * (len(value[id_string]) + 2) + '+'
                                        +        string = string[:-3]
                                        +        strings.append(string)
                                        +    if add_separator:
                                        +        strings.append(separation_string[:-3])
                                        +    return strings
                                        +
                                        +
                                        +def give_strings_description(experiment,
                                        +                             tab: str = "  ",
                                        +                             min_len_per_cube: int = MODEL_NAME_LENGTH,
                                        +                             len_tree_step: int = MODEL_NAME_LENGTH + 1):
                                        +    """
                                        +    Gets strings description of the experiment.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    tab : str
                                        +        tab symbol for margin (Default value = "  ")
                                        +    min_len_per_cube : int
                                        +        minimal length of one stage of description experiment
                                        +        (Default value = MODEL_NAME_LENGTH defined in BaseModel)
                                        +    len_tree_step : int
                                        +        length of the whole one stage description of experiment's tree
                                        +        (Default value = MODEL_NAME_LENGTH + 1 defined in BaseModel)
                                        +
                                        +    Returns
                                        +    -------
                                        +    list
                                        +        strings description
                                        +
                                        +    """
                                        +    version = 'not defined'
                                        +    for ind in range(len(experiment.cubes)):
                                        +        if experiment.cubes[ind]['params'][0].get('version', 'not defined') != 'not defined':
                                        +            version = experiment.cubes[ind]['params'][0]['version']
                                        +
                                        +    strings = [f"Experiment {experiment.experiment_id}", "",
                                        +               f"Experiment was made with BigARTM {version}"]
                                        +
                                        +    cube_strings = get_cube_strings(experiment.cubes, tab, min_len_per_cube)
                                        +    stage_strings = get_criteria_strings(experiment.criteria, tab, min_len_per_cube)
                                        +    tree_strings = experiment.tree.get_description()
                                        +    for key in range(len(cube_strings)):
                                        +        max_len_string = max(len(cube_strings[key][0]), len(stage_strings[key][0]))
                                        +        cube_strings[key] = [
                                        +            get_fix_string(string_cube, length=max_len_string)
                                        +            for string_cube in cube_strings[key]
                                        +        ]
                                        +        stage_strings[key] = [
                                        +            get_fix_string(string_stage, length=max_len_string)
                                        +            for string_stage in stage_strings[key]
                                        +        ]
                                        +    # merge strings together
                                        +    # st = test_len_tree_step - 1
                                        +    fi = -1
                                        +    st = len_tree_step - 1
                                        +    for id_cube, values in cube_strings.items():
                                        +        fi += len(values[-1]) + 3
                                        +        for id_string in range(len(tree_strings)):
                                        +            cur_string = tree_strings[id_string][:]
                                        +            if st < len(cur_string):
                                        +                if cur_string[st] == LAST or cur_string[st] == START_END:
                                        +                    tree_strings[id_string] = cur_string[:st] + "─" * (fi - st) \
                                        +                                              + cur_string[st:]
                                        +                else:
                                        +                    tree_strings[id_string] = cur_string[:st] + " " * (fi - st) \
                                        +                                              + cur_string[st:]
                                        +        st += fi - st + len_tree_step
                                        +
                                        +    strings.append("Tree:")
                                        +    strings += tree_strings
                                        +    strings.append("Cubes:")
                                        +    strings = add_non_tree_strings(strings, cube_strings, add_separator=True)
                                        +    strings = add_non_tree_strings(strings, stage_strings, add_separator=False)
                                        +    return strings
                                        +
                                        +
                                        +def get_html(experiment, window_size: int = 1500):
                                        +    """
                                        +    Gets html text to save human-readable description of the experiment.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    window_size : int
                                        +        pixels size of window in html description (Default value = 1500)
                                        +
                                        +    Returns
                                        +    -------
                                        +    str
                                        +        description of the experiment in html format
                                        +
                                        +    """
                                        +    # TODO разобраться с разной шириной пробела в шрифтах
                                        +    strings = give_strings_description(experiment)
                                        +    strings_html = ["<html>",
                                        +                    f"<p><font size='+5'>Experiment <b>{experiment.experiment_id}</b></font></p>",
                                        +                    f"<p><i>{strings[2]}</i></p>",
                                        +                    "<p></p>",
                                        +                    f"<td width=\"{window_size}px\" style=\"white-space:pre;\">",
                                        +                    f"<div style=\"width:{window_size}px;overflow:auto;white-space:pre;\">"]
                                        +    for string in strings[3:]:
                                        +        if string == "":
                                        +            strings_html.append("<p></p>")
                                        +        elif string in ["Tree:", "Cubes:"]:
                                        +            strings_html.append(f"<p><font size='+1'><b>{string}</b></font></p>")
                                        +        else:
                                        +            strings_html += ["<samp><font size='+1'>" + "&ensp;".join(string.split(" "))
                                        +                             + "</font></samp>"]
                                        +    strings_html += ["</div>", "</td>", "<p></p>",
                                        +                     "<p><i><font size='-1'>Page was generated at "
                                        +                     + str(datetime.now()) + ".</font></i></p>",
                                        +                     "</html>"]
                                        +    return "\n".join(strings_html)
                                        +
                                        +
                                        +def make_notebook_pretty():
                                        +    from IPython.core.display import display, HTML
                                        +
                                        +    display(HTML("""<style>
                                        +    div.output_html {
                                        +        white-space: nowrap;
                                        +    }
                                        +    div .output_subarea > pre {
                                        +        white-space: pre;
                                        +        word-wrap: normal;
                                        +    }
                                        +    div .output_stdout > pre {
                                        +        white-space: pre-wrap !important;
                                        +        word-wrap:  break-word !important;
                                        +    }
                                        +    </style>"""))
                                        +
                                        @@ -48,6 +355,43 @@

                                        Returns

                                        strings : list of strings
                                        description of the experiment
                                        +
                                        + +Expand source code + +
                                        def add_non_tree_strings(strings, strings_to_add, add_separator=True):
                                        +    """
                                        +    Adding training stage strings
                                        +    to the experiment description
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    strings : list of strings
                                        +        description of the experiment
                                        +    strings_to_add : dict of lists of strings
                                        +        new information to add to the experiment
                                        +    add_separator : bool
                                        +        make pretty separation line
                                        +        at the end of this strings (Default value = True)
                                        +
                                        +    Returns
                                        +    -------
                                        +    strings : list of strings
                                        +        description of the experiment
                                        +    """
                                        +    separation_string = ''
                                        +    for id_string in range(len(strings_to_add[0])):
                                        +        string = " "
                                        +        for id_stage, value in strings_to_add.items():
                                        +            string += value[id_string] + " | "
                                        +            if len(separation_string) < len(string):
                                        +                separation_string += "─" * (len(value[id_string]) + 2) + '+'
                                        +        string = string[:-3]
                                        +        strings.append(string)
                                        +    if add_separator:
                                        +        strings.append(separation_string[:-3])
                                        +    return strings
                                        +
                                        def get_criteria_strings(criteria, tab=' @@ -69,6 +413,46 @@

                                        Returns

                                        dict
                                         
                                        +
                                        + +Expand source code + +
                                        def get_criteria_strings(criteria, tab: str = "  ", min_len_per_cube: int = MODEL_NAME_LENGTH):
                                        +    """
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    criteria : list of str
                                        +    tab : str
                                        +         (Default value = "  ")
                                        +    min_len_per_cube : int
                                        +         (Default value = MODEL_NAME_LENGTH defined in BaseModel)
                                        +
                                        +    Returns
                                        +    -------
                                        +    dict
                                        +
                                        +    """
                                        +    criterion_strings = dict()
                                        +    for id_criterion, criterion in enumerate(criteria):
                                        +        criterion_strings[id_criterion] = []
                                        +        if criterion is None:
                                        +            criterion_strings[id_criterion].append(' ')
                                        +        else:
                                        +            for statement_id, statement in enumerate(criterion, 1):
                                        +                stage = statement.split(' and ')
                                        +                if len(stage) > 1:
                                        +                    heading = f'stage criteria {statement_id}:'
                                        +                else:
                                        +                    heading = f'stage criterion {statement_id}:'
                                        +                criterion_strings[id_criterion].append(heading)
                                        +                for rule in stage:
                                        +                    criterion_strings[id_criterion].append(tab * 2 + rule)
                                        +                criterion_strings[id_criterion].append("")
                                        +        get_equal_strings(criterion_strings[id_criterion], min_len=min_len_per_cube)
                                        +    get_equal_lists(criterion_strings)
                                        +    return criterion_strings
                                        +
                                        def get_cube_strings(cubes, tab=' @@ -90,6 +474,47 @@

                                        Returns

                                        dict
                                         
                                        +
                                        + +Expand source code + +
                                        def get_cube_strings(cubes, tab: str = "  ", min_len_per_cube: int = MODEL_NAME_LENGTH):
                                        +    """
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    cubes : list of dict
                                        +    tab : str
                                        +         (Default value = "  ")
                                        +    min_len_per_cube : int
                                        +         (Default value = MODEL_NAME_LENGTH defined in BaseModel)
                                        +
                                        +    Returns
                                        +    -------
                                        +    dict
                                        +
                                        +    """
                                        +    cube_strings = dict()
                                        +    for id_cube, cube in enumerate(cubes):
                                        +        cube_strings[id_cube] = []
                                        +        cube_strings[id_cube].append(f"{cube['action'].upper()}")
                                        +        for key, value in cube.items():
                                        +            if key not in ["action", "params"]:
                                        +                cube_strings[id_cube] += [get_fix_string(key, length=-1) + ":",
                                        +                                          tab + get_fix_string(value, length=-1)]
                                        +        cube_strings[id_cube].append("")
                                        +        for params in cube["params"]:
                                        +            for key, value in params.items():
                                        +                if (key[0] != "_") and (key[-1] != "_"):
                                        +                    if key not in USELESS_KEYS:
                                        +                        cube_strings[id_cube].append(get_fix_string(key, length=-1) + ":")
                                        +                        cube_strings[id_cube] += resize_value(key, value, tab)
                                        +            cube_strings[id_cube].append("   +   ")
                                        +        cube_strings[id_cube][-1] = ""
                                        +        get_equal_strings(cube_strings[id_cube], min_len=min_len_per_cube)
                                        +    get_equal_lists(cube_strings)
                                        +    return cube_strings
                                        +
                                        def get_html(experiment, window_size=1500) @@ -106,6 +531,47 @@

                                        Returns

                                        str
                                        description of the experiment in html format
                                        +
                                        + +Expand source code + +
                                        def get_html(experiment, window_size: int = 1500):
                                        +    """
                                        +    Gets html text to save human-readable description of the experiment.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    window_size : int
                                        +        pixels size of window in html description (Default value = 1500)
                                        +
                                        +    Returns
                                        +    -------
                                        +    str
                                        +        description of the experiment in html format
                                        +
                                        +    """
                                        +    # TODO разобраться с разной шириной пробела в шрифтах
                                        +    strings = give_strings_description(experiment)
                                        +    strings_html = ["<html>",
                                        +                    f"<p><font size='+5'>Experiment <b>{experiment.experiment_id}</b></font></p>",
                                        +                    f"<p><i>{strings[2]}</i></p>",
                                        +                    "<p></p>",
                                        +                    f"<td width=\"{window_size}px\" style=\"white-space:pre;\">",
                                        +                    f"<div style=\"width:{window_size}px;overflow:auto;white-space:pre;\">"]
                                        +    for string in strings[3:]:
                                        +        if string == "":
                                        +            strings_html.append("<p></p>")
                                        +        elif string in ["Tree:", "Cubes:"]:
                                        +            strings_html.append(f"<p><font size='+1'><b>{string}</b></font></p>")
                                        +        else:
                                        +            strings_html += ["<samp><font size='+1'>" + "&ensp;".join(string.split(" "))
                                        +                             + "</font></samp>"]
                                        +    strings_html += ["</div>", "</td>", "<p></p>",
                                        +                     "<p><i><font size='-1'>Page was generated at "
                                        +                     + str(datetime.now()) + ".</font></i></p>",
                                        +                     "</html>"]
                                        +    return "\n".join(strings_html)
                                        +
                                        def give_strings_description(experiment, tab=' @@ -130,12 +596,106 @@

                                        Returns

                                        list
                                        strings description
                                        +
                                        + +Expand source code + +
                                        def give_strings_description(experiment,
                                        +                             tab: str = "  ",
                                        +                             min_len_per_cube: int = MODEL_NAME_LENGTH,
                                        +                             len_tree_step: int = MODEL_NAME_LENGTH + 1):
                                        +    """
                                        +    Gets strings description of the experiment.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    tab : str
                                        +        tab symbol for margin (Default value = "  ")
                                        +    min_len_per_cube : int
                                        +        minimal length of one stage of description experiment
                                        +        (Default value = MODEL_NAME_LENGTH defined in BaseModel)
                                        +    len_tree_step : int
                                        +        length of the whole one stage description of experiment's tree
                                        +        (Default value = MODEL_NAME_LENGTH + 1 defined in BaseModel)
                                        +
                                        +    Returns
                                        +    -------
                                        +    list
                                        +        strings description
                                        +
                                        +    """
                                        +    version = 'not defined'
                                        +    for ind in range(len(experiment.cubes)):
                                        +        if experiment.cubes[ind]['params'][0].get('version', 'not defined') != 'not defined':
                                        +            version = experiment.cubes[ind]['params'][0]['version']
                                        +
                                        +    strings = [f"Experiment {experiment.experiment_id}", "",
                                        +               f"Experiment was made with BigARTM {version}"]
                                        +
                                        +    cube_strings = get_cube_strings(experiment.cubes, tab, min_len_per_cube)
                                        +    stage_strings = get_criteria_strings(experiment.criteria, tab, min_len_per_cube)
                                        +    tree_strings = experiment.tree.get_description()
                                        +    for key in range(len(cube_strings)):
                                        +        max_len_string = max(len(cube_strings[key][0]), len(stage_strings[key][0]))
                                        +        cube_strings[key] = [
                                        +            get_fix_string(string_cube, length=max_len_string)
                                        +            for string_cube in cube_strings[key]
                                        +        ]
                                        +        stage_strings[key] = [
                                        +            get_fix_string(string_stage, length=max_len_string)
                                        +            for string_stage in stage_strings[key]
                                        +        ]
                                        +    # merge strings together
                                        +    # st = test_len_tree_step - 1
                                        +    fi = -1
                                        +    st = len_tree_step - 1
                                        +    for id_cube, values in cube_strings.items():
                                        +        fi += len(values[-1]) + 3
                                        +        for id_string in range(len(tree_strings)):
                                        +            cur_string = tree_strings[id_string][:]
                                        +            if st < len(cur_string):
                                        +                if cur_string[st] == LAST or cur_string[st] == START_END:
                                        +                    tree_strings[id_string] = cur_string[:st] + "─" * (fi - st) \
                                        +                                              + cur_string[st:]
                                        +                else:
                                        +                    tree_strings[id_string] = cur_string[:st] + " " * (fi - st) \
                                        +                                              + cur_string[st:]
                                        +        st += fi - st + len_tree_step
                                        +
                                        +    strings.append("Tree:")
                                        +    strings += tree_strings
                                        +    strings.append("Cubes:")
                                        +    strings = add_non_tree_strings(strings, cube_strings, add_separator=True)
                                        +    strings = add_non_tree_strings(strings, stage_strings, add_separator=False)
                                        +    return strings
                                        +
                                        def make_notebook_pretty()
                                        +
                                        + +Expand source code + +
                                        def make_notebook_pretty():
                                        +    from IPython.core.display import display, HTML
                                        +
                                        +    display(HTML("""<style>
                                        +    div.output_html {
                                        +        white-space: nowrap;
                                        +    }
                                        +    div .output_subarea > pre {
                                        +        white-space: pre;
                                        +        word-wrap: normal;
                                        +    }
                                        +    div .output_stdout > pre {
                                        +        white-space: pre-wrap !important;
                                        +        word-wrap:  break-word !important;
                                        +    }
                                        +    </style>"""))
                                        +
                                        def resize_value(key, value, tab=' @@ -157,6 +717,50 @@

                                        Returns

                                        list
                                         
                                        +
                                        + +Expand source code + +
                                        def resize_value(key, value, tab: str = "  "):
                                        +    """
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    key : str
                                        +    value : optional
                                        +    tab: str
                                        +         (Default value = "  ")
                                        +
                                        +    Returns
                                        +    -------
                                        +    list
                                        +
                                        +    """
                                        +    if key in ["scores", "taus", "criteria"]:
                                        +        return [(tab + elem) for elem
                                        +                in get_fix_list(value, length=-1, num=-1)]
                                        +    if isinstance(value, (list, tuple, np.ndarray)):
                                        +        return [(tab + elem) for elem
                                        +                in get_fix_list(value, length=-1, num=5)]
                                        +    if isinstance(value, dict):
                                        +        def _trim(some_value):
                                        +            if isinstance(some_value, list):
                                        +                if len(some_value) > 4:
                                        +                    some_value = some_value[:2] + ["..."] + some_value[-2:]
                                        +                if len(some_value) > 0:
                                        +                    all_strings = all([isinstance(elem, str) for elem in some_value])
                                        +                    if all_strings:
                                        +                        some_value = "[" + ", ".join(some_value) + "]"
                                        +            return some_value
                                        +        pairs = [
                                        +            f"{key}={_trim(some_value)}"
                                        +            for key, some_value in value.items()
                                        +            if key not in USELESS_SUBKEYS and some_value is not None
                                        +        ]
                                        +
                                        +        return [(tab + elem) for elem in get_fix_list(pairs, length=-1, num=15)]
                                        +    return [tab + get_fix_string(value, length=-1)]
                                        +
                                        @@ -189,7 +793,9 @@

                                        Index

                                        + + \ No newline at end of file diff --git a/docs/cooking_machine/recipes/index.html b/docs/cooking_machine/recipes/index.html new file mode 100644 index 0000000..cff00e5 --- /dev/null +++ b/docs/cooking_machine/recipes/index.html @@ -0,0 +1,206 @@ + + + + + + +topicnet.cooking_machine.recipes API documentation + + + + + + + + + +
                                        +
                                        +
                                        +

                                        Module topicnet.cooking_machine.recipes

                                        +
                                        +

                                        Rapid prototyping

                                        +

                                        This module contains pipeline training recipes in .yml format

                                        +
                                        +
                                        + +Expand source code + +
                                        ARTM_baseline = '''
                                        +# This config follows a strategy described by Murat Apishev
                                        +# one of the core programmers of BigARTM library in personal correspondence.
                                        +# According to his letter 'decent' topic model can be obtained by
                                        +# Decorrelating model topics simultaneously looking at retrieved TopTokens
                                        +
                                        +
                                        +# Use .format(modality_list=modality_list, main_modality=main_modality, dataset_path=dataset_path,
                                        +# specific_topics=specific_topics, background_topics=background_topics)
                                        +# when loading the recipe to adjust for your dataset
                                        +
                                        +topics:
                                        +# Describes number of model topics, better left to the user to define optimal topic number
                                        +    specific_topics: {specific_topics} 
                                        +    background_topics: {background_topics}
                                        +
                                        +# Here is example of model with one modality
                                        +regularizers:
                                        +    - DecorrelatorPhiRegularizer:
                                        +        name: decorrelation_phi
                                        +        topic_names: specific_topics
                                        +        class_ids: {modality_list}
                                        +    - SmoothSparsePhiRegularizer:
                                        +        name: smooth_phi_bcg
                                        +        topic_names: background_topics
                                        +        class_ids: {modality_list}
                                        +        tau: 0.1
                                        +        relative: true
                                        +    - SmoothSparseThetaRegularizer:
                                        +        name: smooth_theta_bcg
                                        +        topic_names: background_topics
                                        +        tau: 0.1
                                        +        relative: true
                                        +scores:
                                        +    - BleiLaffertyScore:
                                        +        num_top_tokens: 30
                                        +model: 
                                        +    dataset_path: {dataset_path}
                                        +    modalities_to_use: {modality_list}
                                        +    main_modality: '{main_modality}'
                                        +
                                        +stages:
                                        +- RegularizersModifierCube:
                                        +    num_iter: 20
                                        +    reg_search: add
                                        +    regularizer_parameters:
                                        +        name: decorrelation_phi
                                        +    selection:
                                        +        - PerplexityScore@all < 1.05 * MINIMUM(PerplexityScore@all) and BleiLaffertyScore -> max
                                        +    strategy: PerplexityStrategy
                                        +    # parameters of this strategy are intended for revision
                                        +    strategy_params:
                                        +        start_point: 0
                                        +        step: 0.01
                                        +        max_len: 50
                                        +    tracked_score_function: PerplexityScore@all
                                        +    verbose: false
                                        +    use_relative_coefficients: true
                                        +'''
                                        +
                                        +exploratory_search = '''
                                        +# This config follows a strategy described in the article
                                        +# Multi-objective Topic Modeling for Exploratory Search in Tech News
                                        +# by Anastasya Yanina, Lev Golitsyn and Konstantin Vorontsov, Jan 2018
                                        +
                                        +
                                        +# Use .format(modality=modality, dataset_path=dataset_path,
                                        +# specific_topics=specific_topics, background_topics=background_topics)
                                        +# when loading the recipe to adjust for your dataset
                                        +
                                        +topics:
                                        +# Describes number of model topics, in the actuall article 200 topics were found to be optimal
                                        +    specific_topics: {specific_topics}
                                        +    background_topics: {background_topics}
                                        +
                                        +regularizers:
                                        +- DecorrelatorPhiRegularizer:
                                        +    name: decorrelation_phi_{modality}
                                        +    topic_names: specific_topics
                                        +    tau: 1
                                        +    class_ids: ['{modality}']
                                        +- SmoothSparsePhiRegularizer:
                                        +    name: smooth_phi_{modality}
                                        +    topic_names: specific_topics
                                        +    tau: 1
                                        +    class_ids: ['{modality}']
                                        +- SmoothSparseThetaRegularizer:
                                        +    name: sparse_theta
                                        +    topic_names: specific_topics
                                        +    tau: 1
                                        +
                                        +model: 
                                        +    dataset_path: {dataset_path}
                                        +    modalities_to_use: ['{modality}']
                                        +    main_modality: '{modality}'
                                        +
                                        +stages:
                                        +# repeat the following two cubes for every modality in the dataset
                                        +- RegularizersModifierCube:
                                        +    num_iter: 8
                                        +    reg_search: mul
                                        +    regularizer_parameters:
                                        +        name: decorrelation_phi_{modality}
                                        +    selection:
                                        +        - PerplexityScore{modality} < 1.01 * MINIMUM(PerplexityScore{modality}) and SparsityPhiScore{modality} -> max
                                        +    strategy: PerplexityStrategy
                                        +    strategy_params:
                                        +        start_point: 100000
                                        +        step: 10
                                        +        max_len: 6
                                        +    tracked_score_function: PerplexityScore@all
                                        +    verbose: false
                                        +    use_relative_coefficients: false
                                        +- RegularizersModifierCube:
                                        +    num_iter: 8
                                        +    reg_search: add
                                        +    regularizer_parameters:
                                        +        name: smooth_phi_{modality}
                                        +    selection:
                                        +        - PerplexityScore{modality} < 1.01 * MINIMUM(PerplexityScore{modality}) and SparsityPhiScore{modality} -> max
                                        +    strategy: PerplexityStrategy
                                        +    strategy_params:
                                        +        start_point: 0.25
                                        +        step: 0.25
                                        +        max_len: 6
                                        +    tracked_score_function: PerplexityScore{modality}
                                        +    verbose: false
                                        +    use_relative_coefficients: false
                                        +#last cube is independent of modalities and can be used only once
                                        +- RegularizersModifierCube:
                                        +    num_iter: 8
                                        +    reg_search: add
                                        +    regularizer_parameters:
                                        +        name: sparse_theta
                                        +    selection:
                                        +        - PerplexityScore@all < 1.01 * MINIMUM(PerplexityScore@all) and SparsityPhiScore{modality} -> max
                                        +    strategy: PerplexityStrategy
                                        +    strategy_params:
                                        +        start_point: -0.5
                                        +        step: -0.5
                                        +        max_len: 6
                                        +    tracked_score_function: PerplexityScore@all
                                        +    verbose: false
                                        +    use_relative_coefficients: false
                                        +
                                        +'''
                                        +
                                        +
                                        +
                                        +
                                        +
                                        +
                                        +
                                        +
                                        +
                                        +
                                        +
                                        + +
                                        + + + + + \ No newline at end of file diff --git a/docs/cooking_machine/rel_toolbox_lite.html b/docs/cooking_machine/rel_toolbox_lite.html index e93f8c1..bcd6467 100644 --- a/docs/cooking_machine/rel_toolbox_lite.html +++ b/docs/cooking_machine/rel_toolbox_lite.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.rel_toolbox_lite API documentation - + + @@ -19,6 +20,216 @@

                                        Module topicnet.cooking_machine.rel_toolbox_lite

                                        +
                                        + +Expand source code + +
                                        import os
                                        +
                                        +
                                        +def count_vocab_size(dictionary, modalities):
                                        +    # TODO: check tokens filtered by dict.filter()
                                        +    fname = 'tmp.txt'
                                        +    try:
                                        +        dictionary.save_text(fname)
                                        +        modality_count = {name: 0 for name in modalities}
                                        +        modality_vocab_size = {name: 0 for name in modalities}
                                        +        with open(fname, 'r', encoding='utf-8') as f:
                                        +            header = next(f)
                                        +            num_docs = int(header.partition("num_items: ")[2])
                                        +            next(f)
                                        +            for line in f:
                                        +                token, class_id, _, token_tf, token_df = line.split(", ")
                                        +                if class_id in modalities:
                                        +                    modality_count[class_id] += float(token_tf)
                                        +                    modality_vocab_size[class_id] += 1
                                        +        return (modality_count, modality_vocab_size, num_docs)
                                        +    finally:
                                        +        os.remove(fname)
                                        +
                                        +
                                        +def calc_docs_avg_len(ds, weights):
                                        +    (modality_count, modality_vocab_size, n_docs) = ds
                                        +    docs_total_len = 0
                                        +    for modality, tokens_total_sum in modality_count.items():
                                        +        w = weights[modality]
                                        +        docs_total_len += w * tokens_total_sum
                                        +    avg_doc_len = docs_total_len / n_docs
                                        +    return avg_doc_len
                                        +
                                        +
                                        +def theta_weight_abs2rel(ds, modality_weights, n_topics, tau):
                                        +    avg_doc_len = calc_docs_avg_len(ds, modality_weights)
                                        +    gimel_multiplier = avg_doc_len / n_topics + tau
                                        +    gimel = tau / gimel_multiplier
                                        +    return gimel
                                        +
                                        +
                                        +def theta_weight_rel2abs(ds, modality_weights, n_topics, gimel):
                                        +    avg_doc_len = calc_docs_avg_len(ds, modality_weights)
                                        +    tau = (avg_doc_len / n_topics) * gimel / (1 - gimel)
                                        +    return tau
                                        +
                                        +
                                        +def phi_weight_abs2rel(ds, modality_weights, n_topics, tau, modalities_list=None):
                                        +    (modality_count, modality_vocab_size, n_docs) = ds
                                        +    if modalities_list is None:
                                        +        modalities_list = modality_count.keys()
                                        +    docs_total_len = 0
                                        +    vocab_size = 0
                                        +    for modality in modalities_list:
                                        +        tokens_total_sum = modality_count[modality]
                                        +        vocab_size += modality_vocab_size[modality]
                                        +        w = modality_weights[modality]
                                        +        docs_total_len += w * tokens_total_sum
                                        +    # TODO: check if formula is OK
                                        +    odds_gimel = (tau * n_topics * vocab_size) / docs_total_len
                                        +    gimel = odds_gimel / (1 + odds_gimel)
                                        +    return gimel
                                        +
                                        +
                                        +def phi_weight_rel2abs(ds, modality_weights, n_topics, gimel, modalities_list=None):
                                        +    (modality_count, modality_vocab_size, n_docs) = ds
                                        +    if modalities_list is None:
                                        +        modalities_list = modality_count.keys()
                                        +    docs_total_len = 0
                                        +    vocab_size = 0
                                        +    for modality in modalities_list:
                                        +        tokens_total_sum = modality_count[modality]
                                        +        vocab_size += modality_vocab_size[modality]
                                        +        w = modality_weights[modality]
                                        +        docs_total_len += w * tokens_total_sum
                                        +    # TODO: check if formula is OK
                                        +    tau = (docs_total_len / (n_topics * vocab_size)) * gimel / (1 - gimel)
                                        +    return tau
                                        +
                                        +
                                        +def compute_regularizer_tau(tokens_data, reg, modality_weights, n_topics):
                                        +
                                        +    (modality_count, modality_vocab_size, num_docs) = tokens_data
                                        +
                                        +    gimel = reg.tau
                                        +
                                        +    if "SmoothSparseThetaRegularizer" in str(type(reg)):
                                        +        tau = theta_weight_rel2abs(tokens_data, modality_weights,
                                        +                                   n_topics, gimel)
                                        +        return tau
                                        +    elif "SmoothSparsePhiRegularizer" in str(type(reg)):
                                        +        if len(reg.class_ids):
                                        +            modalities_list = reg.class_ids
                                        +        else:
                                        +            modalities_list = modality_weights.keys()
                                        +
                                        +        tau = phi_weight_rel2abs(tokens_data, modality_weights,
                                        +                                 n_topics, gimel, modalities_list)
                                        +        return tau
                                        +    elif "DecorrelatorPhiRegularizer" in str(type(reg)):
                                        +        raise ValueError("Decorrelator {} warrants further study".format(reg.name))
                                        +    else:
                                        +        raise KeyError("Invalid: {}".format(reg.name))
                                        +
                                        +
                                        +def compute_regularizer_gimel(tokens_data, reg, modality_weights, n_topics):
                                        +
                                        +    (modality_count, modality_vocab_size, num_docs) = tokens_data
                                        +
                                        +    if "SmoothSparseThetaRegularizer" in str(type(reg)):
                                        +        gimel = theta_weight_abs2rel(tokens_data, modality_weights,
                                        +                                     n_topics, reg.tau)
                                        +        return gimel
                                        +    elif "SmoothSparsePhiRegularizer" in str(type(reg)):
                                        +        if len(reg.class_ids):
                                        +            modalities_list = reg.class_ids
                                        +        else:
                                        +            modalities_list = modality_weights.keys()
                                        +
                                        +        gimel = phi_weight_abs2rel(tokens_data, modality_weights,
                                        +                                   n_topics, reg.tau, modalities_list)
                                        +        return gimel
                                        +    elif "DecorrelatorPhiRegularizer" in str(type(reg)):
                                        +        raise ValueError("Decorrelator {} warrants further study".format(reg.name))
                                        +    else:
                                        +        raise KeyError("Invalid: {}".format(reg.name))
                                        +
                                        +
                                        +def transform_regularizer(tokens_data, reg, modality_weights, n_topics=None):
                                        +
                                        +    if n_topics is None and len(reg.topic_names) == 0:
                                        +        raise ValueError('Number of topics to regularize should be specified')
                                        +    if n_topics is None:
                                        +        n_topics = len(reg.topic_names)
                                        +
                                        +    (modality_count, modality_vocab_size, num_docs) = tokens_data
                                        +
                                        +    new_tau = compute_regularizer_tau(tokens_data, reg, modality_weights, n_topics)
                                        +    reg_class = reg.__class__
                                        +    reg_copy = reg_class(
                                        +            tau=new_tau,
                                        +            name=reg.name,
                                        +            topic_names=reg.topic_names,
                                        +            # class_ids=reg.class_ids
                                        +    )
                                        +    return reg_copy
                                        +
                                        +
                                        +def modality_weight_rel2abs(tokens_data, weights, default_modality):
                                        +    (modality_count, modality_vocab_size, num_docs) = tokens_data
                                        +    taus = {}
                                        +    default_weight = modality_count[default_modality]
                                        +    for modality in weights:
                                        +        if modality_count[modality]:
                                        +            gimel = weights[modality]
                                        +            tau = gimel * default_weight / modality_count[modality]
                                        +            taus[modality] = tau
                                        +        else:
                                        +            taus[modality] = 0
                                        +    return taus
                                        +
                                        +
                                        +def handle_regularizer(use_relative_coefficients, model, regularizer, data_stats):
                                        +    """
                                        +    Handles the case of various regularizers that
                                        +    contain 'Regularizer' in their name, namely all artm regularizers
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    use_relative_coefficients : bool
                                        +        indicates whether regularizer should be altered
                                        +    model : TopicModel or artm.ARTM
                                        +        to be changed in place
                                        +    regularizer : an instance of Regularizer from artm library
                                        +    data_stats : dict
                                        +        collection-specific data
                                        +
                                        +    Returns
                                        +    -------
                                        +    None
                                        +
                                        +    """
                                        +
                                        +    fallback_options = (AttributeError, TypeError, AssertionError)
                                        +    try:
                                        +        n_topics = len(regularizer.topic_names)
                                        +        assert n_topics > 0
                                        +    except fallback_options:
                                        +        n_topics = len(model.topic_names)
                                        +
                                        +    regularizer_type = str(type(regularizer))
                                        +    if use_relative_coefficients and 'SmoothSparse' in regularizer_type:
                                        +        regularizer = transform_regularizer(
                                        +            data_stats,
                                        +            regularizer,
                                        +            model.class_ids,
                                        +            n_topics,
                                        +        )
                                        +
                                        +    model.regularizers.add(regularizer, overwrite=True)
                                        +    if 'Decorrelator' in regularizer_type:
                                        +        if use_relative_coefficients:
                                        +            model.regularizers[regularizer.name].gamma = 0
                                        +        else:
                                        +            model.regularizers[regularizer.name].gamma = None
                                        +
                                        @@ -32,24 +243,115 @@

                                        Functions

                                        +
                                        + +Expand source code + +
                                        def calc_docs_avg_len(ds, weights):
                                        +    (modality_count, modality_vocab_size, n_docs) = ds
                                        +    docs_total_len = 0
                                        +    for modality, tokens_total_sum in modality_count.items():
                                        +        w = weights[modality]
                                        +        docs_total_len += w * tokens_total_sum
                                        +    avg_doc_len = docs_total_len / n_docs
                                        +    return avg_doc_len
                                        +
                                        def compute_regularizer_gimel(tokens_data, reg, modality_weights, n_topics)
                                        +
                                        + +Expand source code + +
                                        def compute_regularizer_gimel(tokens_data, reg, modality_weights, n_topics):
                                        +
                                        +    (modality_count, modality_vocab_size, num_docs) = tokens_data
                                        +
                                        +    if "SmoothSparseThetaRegularizer" in str(type(reg)):
                                        +        gimel = theta_weight_abs2rel(tokens_data, modality_weights,
                                        +                                     n_topics, reg.tau)
                                        +        return gimel
                                        +    elif "SmoothSparsePhiRegularizer" in str(type(reg)):
                                        +        if len(reg.class_ids):
                                        +            modalities_list = reg.class_ids
                                        +        else:
                                        +            modalities_list = modality_weights.keys()
                                        +
                                        +        gimel = phi_weight_abs2rel(tokens_data, modality_weights,
                                        +                                   n_topics, reg.tau, modalities_list)
                                        +        return gimel
                                        +    elif "DecorrelatorPhiRegularizer" in str(type(reg)):
                                        +        raise ValueError("Decorrelator {} warrants further study".format(reg.name))
                                        +    else:
                                        +        raise KeyError("Invalid: {}".format(reg.name))
                                        +
                                        def compute_regularizer_tau(tokens_data, reg, modality_weights, n_topics)
                                        +
                                        + +Expand source code + +
                                        def compute_regularizer_tau(tokens_data, reg, modality_weights, n_topics):
                                        +
                                        +    (modality_count, modality_vocab_size, num_docs) = tokens_data
                                        +
                                        +    gimel = reg.tau
                                        +
                                        +    if "SmoothSparseThetaRegularizer" in str(type(reg)):
                                        +        tau = theta_weight_rel2abs(tokens_data, modality_weights,
                                        +                                   n_topics, gimel)
                                        +        return tau
                                        +    elif "SmoothSparsePhiRegularizer" in str(type(reg)):
                                        +        if len(reg.class_ids):
                                        +            modalities_list = reg.class_ids
                                        +        else:
                                        +            modalities_list = modality_weights.keys()
                                        +
                                        +        tau = phi_weight_rel2abs(tokens_data, modality_weights,
                                        +                                 n_topics, gimel, modalities_list)
                                        +        return tau
                                        +    elif "DecorrelatorPhiRegularizer" in str(type(reg)):
                                        +        raise ValueError("Decorrelator {} warrants further study".format(reg.name))
                                        +    else:
                                        +        raise KeyError("Invalid: {}".format(reg.name))
                                        +
                                        def count_vocab_size(dictionary, modalities)
                                        +
                                        + +Expand source code + +
                                        def count_vocab_size(dictionary, modalities):
                                        +    # TODO: check tokens filtered by dict.filter()
                                        +    fname = 'tmp.txt'
                                        +    try:
                                        +        dictionary.save_text(fname)
                                        +        modality_count = {name: 0 for name in modalities}
                                        +        modality_vocab_size = {name: 0 for name in modalities}
                                        +        with open(fname, 'r', encoding='utf-8') as f:
                                        +            header = next(f)
                                        +            num_docs = int(header.partition("num_items: ")[2])
                                        +            next(f)
                                        +            for line in f:
                                        +                token, class_id, _, token_tf, token_df = line.split(", ")
                                        +                if class_id in modalities:
                                        +                    modality_count[class_id] += float(token_tf)
                                        +                    modality_vocab_size[class_id] += 1
                                        +        return (modality_count, modality_vocab_size, num_docs)
                                        +    finally:
                                        +        os.remove(fname)
                                        +
                                        def handle_regularizer(use_relative_coefficients, model, regularizer, data_stats) @@ -73,42 +375,188 @@

                                        Returns

                                        None
                                         
                                        +
                                        + +Expand source code + +
                                        def handle_regularizer(use_relative_coefficients, model, regularizer, data_stats):
                                        +    """
                                        +    Handles the case of various regularizers that
                                        +    contain 'Regularizer' in their name, namely all artm regularizers
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    use_relative_coefficients : bool
                                        +        indicates whether regularizer should be altered
                                        +    model : TopicModel or artm.ARTM
                                        +        to be changed in place
                                        +    regularizer : an instance of Regularizer from artm library
                                        +    data_stats : dict
                                        +        collection-specific data
                                        +
                                        +    Returns
                                        +    -------
                                        +    None
                                        +
                                        +    """
                                        +
                                        +    fallback_options = (AttributeError, TypeError, AssertionError)
                                        +    try:
                                        +        n_topics = len(regularizer.topic_names)
                                        +        assert n_topics > 0
                                        +    except fallback_options:
                                        +        n_topics = len(model.topic_names)
                                        +
                                        +    regularizer_type = str(type(regularizer))
                                        +    if use_relative_coefficients and 'SmoothSparse' in regularizer_type:
                                        +        regularizer = transform_regularizer(
                                        +            data_stats,
                                        +            regularizer,
                                        +            model.class_ids,
                                        +            n_topics,
                                        +        )
                                        +
                                        +    model.regularizers.add(regularizer, overwrite=True)
                                        +    if 'Decorrelator' in regularizer_type:
                                        +        if use_relative_coefficients:
                                        +            model.regularizers[regularizer.name].gamma = 0
                                        +        else:
                                        +            model.regularizers[regularizer.name].gamma = None
                                        +
                                        def modality_weight_rel2abs(tokens_data, weights, default_modality)
                                        +
                                        + +Expand source code + +
                                        def modality_weight_rel2abs(tokens_data, weights, default_modality):
                                        +    (modality_count, modality_vocab_size, num_docs) = tokens_data
                                        +    taus = {}
                                        +    default_weight = modality_count[default_modality]
                                        +    for modality in weights:
                                        +        if modality_count[modality]:
                                        +            gimel = weights[modality]
                                        +            tau = gimel * default_weight / modality_count[modality]
                                        +            taus[modality] = tau
                                        +        else:
                                        +            taus[modality] = 0
                                        +    return taus
                                        +
                                        def phi_weight_abs2rel(ds, modality_weights, n_topics, tau, modalities_list=None)
                                        +
                                        + +Expand source code + +
                                        def phi_weight_abs2rel(ds, modality_weights, n_topics, tau, modalities_list=None):
                                        +    (modality_count, modality_vocab_size, n_docs) = ds
                                        +    if modalities_list is None:
                                        +        modalities_list = modality_count.keys()
                                        +    docs_total_len = 0
                                        +    vocab_size = 0
                                        +    for modality in modalities_list:
                                        +        tokens_total_sum = modality_count[modality]
                                        +        vocab_size += modality_vocab_size[modality]
                                        +        w = modality_weights[modality]
                                        +        docs_total_len += w * tokens_total_sum
                                        +    # TODO: check if formula is OK
                                        +    odds_gimel = (tau * n_topics * vocab_size) / docs_total_len
                                        +    gimel = odds_gimel / (1 + odds_gimel)
                                        +    return gimel
                                        +
                                        def phi_weight_rel2abs(ds, modality_weights, n_topics, gimel, modalities_list=None)
                                        +
                                        + +Expand source code + +
                                        def phi_weight_rel2abs(ds, modality_weights, n_topics, gimel, modalities_list=None):
                                        +    (modality_count, modality_vocab_size, n_docs) = ds
                                        +    if modalities_list is None:
                                        +        modalities_list = modality_count.keys()
                                        +    docs_total_len = 0
                                        +    vocab_size = 0
                                        +    for modality in modalities_list:
                                        +        tokens_total_sum = modality_count[modality]
                                        +        vocab_size += modality_vocab_size[modality]
                                        +        w = modality_weights[modality]
                                        +        docs_total_len += w * tokens_total_sum
                                        +    # TODO: check if formula is OK
                                        +    tau = (docs_total_len / (n_topics * vocab_size)) * gimel / (1 - gimel)
                                        +    return tau
                                        +
                                        def theta_weight_abs2rel(ds, modality_weights, n_topics, tau)
                                        +
                                        + +Expand source code + +
                                        def theta_weight_abs2rel(ds, modality_weights, n_topics, tau):
                                        +    avg_doc_len = calc_docs_avg_len(ds, modality_weights)
                                        +    gimel_multiplier = avg_doc_len / n_topics + tau
                                        +    gimel = tau / gimel_multiplier
                                        +    return gimel
                                        +
                                        def theta_weight_rel2abs(ds, modality_weights, n_topics, gimel)
                                        +
                                        + +Expand source code + +
                                        def theta_weight_rel2abs(ds, modality_weights, n_topics, gimel):
                                        +    avg_doc_len = calc_docs_avg_len(ds, modality_weights)
                                        +    tau = (avg_doc_len / n_topics) * gimel / (1 - gimel)
                                        +    return tau
                                        +
                                        def transform_regularizer(tokens_data, reg, modality_weights, n_topics=None)
                                        +
                                        + +Expand source code + +
                                        def transform_regularizer(tokens_data, reg, modality_weights, n_topics=None):
                                        +
                                        +    if n_topics is None and len(reg.topic_names) == 0:
                                        +        raise ValueError('Number of topics to regularize should be specified')
                                        +    if n_topics is None:
                                        +        n_topics = len(reg.topic_names)
                                        +
                                        +    (modality_count, modality_vocab_size, num_docs) = tokens_data
                                        +
                                        +    new_tau = compute_regularizer_tau(tokens_data, reg, modality_weights, n_topics)
                                        +    reg_class = reg.__class__
                                        +    reg_copy = reg_class(
                                        +            tau=new_tau,
                                        +            name=reg.name,
                                        +            topic_names=reg.topic_names,
                                        +            # class_ids=reg.class_ids
                                        +    )
                                        +    return reg_copy
                                        +
                                        @@ -145,7 +593,9 @@

                                        Index

                                        + + \ No newline at end of file diff --git a/docs/cooking_machine/routine.html b/docs/cooking_machine/routine.html index 82f984b..9e49b33 100644 --- a/docs/cooking_machine/routine.html +++ b/docs/cooking_machine/routine.html @@ -3,12 +3,13 @@ - + topicnet.cooking_machine.routine API documentation - + + @@ -19,6 +20,672 @@

                                        Module topicnet.cooking_machine.routine

                                        +
                                        + +Expand source code + +
                                        import numpy as np
                                        +import hashlib
                                        +import json
                                        +import re
                                        +import warnings
                                        +from datetime import datetime
                                        +from statistics import mean, median
                                        +import numexpr as ne
                                        +
                                        +
                                        +W_TOO_STRICT = 'No models match criteria '
                                        +W_TOO_STRICT_DETAILS = '(The requirements on {} have eliminated all {} models)'
                                        +W_NOT_ENOUGH_MODELS_FOR_CHOICE = 'Not enough models'
                                        +W_NOT_ENOUGH_MODELS_FOR_CHOICE_DETAILS = 'for models_num = {}, only {} models will be returned.'
                                        +W_RETURN_FEWER_MODELS = 'Can\'t return the requested number of models:'
                                        +W_RETURN_FEWER_MODELS_DETAILS = ' \"{}\". Only \"{}\" satisfy the query'
                                        +
                                        +
                                        +def is_jsonable(x):
                                        +    """
                                        +    Check that x is jsonable
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    x : optional
                                        +
                                        +    Returns
                                        +    -------
                                        +    bool
                                        +
                                        +    """
                                        +    try:
                                        +        json.dumps(x)
                                        +        return True
                                        +    except (TypeError, OverflowError):
                                        +        return False
                                        +
                                        +
                                        +def is_saveable_model(model=None, model_id=None, experiment=None):
                                        +    """
                                        +    Little helpful function. May be extended later.
                                        +
                                        +    """
                                        +    from .models import SUPPORTED_MODEL_CLASSES
                                        +
                                        +    if model is None and experiment is not None:
                                        +        model = experiment.models.get(model_id)
                                        +
                                        +    # hasattr(model, 'save') is not currently supported due to dummy save in BaseModel
                                        +
                                        +    return isinstance(model, SUPPORTED_MODEL_CLASSES)
                                        +
                                        +
                                        +def get_public_instance_attributes(instance):
                                        +    """
                                        +    Get list of all instance public atrributes.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    instance : optional
                                        +
                                        +    Returns
                                        +    -------
                                        +    list of str
                                        +
                                        +    """
                                        +    public_attributes = [
                                        +        attribute
                                        +        for attribute in instance.__dir__() if attribute[0] != '_'
                                        +    ]
                                        +    return public_attributes
                                        +
                                        +
                                        +def transform_complex_entity_to_dict(some_entity):
                                        +    """
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    some_entity : optional
                                        +
                                        +    Returns
                                        +    -------
                                        +    dict
                                        +        jsonable entity
                                        +
                                        +    """
                                        +    jsonable_reg_params = dict()
                                        +
                                        +    jsonable_reg_params['name'] = some_entity.__class__.__name__
                                        +    public_attributes = get_public_instance_attributes(some_entity)
                                        +    for attribute in public_attributes:
                                        +        try:
                                        +            value = getattr(some_entity, attribute)
                                        +            if is_jsonable(value):
                                        +                jsonable_reg_params[attribute] = value
                                        +        except (AttributeError, KeyError):
                                        +            # TODO: need warning here
                                        +            jsonable_reg_params[attribute] = None
                                        +
                                        +    return jsonable_reg_params
                                        +
                                        +
                                        +def get_timestamp_in_str_format():
                                        +    """
                                        +    Returns current timestamp.
                                        +
                                        +    Returns
                                        +    -------
                                        +    str
                                        +        timestamp in "%Hh%Mm%Ss_%dd%mm%Yy" format
                                        +
                                        +    """
                                        +    curr_tmsp = datetime.now().strftime("%Hh%Mm%Ss_%dd%mm%Yy")
                                        +
                                        +    return curr_tmsp
                                        +
                                        +
                                        +def transform_topic_model_description_to_jsonable(obj):
                                        +    """
                                        +    Change object to handle serialization problems with json.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    obj : object
                                        +        input object
                                        +
                                        +    Returns
                                        +    -------
                                        +    int
                                        +        jsonable object
                                        +
                                        +    """
                                        +    if isinstance(obj, np.int64):
                                        +        return int(obj)
                                        +    if isinstance(obj, np.ndarray):
                                        +        return obj.tolist()
                                        +    elif re.search(r'artm.score_tracker', str(type(obj))) is not None:
                                        +        return obj._name
                                        +    elif re.search(r'score', str(type(obj))) is not None:
                                        +        return str(obj.__class__)
                                        +    elif re.search(r'Score', str(type(obj))) is not None:
                                        +        return str(obj.__class__)
                                        +    elif re.search(r'Cube', str(type(obj))) is not None:
                                        +        return str(obj.__class__)
                                        +    elif re.search(r'protobuf', str(type(obj))) is not None:
                                        +        try:
                                        +            return str(list(obj))
                                        +        except:  # noqa: E722
                                        +            return str(type(obj))
                                        +    else:
                                        +        warnings.warn(f'Object {obj} can not be dumped using json.' +
                                        +                      'Object class name will be returned.', RuntimeWarning)
                                        +        return str(obj.__class__)
                                        +
                                        +
                                        +def get_fix_string(input_string: str, length: int):
                                        +    """
                                        +    Transforms input_string to the string of the size length.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    input_string : str
                                        +        input_string
                                        +    length : int
                                        +        length of output_string, if -1 then output_string is the same as input_string
                                        +
                                        +    Returns
                                        +    -------
                                        +    str
                                        +        beautiful string of the size length
                                        +
                                        +    """
                                        +    input_string = str(input_string)
                                        +    if length < 0:
                                        +        output_string = input_string
                                        +    elif len(input_string) > length:
                                        +        sep = (length - 3) // 2
                                        +        if length % 2 == 0:
                                        +            output_string = input_string[:sep + 1] + "..." + input_string[-sep:]
                                        +        else:
                                        +            output_string = input_string[:sep] + "..." + input_string[-sep:]
                                        +    else:
                                        +        output_string = input_string + " " * (length - len(input_string))
                                        +
                                        +    return output_string
                                        +
                                        +
                                        +def get_fix_list(input_list: list, length: int, num: int):
                                        +    """
                                        +    Returns list with strings of size length that contains not more than num strings.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    input_list : list
                                        +        list of input strings
                                        +    length : int
                                        +        length of output strings
                                        +    num : int
                                        +        maximal number of strings on output list
                                        +
                                        +    Returns
                                        +    -------
                                        +    list
                                        +        list with no more than num of beautiful strings
                                        +
                                        +    """
                                        +    if len(input_list) == 0:
                                        +        input_list = ["---"]
                                        +    output_list = []
                                        +    if (len(input_list) > num) and (num != -1):
                                        +        sep = (num - 1) // 2
                                        +        if num % 2 == 0:
                                        +            for elem in input_list[:sep + 1]:
                                        +                output_list.append(get_fix_string(elem, length - 1) + ",")
                                        +            output_list.append("...," + " " * (length - 4))
                                        +            for elem in input_list[-sep:]:
                                        +                output_list.append(get_fix_string(elem, length - 1) + ",")
                                        +            output_list[-1] = output_list[-1][:-1] + " "
                                        +        else:
                                        +            for elem in input_list[:sep]:
                                        +                output_list.append(get_fix_string(elem, length - 1) + ",")
                                        +            output_list.append("...," + " " * (length - 4))
                                        +            for elem in input_list[-sep:]:
                                        +                output_list.append(get_fix_string(elem, length - 1) + ",")
                                        +            output_list[-1] = output_list[-1][:-1] + " "
                                        +    else:
                                        +        for elem in input_list:
                                        +            output_list.append(get_fix_string(elem, length - 1) + ",")
                                        +        output_list[-1] = output_list[-1][:-1] + " "
                                        +
                                        +    return output_list
                                        +
                                        +
                                        +def get_equal_strings(strings, min_len: int = 0, sep: str = " "):
                                        +    """
                                        +    Transforms all strings to strings with the same length, but not less that min_len.
                                        +    Fills strings with sep. Inplace.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    strings : list
                                        +        list of strings
                                        +    min_len : int
                                        +        minimal length of the string (Default value = 0)
                                        +    sep : str
                                        +        filling symbol (Default value = " ")
                                        +
                                        +    """
                                        +    max_string_len = np.array([len(string) for string in strings]).max()
                                        +    max_string_len = max(min_len, max_string_len)
                                        +    for id_string, string in enumerate(strings):
                                        +        if len(string) < max_string_len:
                                        +            strings[id_string] += sep * (max_string_len - len(string))
                                        +
                                        +
                                        +def get_equal_lists(one_dict, min_len: int = 0, sep: str = " ", sep_len="last"):
                                        +    """
                                        +    Transforms all lists to list with the same length, but not less that min_len.
                                        +    Fills lists with sep. Inplace.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    one_dict : dict
                                        +        dict with lists
                                        +    min_len : int
                                        +        minimal length of the list (Default value = 0)
                                        +    sep : str
                                        +        filling symbol (Default value = " ")
                                        +    sep_len : int or "last"
                                        +        length of added strings, if "last" than length of added strings is equal
                                        +        to the length of the last string in the list (Default value = "last")
                                        +
                                        +    """
                                        +    max_len = np.array([len(one_list) for one_list in one_dict.values()]).max()
                                        +    max_len = max(min_len, max_len)
                                        +    for id_list, one_list in one_dict.items():
                                        +        if sep_len == "last":
                                        +            one_dict[id_list] += [sep * len(one_list[-1])] * (max_len - len(one_list))
                                        +        elif isinstance(sep_len, int):
                                        +            one_dict[id_list] += [sep * sep_len] * (max_len - len(one_list))
                                        +        else:
                                        +            raise ValueError("Parameter sep_len can be int or \"last\".")
                                        +
                                        +
                                        +def extract_required_parameter(model, parameter):
                                        +    """
                                        +    Extracts necessary parameter from model.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    model : TopicModel
                                        +    parameter : str
                                        +
                                        +    Returns
                                        +    -------
                                        +    optional
                                        +
                                        +    """
                                        +    value_to_return_as_none = float('nan')  # value needed for comparisons in is_acceptable
                                        +
                                        +    if parameter.split('.')[0] == 'model':
                                        +        parameters = model.get_init_parameters()
                                        +        parameter_name = parameter.split('.')[1]
                                        +
                                        +        if parameter_name in parameters.keys():
                                        +            parameter_value = parameters.get(parameter_name)
                                        +
                                        +            if parameter_value is not None:
                                        +                return parameter_value
                                        +            else:
                                        +                return value_to_return_as_none
                                        +        else:
                                        +            raise ValueError(f'Unknown parameter {parameter_name} for model.')
                                        +    else:
                                        +        scores = model.scores.get(parameter, None)
                                        +
                                        +        if scores is None and model.depth == 0:  # start model
                                        +            warnings.warn(f'Start model doesn\'t have score values for \"{parameter}\"')
                                        +
                                        +            return value_to_return_as_none
                                        +
                                        +        elif scores is None:
                                        +            raise ValueError(
                                        +                f'Model \"{model}\" doesn\'t have the score \"{parameter}\". '
                                        +                f'Expected score name {parameter} or model.parameter {parameter}')
                                        +
                                        +        if len(scores) == 0:
                                        +            raise ValueError(f'Empty score {parameter}.')
                                        +
                                        +        if scores[-1] is None:  # FrozenScore
                                        +            return value_to_return_as_none
                                        +
                                        +        return scores[-1]
                                        +
                                        +
                                        +def is_acceptable(model, requirement_lesser, requirement_greater, requirement_equal):
                                        +    """
                                        +    Checks if model suits request.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    model : TopicModel
                                        +    requirement_lesser : list of tuple
                                        +    requirement_greater : list of tuple
                                        +    requirement_equal : list of tuple
                                        +
                                        +    Returns
                                        +    -------
                                        +    bool
                                        +
                                        +    """
                                        +    from .models import TopicModel
                                        +
                                        +    if not isinstance(model, TopicModel):
                                        +        warnings.warn(f'Model {model} isn\'t of type TopicModel.' +
                                        +                      ' Check your selection level and/or level models.')
                                        +        return False
                                        +
                                        +    answer = (
                                        +        all(extract_required_parameter(model, req_parameter) < value
                                        +            for req_parameter, value in requirement_lesser)
                                        +        and
                                        +        all(extract_required_parameter(model, req_parameter) > value
                                        +            for req_parameter, value in requirement_greater)
                                        +        and
                                        +        all(extract_required_parameter(model, req_parameter) == value
                                        +            for req_parameter, value in requirement_equal)
                                        +    )
                                        +    return answer
                                        +
                                        +
                                        +def _select_acceptable_models(models,
                                        +                              requirement_lesser, requirement_greater, requirement_equal):
                                        +    """
                                        +    Selects necessary models with sanity check.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    models : list of TopicModel
                                        +        list of models with .scores parameter.
                                        +    requirement_lesser : list of tuple
                                        +        list containing tuples of form
                                        +        (SCORE_NAME/model.PARAMETER_NAME, TARGET_NUMBER)
                                        +    requirement_greater : list of tuple
                                        +        list containing tuples of form
                                        +        (SCORE_NAME/model.PARAMETER_NAME, TARGET_NUMBER)
                                        +    requirement_equal : list of tuple
                                        +        list containing tuples of form
                                        +        (SCORE_NAME/model.PARAMETER_NAME, TARGET_NUMBER)
                                        +
                                        +    Returns
                                        +    -------
                                        +    list of TopicModels
                                        +    """
                                        +    acceptable_models = [
                                        +        model for model in models if is_acceptable(
                                        +            model,
                                        +            requirement_lesser,
                                        +            requirement_greater,
                                        +            requirement_equal
                                        +        )
                                        +    ]
                                        +    if len(models) and not len(acceptable_models):
                                        +        all_requirements = [
                                        +            req_parameter for req_parameter, value
                                        +            in (requirement_lesser + requirement_greater + requirement_equal)
                                        +        ]
                                        +        warnings.warn(W_TOO_STRICT +
                                        +                      W_TOO_STRICT_DETAILS.format(", ".join(all_requirements), len(models)))
                                        +
                                        +    return acceptable_models
                                        +
                                        +
                                        +def choose_value_for_models_num_and_check(
                                        +        models_num_as_parameter, models_num_from_query) -> int:
                                        +
                                        +    models_num = None
                                        +
                                        +    if models_num_as_parameter is not None and models_num_from_query is not None and \
                                        +            models_num_as_parameter != models_num_from_query:
                                        +
                                        +        warnings.warn(
                                        +            f'Models number given as parameter \"{models_num_as_parameter}\" '
                                        +            f'not the same as models number specified after '
                                        +            f'COLLECT: \"{models_num_from_query}\". '
                                        +            f'Parameter value \"{models_num_as_parameter}\" will be used for select'
                                        +        )
                                        +
                                        +        models_num = models_num_as_parameter
                                        +
                                        +    elif models_num_as_parameter is not None:
                                        +        models_num = models_num_as_parameter
                                        +
                                        +    elif models_num_from_query is not None:
                                        +        models_num = models_num_from_query
                                        +
                                        +    if models_num is not None and int(models_num) < 0:
                                        +        raise ValueError(f"Cannot return negative number of models")
                                        +
                                        +    return models_num
                                        +
                                        +
                                        +def _choose_models_by_metric(acceptable_models, metric, extremum, models_num):
                                        +    scores_models = {}
                                        +
                                        +    for acceptable_model in acceptable_models:
                                        +        if len(acceptable_model.scores[metric]) == 0:
                                        +            warnings.warn(
                                        +                f'Model \"{acceptable_model}\" has empty value list for score \"{metric}\"')
                                        +
                                        +            continue
                                        +
                                        +        score = acceptable_model.scores[metric][-1]
                                        +
                                        +        if score in scores_models.keys():
                                        +            scores_models[score].append(acceptable_model)
                                        +        else:
                                        +            scores_models[score] = [acceptable_model]
                                        +
                                        +    scores_models = sorted(scores_models.items(), key=lambda kv: kv[0])
                                        +
                                        +    if models_num is None:
                                        +        models_num = len(scores_models) if not metric else 1
                                        +
                                        +    if extremum == "max":
                                        +        scores_models = list(reversed(scores_models))
                                        +
                                        +    best_models = sum([models[1] for models in scores_models[:models_num]], [])
                                        +    result_models = best_models[:models_num]
                                        +
                                        +    if models_num > len(acceptable_models):
                                        +        warnings.warn(
                                        +            W_NOT_ENOUGH_MODELS_FOR_CHOICE + ' ' +
                                        +            W_NOT_ENOUGH_MODELS_FOR_CHOICE_DETAILS.format(models_num, len(acceptable_models))
                                        +        )
                                        +
                                        +    if len(result_models) < models_num:
                                        +        warnings.warn(W_RETURN_FEWER_MODELS.format(models_num, len(result_models)))
                                        +
                                        +    return result_models
                                        +
                                        +
                                        +def choose_best_models(models: list, requirement_lesser: list, requirement_greater: list,
                                        +                       requirement_equal: list, metric: str, extremum="min", models_num=None):
                                        +    """
                                        +    Get best model according to specified metric.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    models : list of TopicModel
                                        +        list of models with .scores parameter.
                                        +    requirement_lesser : list of tuple
                                        +        list containing tuples of form
                                        +        (SCORE_NAME/model.PARAMETER_NAME, TARGET_NUMBER)
                                        +    requirement_greater : list of tuple
                                        +        list containing tuples of form
                                        +        (SCORE_NAME/model.PARAMETER_NAME, TARGET_NUMBER)
                                        +    requirement_equal : list of tuple
                                        +        list containing tuples of form
                                        +        (SCORE_NAME/model.PARAMETER_NAME, TARGET_NUMBER)
                                        +    metric : str
                                        +        metric for selection.
                                        +    extremum : str
                                        +        "min" or "max" - comparison parameter (Default value = "min")
                                        +    models_num : int
                                        +        number of models to select
                                        +        (default value is None, which is mapped to "all" or 1 depending on whether 'metric' is set)
                                        +
                                        +    Returns
                                        +    -------
                                        +    best_models : list of models
                                        +        models with best scores or matching request
                                        +
                                        +    """
                                        +    acceptable_models = _select_acceptable_models(
                                        +        models,
                                        +        requirement_lesser,
                                        +        requirement_greater,
                                        +        requirement_equal
                                        +    )
                                        +
                                        +    if metric is None and extremum is None:
                                        +        if models_num is None:
                                        +            result_models = acceptable_models
                                        +        else:
                                        +            result_models = acceptable_models[:models_num]
                                        +
                                        +        if models_num is not None and len(result_models) < models_num:
                                        +            warnings.warn(W_RETURN_FEWER_MODELS + ' ' +
                                        +                          W_RETURN_FEWER_MODELS_DETAILS.format(models_num, len(result_models)))
                                        +
                                        +        return result_models
                                        +
                                        +    elif len(models) > 0 and metric not in models[0].scores:
                                        +        raise ValueError(f'There is no {metric} metric for model {models[0].model_id}.\n'
                                        +                         f'The following scores are available: {list(models[0].scores.keys())}')
                                        +
                                        +    return _choose_models_by_metric(acceptable_models, metric, extremum, models_num)
                                        +
                                        +
                                        +def parse_query_string(query_string: str):
                                        +    """
                                        +    This function will parse query string and subdivide it into following parts:
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    query_string : str
                                        +        (see Experiment.select function for details)
                                        +
                                        +    Returns
                                        +    -------
                                        +    requirement_lesser : list
                                        +    requirement_greater : list
                                        +    requirement_equal : list
                                        +    metric : str
                                        +    extremum : str
                                        +
                                        +    """  # noqa: W291
                                        +    requirement = {
                                        +        ">": [],
                                        +        "<": [],
                                        +        "=": []
                                        +    }
                                        +    metric = None
                                        +    extremum = None
                                        +
                                        +    for part in filter(None, re.split(r'\s+and\s+', query_string)):
                                        +        expression_parts = part.strip().split()
                                        +
                                        +        if len(expression_parts) != 3:
                                        +            raise ValueError(f"Cannot understand '{part}'")
                                        +
                                        +        first, middle, last = expression_parts
                                        +
                                        +        if middle in [">", "<", "="]:
                                        +            requirement[middle] += [(first, float(last))]
                                        +
                                        +        elif middle == "->":
                                        +            current_metric = first
                                        +            current_extremum = last
                                        +
                                        +            if metric == current_metric and extremum == current_extremum:
                                        +                continue
                                        +
                                        +            if metric is not None:
                                        +                raise ValueError(
                                        +                    f"Cannot process more than one target: "
                                        +                    f"previous \"{metric}\" with extremum \"{extremum}\" and "
                                        +                    f"current \"{current_metric}\" with extremum \"{current_extremum}\"")
                                        +
                                        +            if current_extremum not in ["max", "min"]:
                                        +                raise ValueError(f"Cannot understand '{part}': "
                                        +                                 f"unknown requirement '{current_extremum}'")
                                        +
                                        +            metric = current_metric
                                        +            extremum = current_extremum
                                        +
                                        +        else:
                                        +            raise ValueError(f"Unknown connector '{middle}' in '{part}'")
                                        +
                                        +    return requirement["<"], requirement[">"], requirement["="], metric, extremum
                                        +
                                        +
                                        +def compute_special_queries(special_models, special_queries):
                                        +    """
                                        +    Computes special queries with functions.
                                        +
                                        +    """
                                        +    special_functions = {
                                        +        'MINIMUM': min,
                                        +        'MAXIMUM': max,
                                        +        'AVERAGE': mean,
                                        +        'MEDIAN': median,
                                        +    }
                                        +    if not special_models and special_queries:
                                        +        warnings.warn(f"Cannot evaluate '{special_queries}': list of candidate models is empty",
                                        +                      RuntimeWarning)
                                        +
                                        +    processed_queries = []
                                        +    for query in special_queries:
                                        +        first, middle, *raw_last = query.strip().split()
                                        +        if middle not in ['>', '<', '=']:
                                        +            raise ValueError(f"Cannot understand '{query}': unknown format")
                                        +
                                        +        last = []
                                        +        for subpart in raw_last:
                                        +            if subpart[0] in ['A', 'M']:
                                        +                split_subpart = re.split('[()]', subpart)
                                        +                special_function, metric = split_subpart[0].strip(), split_subpart[1].strip()
                                        +                scores = [model.scores[metric][-1] for model in special_models]
                                        +                last.append(str(special_functions.get(special_function, max)(scores)))
                                        +            else:
                                        +                last += subpart
                                        +
                                        +        try:
                                        +            last = str(ne.evaluate(''.join(last)))
                                        +        except SyntaxError:
                                        +            raise ValueError(f"Cannot evaluate {last} expression")
                                        +
                                        +        processed_queries.append(' '.join([first, middle, last]))
                                        +
                                        +    return processed_queries
                                        +
                                        +
                                        +def blake2bchecksum(file_path):
                                        +    """
                                        +    Calculates hash of the file
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    file_path : str
                                        +        path to the file
                                        +    """
                                        +    with open(file_path, 'rb') as fh:
                                        +        m = hashlib.blake2b()
                                        +        while True:
                                        +            data = fh.read(8192)
                                        +            if not data:
                                        +                break
                                        +            m.update(data)
                                        +        return m.hexdigest()
                                        +
                                        @@ -37,6 +704,28 @@

                                        Parameters

                                        file_path : str
                                        path to the file
                                        +
                                        + +Expand source code + +
                                        def blake2bchecksum(file_path):
                                        +    """
                                        +    Calculates hash of the file
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    file_path : str
                                        +        path to the file
                                        +    """
                                        +    with open(file_path, 'rb') as fh:
                                        +        m = hashlib.blake2b()
                                        +        while True:
                                        +            data = fh.read(8192)
                                        +            if not data:
                                        +                break
                                        +            m.update(data)
                                        +        return m.hexdigest()
                                        +
                                        def choose_best_models(models, requirement_lesser, requirement_greater, requirement_equal, metric, extremum='min', models_num=None) @@ -69,18 +758,155 @@

                                        Returns

                                        best_models : list of models
                                        models with best scores or matching request
                                        +
                                        + +Expand source code + +
                                        def choose_best_models(models: list, requirement_lesser: list, requirement_greater: list,
                                        +                       requirement_equal: list, metric: str, extremum="min", models_num=None):
                                        +    """
                                        +    Get best model according to specified metric.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    models : list of TopicModel
                                        +        list of models with .scores parameter.
                                        +    requirement_lesser : list of tuple
                                        +        list containing tuples of form
                                        +        (SCORE_NAME/model.PARAMETER_NAME, TARGET_NUMBER)
                                        +    requirement_greater : list of tuple
                                        +        list containing tuples of form
                                        +        (SCORE_NAME/model.PARAMETER_NAME, TARGET_NUMBER)
                                        +    requirement_equal : list of tuple
                                        +        list containing tuples of form
                                        +        (SCORE_NAME/model.PARAMETER_NAME, TARGET_NUMBER)
                                        +    metric : str
                                        +        metric for selection.
                                        +    extremum : str
                                        +        "min" or "max" - comparison parameter (Default value = "min")
                                        +    models_num : int
                                        +        number of models to select
                                        +        (default value is None, which is mapped to "all" or 1 depending on whether 'metric' is set)
                                        +
                                        +    Returns
                                        +    -------
                                        +    best_models : list of models
                                        +        models with best scores or matching request
                                        +
                                        +    """
                                        +    acceptable_models = _select_acceptable_models(
                                        +        models,
                                        +        requirement_lesser,
                                        +        requirement_greater,
                                        +        requirement_equal
                                        +    )
                                        +
                                        +    if metric is None and extremum is None:
                                        +        if models_num is None:
                                        +            result_models = acceptable_models
                                        +        else:
                                        +            result_models = acceptable_models[:models_num]
                                        +
                                        +        if models_num is not None and len(result_models) < models_num:
                                        +            warnings.warn(W_RETURN_FEWER_MODELS + ' ' +
                                        +                          W_RETURN_FEWER_MODELS_DETAILS.format(models_num, len(result_models)))
                                        +
                                        +        return result_models
                                        +
                                        +    elif len(models) > 0 and metric not in models[0].scores:
                                        +        raise ValueError(f'There is no {metric} metric for model {models[0].model_id}.\n'
                                        +                         f'The following scores are available: {list(models[0].scores.keys())}')
                                        +
                                        +    return _choose_models_by_metric(acceptable_models, metric, extremum, models_num)
                                        +
                                        def choose_value_for_models_num_and_check(models_num_as_parameter, models_num_from_query)
                                        +
                                        + +Expand source code + +
                                        def choose_value_for_models_num_and_check(
                                        +        models_num_as_parameter, models_num_from_query) -> int:
                                        +
                                        +    models_num = None
                                        +
                                        +    if models_num_as_parameter is not None and models_num_from_query is not None and \
                                        +            models_num_as_parameter != models_num_from_query:
                                        +
                                        +        warnings.warn(
                                        +            f'Models number given as parameter \"{models_num_as_parameter}\" '
                                        +            f'not the same as models number specified after '
                                        +            f'COLLECT: \"{models_num_from_query}\". '
                                        +            f'Parameter value \"{models_num_as_parameter}\" will be used for select'
                                        +        )
                                        +
                                        +        models_num = models_num_as_parameter
                                        +
                                        +    elif models_num_as_parameter is not None:
                                        +        models_num = models_num_as_parameter
                                        +
                                        +    elif models_num_from_query is not None:
                                        +        models_num = models_num_from_query
                                        +
                                        +    if models_num is not None and int(models_num) < 0:
                                        +        raise ValueError(f"Cannot return negative number of models")
                                        +
                                        +    return models_num
                                        +
                                        def compute_special_queries(special_models, special_queries)

                                        Computes special queries with functions.

                                        +
                                        + +Expand source code + +
                                        def compute_special_queries(special_models, special_queries):
                                        +    """
                                        +    Computes special queries with functions.
                                        +
                                        +    """
                                        +    special_functions = {
                                        +        'MINIMUM': min,
                                        +        'MAXIMUM': max,
                                        +        'AVERAGE': mean,
                                        +        'MEDIAN': median,
                                        +    }
                                        +    if not special_models and special_queries:
                                        +        warnings.warn(f"Cannot evaluate '{special_queries}': list of candidate models is empty",
                                        +                      RuntimeWarning)
                                        +
                                        +    processed_queries = []
                                        +    for query in special_queries:
                                        +        first, middle, *raw_last = query.strip().split()
                                        +        if middle not in ['>', '<', '=']:
                                        +            raise ValueError(f"Cannot understand '{query}': unknown format")
                                        +
                                        +        last = []
                                        +        for subpart in raw_last:
                                        +            if subpart[0] in ['A', 'M']:
                                        +                split_subpart = re.split('[()]', subpart)
                                        +                special_function, metric = split_subpart[0].strip(), split_subpart[1].strip()
                                        +                scores = [model.scores[metric][-1] for model in special_models]
                                        +                last.append(str(special_functions.get(special_function, max)(scores)))
                                        +            else:
                                        +                last += subpart
                                        +
                                        +        try:
                                        +            last = str(ne.evaluate(''.join(last)))
                                        +        except SyntaxError:
                                        +            raise ValueError(f"Cannot evaluate {last} expression")
                                        +
                                        +        processed_queries.append(' '.join([first, middle, last]))
                                        +
                                        +    return processed_queries
                                        +
                                        def extract_required_parameter(model, parameter) @@ -99,6 +925,60 @@

                                        Returns

                                        optional
                                         
                                        +
                                        + +Expand source code + +
                                        def extract_required_parameter(model, parameter):
                                        +    """
                                        +    Extracts necessary parameter from model.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    model : TopicModel
                                        +    parameter : str
                                        +
                                        +    Returns
                                        +    -------
                                        +    optional
                                        +
                                        +    """
                                        +    value_to_return_as_none = float('nan')  # value needed for comparisons in is_acceptable
                                        +
                                        +    if parameter.split('.')[0] == 'model':
                                        +        parameters = model.get_init_parameters()
                                        +        parameter_name = parameter.split('.')[1]
                                        +
                                        +        if parameter_name in parameters.keys():
                                        +            parameter_value = parameters.get(parameter_name)
                                        +
                                        +            if parameter_value is not None:
                                        +                return parameter_value
                                        +            else:
                                        +                return value_to_return_as_none
                                        +        else:
                                        +            raise ValueError(f'Unknown parameter {parameter_name} for model.')
                                        +    else:
                                        +        scores = model.scores.get(parameter, None)
                                        +
                                        +        if scores is None and model.depth == 0:  # start model
                                        +            warnings.warn(f'Start model doesn\'t have score values for \"{parameter}\"')
                                        +
                                        +            return value_to_return_as_none
                                        +
                                        +        elif scores is None:
                                        +            raise ValueError(
                                        +                f'Model \"{model}\" doesn\'t have the score \"{parameter}\". '
                                        +                f'Expected score name {parameter} or model.parameter {parameter}')
                                        +
                                        +        if len(scores) == 0:
                                        +            raise ValueError(f'Empty score {parameter}.')
                                        +
                                        +        if scores[-1] is None:  # FrozenScore
                                        +            return value_to_return_as_none
                                        +
                                        +        return scores[-1]
                                        +
                                        def get_equal_lists(one_dict, min_len=0, sep=' ', sep_len='last') @@ -118,6 +998,38 @@

                                        Parameters

                                        length of added strings, if "last" than length of added strings is equal to the length of the last string in the list (Default value = "last")
                                        +
                                        + +Expand source code + +
                                        def get_equal_lists(one_dict, min_len: int = 0, sep: str = " ", sep_len="last"):
                                        +    """
                                        +    Transforms all lists to list with the same length, but not less that min_len.
                                        +    Fills lists with sep. Inplace.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    one_dict : dict
                                        +        dict with lists
                                        +    min_len : int
                                        +        minimal length of the list (Default value = 0)
                                        +    sep : str
                                        +        filling symbol (Default value = " ")
                                        +    sep_len : int or "last"
                                        +        length of added strings, if "last" than length of added strings is equal
                                        +        to the length of the last string in the list (Default value = "last")
                                        +
                                        +    """
                                        +    max_len = np.array([len(one_list) for one_list in one_dict.values()]).max()
                                        +    max_len = max(min_len, max_len)
                                        +    for id_list, one_list in one_dict.items():
                                        +        if sep_len == "last":
                                        +            one_dict[id_list] += [sep * len(one_list[-1])] * (max_len - len(one_list))
                                        +        elif isinstance(sep_len, int):
                                        +            one_dict[id_list] += [sep * sep_len] * (max_len - len(one_list))
                                        +        else:
                                        +            raise ValueError("Parameter sep_len can be int or \"last\".")
                                        +
                                        def get_equal_strings(strings, min_len=0, sep=' ') @@ -134,6 +1046,31 @@

                                        Parameters

                                        sep : str
                                        filling symbol (Default value = " ")
                                        +
                                        + +Expand source code + +
                                        def get_equal_strings(strings, min_len: int = 0, sep: str = " "):
                                        +    """
                                        +    Transforms all strings to strings with the same length, but not less that min_len.
                                        +    Fills strings with sep. Inplace.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    strings : list
                                        +        list of strings
                                        +    min_len : int
                                        +        minimal length of the string (Default value = 0)
                                        +    sep : str
                                        +        filling symbol (Default value = " ")
                                        +
                                        +    """
                                        +    max_string_len = np.array([len(string) for string in strings]).max()
                                        +    max_string_len = max(min_len, max_string_len)
                                        +    for id_string, string in enumerate(strings):
                                        +        if len(string) < max_string_len:
                                        +            strings[id_string] += sep * (max_string_len - len(string))
                                        +
                                        def get_fix_list(input_list, length, num) @@ -154,6 +1091,55 @@

                                        Returns

                                        list
                                        list with no more than num of beautiful strings
                                        +
                                        + +Expand source code + +
                                        def get_fix_list(input_list: list, length: int, num: int):
                                        +    """
                                        +    Returns list with strings of size length that contains not more than num strings.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    input_list : list
                                        +        list of input strings
                                        +    length : int
                                        +        length of output strings
                                        +    num : int
                                        +        maximal number of strings on output list
                                        +
                                        +    Returns
                                        +    -------
                                        +    list
                                        +        list with no more than num of beautiful strings
                                        +
                                        +    """
                                        +    if len(input_list) == 0:
                                        +        input_list = ["---"]
                                        +    output_list = []
                                        +    if (len(input_list) > num) and (num != -1):
                                        +        sep = (num - 1) // 2
                                        +        if num % 2 == 0:
                                        +            for elem in input_list[:sep + 1]:
                                        +                output_list.append(get_fix_string(elem, length - 1) + ",")
                                        +            output_list.append("...," + " " * (length - 4))
                                        +            for elem in input_list[-sep:]:
                                        +                output_list.append(get_fix_string(elem, length - 1) + ",")
                                        +            output_list[-1] = output_list[-1][:-1] + " "
                                        +        else:
                                        +            for elem in input_list[:sep]:
                                        +                output_list.append(get_fix_string(elem, length - 1) + ",")
                                        +            output_list.append("...," + " " * (length - 4))
                                        +            for elem in input_list[-sep:]:
                                        +                output_list.append(get_fix_string(elem, length - 1) + ",")
                                        +            output_list[-1] = output_list[-1][:-1] + " "
                                        +    else:
                                        +        for elem in input_list:
                                        +            output_list.append(get_fix_string(elem, length - 1) + ",")
                                        +        output_list[-1] = output_list[-1][:-1] + " "
                                        +
                                        +    return output_list
                                        +
                                        def get_fix_string(input_string, length) @@ -172,6 +1158,41 @@

                                        Returns

                                        str
                                        beautiful string of the size length
                                        +
                                        + +Expand source code + +
                                        def get_fix_string(input_string: str, length: int):
                                        +    """
                                        +    Transforms input_string to the string of the size length.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    input_string : str
                                        +        input_string
                                        +    length : int
                                        +        length of output_string, if -1 then output_string is the same as input_string
                                        +
                                        +    Returns
                                        +    -------
                                        +    str
                                        +        beautiful string of the size length
                                        +
                                        +    """
                                        +    input_string = str(input_string)
                                        +    if length < 0:
                                        +        output_string = input_string
                                        +    elif len(input_string) > length:
                                        +        sep = (length - 3) // 2
                                        +        if length % 2 == 0:
                                        +            output_string = input_string[:sep + 1] + "..." + input_string[-sep:]
                                        +        else:
                                        +            output_string = input_string[:sep] + "..." + input_string[-sep:]
                                        +    else:
                                        +        output_string = input_string + " " * (length - len(input_string))
                                        +
                                        +    return output_string
                                        +
                                        def get_public_instance_attributes(instance) @@ -188,6 +1209,29 @@

                                        Returns

                                        list of str
                                         
                                        +
                                        + +Expand source code + +
                                        def get_public_instance_attributes(instance):
                                        +    """
                                        +    Get list of all instance public atrributes.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    instance : optional
                                        +
                                        +    Returns
                                        +    -------
                                        +    list of str
                                        +
                                        +    """
                                        +    public_attributes = [
                                        +        attribute
                                        +        for attribute in instance.__dir__() if attribute[0] != '_'
                                        +    ]
                                        +    return public_attributes
                                        +
                                        def get_timestamp_in_str_format() @@ -199,6 +1243,24 @@

                                        Returns

                                        str
                                        timestamp in "%Hh%Mm%Ss_%dd%mm%Yy" format
                                        +
                                        + +Expand source code + +
                                        def get_timestamp_in_str_format():
                                        +    """
                                        +    Returns current timestamp.
                                        +
                                        +    Returns
                                        +    -------
                                        +    str
                                        +        timestamp in "%Hh%Mm%Ss_%dd%mm%Yy" format
                                        +
                                        +    """
                                        +    curr_tmsp = datetime.now().strftime("%Hh%Mm%Ss_%dd%mm%Yy")
                                        +
                                        +    return curr_tmsp
                                        +
                                        def is_acceptable(model, requirement_lesser, requirement_greater, requirement_equal) @@ -221,6 +1283,45 @@

                                        Returns

                                        bool
                                         
                                        +
                                        + +Expand source code + +
                                        def is_acceptable(model, requirement_lesser, requirement_greater, requirement_equal):
                                        +    """
                                        +    Checks if model suits request.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    model : TopicModel
                                        +    requirement_lesser : list of tuple
                                        +    requirement_greater : list of tuple
                                        +    requirement_equal : list of tuple
                                        +
                                        +    Returns
                                        +    -------
                                        +    bool
                                        +
                                        +    """
                                        +    from .models import TopicModel
                                        +
                                        +    if not isinstance(model, TopicModel):
                                        +        warnings.warn(f'Model {model} isn\'t of type TopicModel.' +
                                        +                      ' Check your selection level and/or level models.')
                                        +        return False
                                        +
                                        +    answer = (
                                        +        all(extract_required_parameter(model, req_parameter) < value
                                        +            for req_parameter, value in requirement_lesser)
                                        +        and
                                        +        all(extract_required_parameter(model, req_parameter) > value
                                        +            for req_parameter, value in requirement_greater)
                                        +        and
                                        +        all(extract_required_parameter(model, req_parameter) == value
                                        +            for req_parameter, value in requirement_equal)
                                        +    )
                                        +    return answer
                                        +
                                        def is_jsonable(x) @@ -237,12 +1338,53 @@

                                        Returns

                                        bool
                                         
                                        +
                                        + +Expand source code + +
                                        def is_jsonable(x):
                                        +    """
                                        +    Check that x is jsonable
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    x : optional
                                        +
                                        +    Returns
                                        +    -------
                                        +    bool
                                        +
                                        +    """
                                        +    try:
                                        +        json.dumps(x)
                                        +        return True
                                        +    except (TypeError, OverflowError):
                                        +        return False
                                        +
                                        def is_saveable_model(model=None, model_id=None, experiment=None)

                                        Little helpful function. May be extended later.

                                        +
                                        + +Expand source code + +
                                        def is_saveable_model(model=None, model_id=None, experiment=None):
                                        +    """
                                        +    Little helpful function. May be extended later.
                                        +
                                        +    """
                                        +    from .models import SUPPORTED_MODEL_CLASSES
                                        +
                                        +    if model is None and experiment is not None:
                                        +        model = experiment.models.get(model_id)
                                        +
                                        +    # hasattr(model, 'save') is not currently supported due to dummy save in BaseModel
                                        +
                                        +    return isinstance(model, SUPPORTED_MODEL_CLASSES)
                                        +
                                        def parse_query_string(query_string) @@ -267,6 +1409,72 @@

                                        Returns

                                        extremum : str
                                         
                                        +
                                        + +Expand source code + +
                                        def parse_query_string(query_string: str):
                                        +    """
                                        +    This function will parse query string and subdivide it into following parts:
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    query_string : str
                                        +        (see Experiment.select function for details)
                                        +
                                        +    Returns
                                        +    -------
                                        +    requirement_lesser : list
                                        +    requirement_greater : list
                                        +    requirement_equal : list
                                        +    metric : str
                                        +    extremum : str
                                        +
                                        +    """  # noqa: W291
                                        +    requirement = {
                                        +        ">": [],
                                        +        "<": [],
                                        +        "=": []
                                        +    }
                                        +    metric = None
                                        +    extremum = None
                                        +
                                        +    for part in filter(None, re.split(r'\s+and\s+', query_string)):
                                        +        expression_parts = part.strip().split()
                                        +
                                        +        if len(expression_parts) != 3:
                                        +            raise ValueError(f"Cannot understand '{part}'")
                                        +
                                        +        first, middle, last = expression_parts
                                        +
                                        +        if middle in [">", "<", "="]:
                                        +            requirement[middle] += [(first, float(last))]
                                        +
                                        +        elif middle == "->":
                                        +            current_metric = first
                                        +            current_extremum = last
                                        +
                                        +            if metric == current_metric and extremum == current_extremum:
                                        +                continue
                                        +
                                        +            if metric is not None:
                                        +                raise ValueError(
                                        +                    f"Cannot process more than one target: "
                                        +                    f"previous \"{metric}\" with extremum \"{extremum}\" and "
                                        +                    f"current \"{current_metric}\" with extremum \"{current_extremum}\"")
                                        +
                                        +            if current_extremum not in ["max", "min"]:
                                        +                raise ValueError(f"Cannot understand '{part}': "
                                        +                                 f"unknown requirement '{current_extremum}'")
                                        +
                                        +            metric = current_metric
                                        +            extremum = current_extremum
                                        +
                                        +        else:
                                        +            raise ValueError(f"Unknown connector '{middle}' in '{part}'")
                                        +
                                        +    return requirement["<"], requirement[">"], requirement["="], metric, extremum
                                        +
                                        def transform_complex_entity_to_dict(some_entity) @@ -282,6 +1490,38 @@

                                        Returns

                                        dict
                                        jsonable entity
                                        +
                                        + +Expand source code + +
                                        def transform_complex_entity_to_dict(some_entity):
                                        +    """
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    some_entity : optional
                                        +
                                        +    Returns
                                        +    -------
                                        +    dict
                                        +        jsonable entity
                                        +
                                        +    """
                                        +    jsonable_reg_params = dict()
                                        +
                                        +    jsonable_reg_params['name'] = some_entity.__class__.__name__
                                        +    public_attributes = get_public_instance_attributes(some_entity)
                                        +    for attribute in public_attributes:
                                        +        try:
                                        +            value = getattr(some_entity, attribute)
                                        +            if is_jsonable(value):
                                        +                jsonable_reg_params[attribute] = value
                                        +        except (AttributeError, KeyError):
                                        +            # TODO: need warning here
                                        +            jsonable_reg_params[attribute] = None
                                        +
                                        +    return jsonable_reg_params
                                        +
                                        def transform_topic_model_description_to_jsonable(obj) @@ -298,6 +1538,47 @@

                                        Returns

                                        int
                                        jsonable object
                                        +
                                        + +Expand source code + +
                                        def transform_topic_model_description_to_jsonable(obj):
                                        +    """
                                        +    Change object to handle serialization problems with json.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    obj : object
                                        +        input object
                                        +
                                        +    Returns
                                        +    -------
                                        +    int
                                        +        jsonable object
                                        +
                                        +    """
                                        +    if isinstance(obj, np.int64):
                                        +        return int(obj)
                                        +    if isinstance(obj, np.ndarray):
                                        +        return obj.tolist()
                                        +    elif re.search(r'artm.score_tracker', str(type(obj))) is not None:
                                        +        return obj._name
                                        +    elif re.search(r'score', str(type(obj))) is not None:
                                        +        return str(obj.__class__)
                                        +    elif re.search(r'Score', str(type(obj))) is not None:
                                        +        return str(obj.__class__)
                                        +    elif re.search(r'Cube', str(type(obj))) is not None:
                                        +        return str(obj.__class__)
                                        +    elif re.search(r'protobuf', str(type(obj))) is not None:
                                        +        try:
                                        +            return str(list(obj))
                                        +        except:  # noqa: E722
                                        +            return str(type(obj))
                                        +    else:
                                        +        warnings.warn(f'Object {obj} can not be dumped using json.' +
                                        +                      'Object class name will be returned.', RuntimeWarning)
                                        +        return str(obj.__class__)
                                        +
                                        @@ -340,7 +1621,9 @@

                                        Index

                                        + + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index dbac062..f77b83b 100644 --- a/docs/index.html +++ b/docs/index.html @@ -3,12 +3,13 @@ - + topicnet API documentation - + + @@ -23,11 +24,18 @@

                                        TopicNet

                                        • cooking_machine - a module providing tools to design a topic model construction pipeline, or experiment with regularizers fitting

                                        • viewers - provides information about the topic model in an accessible format.

                                        • +
                                        • tests - provides a user with means to test library functionality and contains examples of intended library usage.


                                        Project description

                                        In TopicNet framework, advanced topic models are build using Experiment class. An experiment consists of stages (that we call “cubes”) which perform actions over the “models” which are objects of the Experiment. The experiment instance of Experiment class contains all the information about the experiment process and automatically updates its log when a cube is applied to the last level models. It is worth noting that the experiment is linear, meaning it does not support multiple different cubes at the same stage of the experiment. If that need arises one is recommended to create a new experiment with a new cube on the last level. The experiment instance of Experiment class contains all the information about the experiment process and automatically updates its log when the cube is applied to the last level models. Summarizing: the key entity Experiment is a sequence of cubes that produce models on each stage of the experiment process

                                        +
                                        + +Expand source code + +
                                        __pdoc__ = {"tests": False}
                                        +

                                        Sub-modules

                                        @@ -35,7 +43,6 @@

                                        Sub-modules

                                        topicnet.cooking_machine
                                        -
                                        topicnet.viewers
                                        @@ -51,7 +58,7 @@

                                        Sub-modules

                                        + + \ No newline at end of file diff --git a/docs/tests/index.html b/docs/tests/index.html deleted file mode 100644 index 361edf2..0000000 --- a/docs/tests/index.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - -topicnet.tests API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests

                                        -
                                        -
                                        -
                                        -
                                        -

                                        Sub-modules

                                        -
                                        -
                                        topicnet.tests.test_cube_controller
                                        -
                                        -
                                        -
                                        -
                                        topicnet.tests.test_cube_creator
                                        -
                                        -
                                        -
                                        -
                                        topicnet.tests.test_cubes
                                        -
                                        -
                                        -
                                        -
                                        topicnet.tests.test_dataset
                                        -
                                        -
                                        -
                                        -
                                        topicnet.tests.test_experiment
                                        -
                                        -
                                        -
                                        -
                                        topicnet.tests.test_experiment_logging
                                        -
                                        -
                                        -
                                        -
                                        topicnet.tests.test_experiment_select
                                        -
                                        -
                                        -
                                        -
                                        topicnet.tests.test_intratext_coherence_score
                                        -
                                        -
                                        -
                                        -
                                        topicnet.tests.test_pipeline
                                        -
                                        -
                                        -
                                        -
                                        topicnet.tests.test_spectrum
                                        -
                                        -
                                        -
                                        -
                                        topicnet.tests.test_top_documents_viewer
                                        -
                                        -
                                        -
                                        -
                                        topicnet.tests.test_top_tokens_viewer
                                        -
                                        -
                                        -
                                        -
                                        topicnet.tests.test_topic_mapping
                                        -
                                        -
                                        -
                                        -
                                        topicnet.tests.test_topic_model
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/tests/test_cube_controller.html b/docs/tests/test_cube_controller.html deleted file mode 100644 index 4f62025..0000000 --- a/docs/tests/test_cube_controller.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - -topicnet.tests.test_cube_controller API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests.test_cube_controller

                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Functions

                                        -
                                        -
                                        -def approx_equal(x, y) -
                                        -
                                        -
                                        -
                                        -
                                        -def experiment_enviroment(request) -
                                        -
                                        -
                                        -
                                        -
                                        -def generate_decorrelators(specific_topic_names_lvl1, background_topic_names_lvl1, words_class_ids='@text', class_ids_for_bcg_decorrelation='@text', ngramms_modalities_for_decor='@ngramms') -
                                        -
                                        -

                                        Creates an array of pre-configured regularizers -using specified coefficients

                                        -
                                        -
                                        -def generate_sparse_regularizers(specific_topic_names, background_topic_names, class_ids_for_bcg_smoothing='@text', specific_words_classes='@text') -
                                        -
                                        -

                                        Creates an array of pre-configured regularizers -using specified coefficients

                                        -
                                        -
                                        -def resource_teardown() -
                                        -
                                        -
                                        -
                                        -
                                        -def setup_function() -
                                        -
                                        -
                                        -
                                        -
                                        -def teardown_function() -
                                        -
                                        -
                                        -
                                        -
                                        -def test_description_for_insanely_complicated_lambdas(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_flicker_with_controller(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_flicker_with_controller_lambdas(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_inline_regularizers(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_inline_relative_regularizers(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_max_iters(experiment_enviroment, num_iters) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_simple_experiment_with_controller(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/tests/test_cube_creator.html b/docs/tests/test_cube_creator.html deleted file mode 100644 index 3af3750..0000000 --- a/docs/tests/test_cube_creator.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - -topicnet.tests.test_cube_creator API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests.test_cube_creator

                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Functions

                                        -
                                        -
                                        -def experiment_enviroment(request) -
                                        -
                                        -
                                        -
                                        -
                                        -def resource_teardown() -
                                        -
                                        -
                                        -
                                        -
                                        -def setup_function() -
                                        -
                                        -
                                        -
                                        -
                                        -def teardown_function() -
                                        -
                                        -
                                        -
                                        -
                                        -def test_scores_are_different_after_cube(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_simple_experiment(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_three_cubes_hier_model(experiment_enviroment, thread_flag) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_two_cubes_experiment(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/tests/test_cubes.html b/docs/tests/test_cubes.html deleted file mode 100644 index 62893db..0000000 --- a/docs/tests/test_cubes.html +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - -topicnet.tests.test_cubes API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests.test_cubes

                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Functions

                                        -
                                        -
                                        -def experiment_enviroment(request) -
                                        -
                                        -
                                        -
                                        -
                                        -def extract_strategic_scores(cube) -
                                        -
                                        -
                                        -
                                        -
                                        -def extract_visited_taus(tmodels) -
                                        -
                                        -
                                        -
                                        -
                                        -def resource_teardown() -
                                        -
                                        -
                                        -
                                        -
                                        -def setup_function() -
                                        -
                                        -
                                        -
                                        -
                                        -def teardown_function() -
                                        -
                                        -
                                        -
                                        -
                                        -def test_class_id_cube_strategy_3d_parabolic(experiment_enviroment, renormalize) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_class_id_cube_strategy_elliptic_paraboloid(experiment_enviroment, renormalize) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_class_id_cube_strategy_rosenbrock(experiment_enviroment, renormalize) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_class_ids_cube(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_double_steps_experiment(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_initial_tm(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_modifier_cube_on_two_steps_experiment(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_perplexity_strategy_add(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_perplexity_strategy_grid(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_perplexity_strategy_mul(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_relative_coefficients(experiment_enviroment, artm_regularizer) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_simple_experiment(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_simple_experiment_pair_strategy(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_topic_model_score(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_two_regularizers_on_step_experiment(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_two_regularizers_on_step_experiment_pair_grid(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/tests/test_dataset.html b/docs/tests/test_dataset.html deleted file mode 100644 index 26e822b..0000000 --- a/docs/tests/test_dataset.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - -topicnet.tests.test_dataset API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests.test_dataset

                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Functions

                                        -
                                        -
                                        -def test_base_dataset() -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Classes

                                        -
                                        -
                                        -class TestDataset -(*args, **kwargs) -
                                        -
                                        -
                                        -

                                        Static methods

                                        -
                                        -
                                        -def setup_class() -
                                        -
                                        -
                                        -
                                        -
                                        -def teardown_class() -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Methods

                                        -
                                        -
                                        -def test_get_dict(cls, small) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_read_data(cls, path) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_read_wrong_data(cls, path) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_return_data_both_cases(cls, small) -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/tests/test_experiment.html b/docs/tests/test_experiment.html deleted file mode 100644 index 830810c..0000000 --- a/docs/tests/test_experiment.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - -topicnet.tests.test_experiment API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests.test_experiment

                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Functions

                                        -
                                        -
                                        -def resource_teardown() -
                                        -
                                        -
                                        -
                                        -
                                        -def setup_function() -
                                        -
                                        -
                                        -
                                        -
                                        -def teardown_function() -
                                        -
                                        -
                                        -
                                        -
                                        -def test_describe(two_experiment_enviroments) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_double_steps_experiment(two_experiment_enviroments) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_initial_save_load(two_experiment_enviroments) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_simple_experiment(two_experiment_enviroments) -
                                        -
                                        -
                                        -
                                        -
                                        -def two_experiment_enviroments(request) -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/tests/test_experiment_logging.html b/docs/tests/test_experiment_logging.html deleted file mode 100644 index f41fa45..0000000 --- a/docs/tests/test_experiment_logging.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - -topicnet.tests.test_experiment_logging API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests.test_experiment_logging

                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Classes

                                        -
                                        -
                                        -class TestLogging -(*args, **kwargs) -
                                        -
                                        -
                                        -

                                        Static methods

                                        -
                                        -
                                        -def setup_class() -
                                        -
                                        -
                                        -
                                        -
                                        -def teardown_class() -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Methods

                                        -
                                        -
                                        -def test_experiment_exists(cls) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_experiment_prune(cls) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_work_with_dataset(cls) -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/tests/test_experiment_select.html b/docs/tests/test_experiment_select.html deleted file mode 100644 index e40d0ea..0000000 --- a/docs/tests/test_experiment_select.html +++ /dev/null @@ -1,607 +0,0 @@ - - - - - - -topicnet.tests.test_experiment_select API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests.test_experiment_select

                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Functions

                                        -
                                        -
                                        -def combine_constraints(*constraints, connector='and', symbol_before=' ', symbol_after=' ') -
                                        -
                                        -
                                        -
                                        -
                                        -def format_init_parameter(init_parameter) -
                                        -
                                        -
                                        -
                                        -
                                        -def format_score(score) -
                                        -
                                        -
                                        -
                                        -
                                        -def get_models(scores=None, init_parameters=None, score_range=None, init_parameters_range=None) -
                                        -
                                        -
                                        -
                                        -
                                        -def get_models_with_one_init_parameter(init_parameter=None) -
                                        -
                                        -
                                        -
                                        -
                                        -def get_models_with_one_score(score=None) -
                                        -
                                        -
                                        -
                                        -
                                        -def get_models_with_two_scores_two_init_parameters() -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Classes

                                        -
                                        -
                                        -class MockTopicModel -(name, depth=1) -
                                        -
                                        -

                                        Topic Model contains artm model and all necessary information: scores, training pipeline, etc.

                                        -

                                        Initialize stage, also used for loading previously saved experiments.

                                        -

                                        Parameters

                                        -
                                        -
                                        artm_model : artm model or None
                                        -
                                        model to use, None if you want to create model (Default value = None)
                                        -
                                        model_id : str
                                        -
                                        model id (Default value = None)
                                        -
                                        parent_model_id : str
                                        -
                                        model id from which current model was created (Default value = None)
                                        -
                                        data_path : str
                                        -
                                        path to the data (Default value = None)
                                        -
                                        description : list of dict
                                        -
                                        description of the model (Default value = None)
                                        -
                                        experiment : Experiment
                                        -
                                        the experiment to which the model is bound (Default value = None)
                                        -
                                        callbacks : list of objects with invoke() method
                                        -
                                        function called inside _fit which alters model parameters -mainly used for fancy regularizer coefficients manipulation
                                        -
                                        custom_scores : dict
                                        -
                                        dictionary with score names as keys and score classes as functions -(score class with functionality like those of BaseScore)
                                        -
                                        -

                                        Ancestors

                                        - -

                                        Static methods

                                        -
                                        -
                                        -def generate_specified_models(scores_ranges=None, init_parameters_ranges=None) -
                                        -
                                        -
                                        -
                                        -
                                        -def get_start_model() -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Instance variables

                                        -
                                        -
                                        var init_parameters
                                        -
                                        -
                                        -
                                        -
                                        var name
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Methods

                                        -
                                        -
                                        -def get_init_parameters(self) -
                                        -
                                        -
                                        -
                                        -
                                        -def set_init_parameter(self, name, value) -
                                        -
                                        -
                                        -
                                        -
                                        -def set_score(self, name, values) -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Inherited members

                                        - -
                                        -
                                        -class TestExperimentSelect -(*args, **kwargs) -
                                        -
                                        -
                                        -

                                        Class variables

                                        -
                                        -
                                        var current_experiment_id
                                        -
                                        -
                                        -
                                        -
                                        var experiments_folder
                                        -
                                        -
                                        -
                                        -
                                        var query_sample
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Static methods

                                        -
                                        -
                                        -def get_experiment(with_models=True) -
                                        -
                                        -
                                        -
                                        -
                                        -def get_filter_for_init_parameter(query, parameter, threshold) -
                                        -
                                        -
                                        -
                                        -
                                        -def get_filter_for_score(query, score, threshold, models) -
                                        -
                                        -
                                        -
                                        -
                                        -def set_models(experiment, models) -
                                        -
                                        -
                                        -
                                        -
                                        -def setup_class() -
                                        -
                                        -
                                        -
                                        -
                                        -def teardown_class() -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Methods

                                        -
                                        -
                                        -def test_blank_query(self, with_models) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_change_order(self, constraints) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_constrained_optimization(self, score, threshold, constraint_template, optimization_template) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_constraints_on_same_attribute(self, parameter, soft_constraint_template, hard_constraint_template) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_constraints_on_same_attribute_contradict(self, parameter, threshold, signs) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_default_level(self) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_default_num_models(self, score, init_parameter, score_threshold, init_parameter_threshold) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_duplicate_constraint(self, constraint) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_duplicate_constraint_after_another(self, constraint_to_duplicate, constraint_other) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_empty_level(self) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_error_optimizations_contradict(self, score) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_invalid_level_with_models(self, level) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_invalid_level_without_models(self, level) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_invalid_num_models_with_models(self) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_not_a_number(self, query_template, not_a_number) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_num_and_models(self, query_template, init_parameter, threshold_satisfying_all, num_models) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_num_models(self, num_models, total_num_models, difference_with_num_satisfying, score, target_value, other_value, query_template) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_select_blank_start_model_by_defined_init_parameter(self) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_select_blank_start_model_by_score(self) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_select_blank_start_model_by_undefined_init_parameter(self) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_select_by_init_parameters(self, constraint_a_template, constraint_b_template, init_parameter_a, threshold_a, init_parameter_b, threshold_b) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_select_by_parameter(self, init_parameter, threshold, query_template, get_models_func) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_select_by_score(self, score, threshold, query_template, get_models_func) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_select_by_score_and_init_parameter(self, constraint_score_template, constraint_init_parameter_template, score, threshold_score, init_parameter, threshold_init_parameter) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_select_by_scores(self, constraint_a_template, constraint_b_template, score_a, threshold_a, score_b, threshold_b) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_select_several_times(self, query) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_two_optimizations(self, constraint_a_template, constraint_b_template, score_a, score_b) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_unknown_init_parameter(self, query_template, get_models_func) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_unknown_score(self, query_template, get_models_func) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_warning_constraints_contradict(self, parameter, opposite_constraints) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_warning_fewer_than_requested(self, query_satisfying_all) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_whitespace(self, score, threshold) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_wrong_arrow(self, query_template, wrong_arrow) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_wrong_case_in_constraints_connector(self) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_wrong_case_in_max_min(self, max_min) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_wrong_case_in_parameter(self, init_parameter) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_wrong_case_in_score(self, score) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_wrong_comparison_sign(self, query_template, wrong_sign) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_wrong_constraints_connector(self, constraint_a, constraint_b, wrong_connector) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_wrong_max_min(self, query_template, wrong_max_min) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_wrong_num_models(self, with_models) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_wrong_parameter_prefix(self, init_parameter, threshold, wrong_prefix) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_zero_num_models(self, with_models) -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/tests/test_intratext_coherence_score.html b/docs/tests/test_intratext_coherence_score.html deleted file mode 100644 index 1fa16a9..0000000 --- a/docs/tests/test_intratext_coherence_score.html +++ /dev/null @@ -1,271 +0,0 @@ - - - - - - -topicnet.tests.test_intratext_coherence_score API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests.test_intratext_coherence_score

                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Classes

                                        -
                                        -
                                        -class MockModel -(phi) -
                                        -
                                        -

                                        Initialize stage, also used for loading previously saved experiments.

                                        -

                                        Parameters

                                        -
                                        -
                                        model_id : str
                                        -
                                        model id (Default value = None)
                                        -
                                        parent_model_id : str
                                        -
                                        model id from which current model was created (Default value = None)
                                        -
                                        experiment : Experiment
                                        -
                                        the experiment to which the model is bound (Default value = None)
                                        -
                                        -

                                        Ancestors

                                        - -

                                        Methods

                                        -
                                        -
                                        -def get_phi(self) -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Inherited members

                                        - -
                                        -
                                        -class TestIntratextCoherenceScore -(*args, **kwargs) -
                                        -
                                        -
                                        -

                                        Class variables

                                        -
                                        -
                                        var best_topic
                                        -
                                        -
                                        -
                                        -
                                        var data_folder_path
                                        -
                                        -
                                        -
                                        -
                                        var dataset
                                        -
                                        -
                                        -
                                        -
                                        var document_topics
                                        -
                                        -
                                        -
                                        -
                                        var documents
                                        -
                                        -
                                        -
                                        -
                                        var model
                                        -
                                        -
                                        -
                                        -
                                        var out_of_documents_topic
                                        -
                                        -
                                        -
                                        -
                                        var out_of_topics_word
                                        -
                                        -
                                        -
                                        -
                                        var top_words
                                        -
                                        -
                                        -
                                        -
                                        var topic_documents
                                        -
                                        -
                                        -
                                        -
                                        var topics
                                        -
                                        -
                                        -
                                        -
                                        var vocabulary
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Static methods

                                        -
                                        -
                                        -def create_dataset_table(document_words) -
                                        -
                                        -
                                        -
                                        -
                                        -def create_documents() -
                                        -
                                        -
                                        -
                                        -
                                        -def create_phi() -
                                        -
                                        -
                                        -
                                        -
                                        -def get_raw_text(doc, document_words) -
                                        -
                                        -
                                        -
                                        -
                                        -def get_vw_text(doc, document_words) -
                                        -
                                        -
                                        -
                                        -
                                        -def setup_class() -
                                        -
                                        -
                                        -
                                        -
                                        -def teardown_class() -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Methods

                                        -
                                        -
                                        -def check_call(self, text_type, computation_method, word_topic_relatedness, specificity_estimation, documents=None) -
                                        -
                                        -
                                        -
                                        -
                                        -def smoke_check_compute_coherence(self, text_type, computation_method, word_topic_relatedness, specificity_estimation) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_call_with_specified_documents(self, text_type, computation_method, word_topic_relatedness, specificity_estimation, what_documents) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_smoke_call(self, text_type, computation_method, word_topic_relatedness, specificity_estimation) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_smoke_compute_coherence(self, text_type, computation_method, word_topic_relatedness, specificity_estimation) -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/tests/test_pipeline.html b/docs/tests/test_pipeline.html deleted file mode 100644 index ceb4cb6..0000000 --- a/docs/tests/test_pipeline.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - -topicnet.tests.test_pipeline API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests.test_pipeline

                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Functions

                                        -
                                        -
                                        -def experiment_enviroment(request) -
                                        -
                                        -
                                        -
                                        -
                                        -def resource_teardown() -
                                        -
                                        -
                                        -
                                        -
                                        -def setup_function() -
                                        -
                                        -
                                        -
                                        -
                                        -def teardown_function() -
                                        -
                                        -
                                        -
                                        -
                                        -def test_bad_config(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_bad_empty_config(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_config_with_blei_score(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_config_with_greedy_strategy(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_config_with_scores(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_pipeline_from_config(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_pipeline_with_new_cube_after(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_simple_pipeline(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/tests/test_spectrum.html b/docs/tests/test_spectrum.html deleted file mode 100644 index 4792ba3..0000000 --- a/docs/tests/test_spectrum.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - -topicnet.tests.test_spectrum API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests.test_spectrum

                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Functions

                                        -
                                        -
                                        -def experiment_enviroment(request) -
                                        -
                                        -

                                        Creates environment for experiment.

                                        -
                                        -
                                        -def test_random_generator_len() -
                                        -
                                        -
                                        -
                                        -
                                        -def test_random_generator_sort() -
                                        -
                                        -
                                        -
                                        -
                                        -def test_short_path() -
                                        -
                                        -
                                        -
                                        -
                                        -def test_solve_tsp() -
                                        -
                                        -
                                        -
                                        -
                                        -def test_swap_all_unique(experiment_enviroment) -
                                        -
                                        -

                                        Checks if swap works.

                                        -
                                        -
                                        -def test_swap_same_len(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_triplet_generator() -
                                        -
                                        -
                                        -
                                        -
                                        -def test_viewer() -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/tests/test_top_documents_viewer.html b/docs/tests/test_top_documents_viewer.html deleted file mode 100644 index 612a93d..0000000 --- a/docs/tests/test_top_documents_viewer.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - -topicnet.tests.test_top_documents_viewer API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests.test_top_documents_viewer

                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Functions

                                        -
                                        -
                                        -def merge_lists(iterable_of_lists) -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Classes

                                        -
                                        -
                                        -class TestTopDocumentsViewer -(*args, **kwargs) -
                                        -
                                        -
                                        -

                                        Class variables

                                        -
                                        -
                                        var theta
                                        -
                                        -
                                        -
                                        -
                                        var top_documents_viewer
                                        -
                                        -
                                        -
                                        -
                                        var topic_model
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Static methods

                                        -
                                        -
                                        -def setup_class() -
                                        -
                                        -
                                        -
                                        -
                                        -def teardown_class() -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Methods

                                        -
                                        -
                                        -def test_check_max_top_documents_number_parameter_workable(self, max_num_top_documents) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_object_clusters_parameter_validates_range_of_input_labels(self, illegal_cluster_label) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_object_clusters_parameter_workable(self) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_output_content(self) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_output_format(self) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_precomputed_distances_parameter_workable(self) -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/tests/test_top_tokens_viewer.html b/docs/tests/test_top_tokens_viewer.html deleted file mode 100644 index 626a1f0..0000000 --- a/docs/tests/test_top_tokens_viewer.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - -topicnet.tests.test_top_tokens_viewer API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests.test_top_tokens_viewer

                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Functions

                                        -
                                        -
                                        -def get_vocabulary_by_modality(topic_model) -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Classes

                                        -
                                        -
                                        -class TestTopTokensViewer -(*args, **kwargs) -
                                        -
                                        -
                                        -

                                        Class variables

                                        -
                                        -
                                        var topic_model
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Static methods

                                        -
                                        -
                                        -def get_top_tokens_viewer(method='top', num_top_tokens=2) -
                                        -
                                        -
                                        -
                                        -
                                        -def return_raw() -
                                        -
                                        -
                                        -
                                        -
                                        -def setup_class() -
                                        -
                                        -
                                        -
                                        -
                                        -def teardown_class() -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Methods

                                        -
                                        -
                                        -def test_check_modalities_names(self, scoring_method) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_not_possible_to_pass_wrong_scoring_method(self) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_number_of_modalities(self, scoring_method) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_number_of_top_tokens(self, scoring_method) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_number_of_topics(self, scoring_method) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_output_format(self, scoring_method) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_scoring_methods_differ(self) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_scoring_methods_top_and_phi_return_the_same(self) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_tokens_from_model_modality_dictionary(self, scoring_method) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_top_tokens_ordered_by_score_in_descending_order(self, scoring_method) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_topics_names(self, scoring_method) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_check_warning_if_require_more_top_tokens_than_available(self) -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/tests/test_topic_mapping.html b/docs/tests/test_topic_mapping.html deleted file mode 100644 index e7dc3d9..0000000 --- a/docs/tests/test_topic_mapping.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - -topicnet.tests.test_topic_mapping API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests.test_topic_mapping

                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Functions

                                        -
                                        -
                                        -def test_diagonal_answer_different() -
                                        -
                                        -
                                        -
                                        -
                                        -def test_diagonal_answer_same() -
                                        -
                                        -
                                        -
                                        -
                                        -def test_map_viewer_max() -
                                        -
                                        -
                                        -
                                        -
                                        -def test_map_viewer_min() -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Classes

                                        -
                                        -
                                        -class dummy_model -(matrix) -
                                        -
                                        -

                                        Initialize stage, also used for loading previously saved experiments.

                                        -

                                        Parameters

                                        -
                                        -
                                        model_id : str
                                        -
                                        model id (Default value = None)
                                        -
                                        parent_model_id : str
                                        -
                                        model id from which current model was created (Default value = None)
                                        -
                                        experiment : Experiment
                                        -
                                        the experiment to which the model is bound (Default value = None)
                                        -
                                        -

                                        Ancestors

                                        - -

                                        Methods

                                        -
                                        -
                                        -def get_phi(self, class_ids) -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Inherited members

                                        - -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/tests/test_topic_model.html b/docs/tests/test_topic_model.html deleted file mode 100644 index 4e775f3..0000000 --- a/docs/tests/test_topic_model.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - -topicnet.tests.test_topic_model API documentation - - - - - - - - -
                                        -
                                        -
                                        -

                                        Module topicnet.tests.test_topic_model

                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -

                                        Functions

                                        -
                                        -
                                        -def experiment_enviroment(request) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_fancy_fit_is_ok(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_serialization_is_ok(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_tm_with_bad_kwargs(my_kwargs, exception_expected, error_msg) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_tm_with_blei_laff_score(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_topic_model_dont_generate_attrs(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_topic_model_fancy_phi_are_ok(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_topic_model_has_artm_attr(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_topic_model_have_custom_score(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_topic_model_phi_is_ok(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_topic_model_score(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -def test_topic_model_theta_is_ok(experiment_enviroment) -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        -
                                        - -
                                        - - - \ No newline at end of file diff --git a/docs/viewers/base_viewer.html b/docs/viewers/base_viewer.html index 9be8c6b..e1e8dfc 100644 --- a/docs/viewers/base_viewer.html +++ b/docs/viewers/base_viewer.html @@ -3,12 +3,13 @@ - + topicnet.viewers.base_viewer API documentation - + + @@ -19,6 +20,37 @@

                                        Module topicnet.viewers.base_viewer

                                        +
                                        + +Expand source code + +
                                        from ..cooking_machine.models import BaseModel
                                        +
                                        +
                                        +class BaseViewer:
                                        +    """ """
                                        +    def __init__(self, model):
                                        +        if not isinstance(model, BaseModel):
                                        +            raise TypeError('Parameter "model" should derive from BaseModel')
                                        +
                                        +        self._model = model
                                        +
                                        +    @property
                                        +    def model(self):
                                        +        """ """
                                        +        return self._model
                                        +
                                        +    def view(self, *args, **kwargs):
                                        +        """
                                        +        Main method of viewer.
                                        +
                                        +        Returns
                                        +        -------
                                        +        optional
                                        +
                                        +        """
                                        +        raise NotImplementedError('Should be implemented in subclass')
                                        +
                                        @@ -35,6 +67,34 @@

                                        Classes

                                        +
                                        + +Expand source code + +
                                        class BaseViewer:
                                        +    """ """
                                        +    def __init__(self, model):
                                        +        if not isinstance(model, BaseModel):
                                        +            raise TypeError('Parameter "model" should derive from BaseModel')
                                        +
                                        +        self._model = model
                                        +
                                        +    @property
                                        +    def model(self):
                                        +        """ """
                                        +        return self._model
                                        +
                                        +    def view(self, *args, **kwargs):
                                        +        """
                                        +        Main method of viewer.
                                        +
                                        +        Returns
                                        +        -------
                                        +        optional
                                        +
                                        +        """
                                        +        raise NotImplementedError('Should be implemented in subclass')
                                        +

                                        Subclasses

                                        Instance variables

                                        var model
                                        +
                                        + +Expand source code + +
                                        @property
                                        +def model(self):
                                        +    """ """
                                        +    return self._model
                                        +

                                        Methods

                                        @@ -65,6 +134,21 @@

                                        Returns

                                        optional
                                         
                                        +
                                        + +Expand source code + +
                                        def view(self, *args, **kwargs):
                                        +    """
                                        +    Main method of viewer.
                                        +
                                        +    Returns
                                        +    -------
                                        +    optional
                                        +
                                        +    """
                                        +    raise NotImplementedError('Should be implemented in subclass')
                                        +
                                        @@ -97,7 +181,9 @@

                                        -

                                        Generated by pdoc 0.6.3.

                                        +

                                        Generated by pdoc 0.7.2.

                                        + + \ No newline at end of file diff --git a/docs/viewers/document_cluster.html b/docs/viewers/document_cluster.html index 8017b33..06f4fac 100644 --- a/docs/viewers/document_cluster.html +++ b/docs/viewers/document_cluster.html @@ -3,12 +3,13 @@ - + topicnet.viewers.document_cluster API documentation - + + @@ -19,6 +20,99 @@

                                        Module topicnet.viewers.document_cluster

                                        +
                                        + +Expand source code + +
                                        import numpy as np
                                        +import colorlover as cl
                                        +import plotly.graph_objs as go
                                        +import sklearn.manifold as clusterization
                                        +
                                        +from plotly.offline import plot, iplot
                                        +from .base_viewer import BaseViewer
                                        +from functools import partial
                                        +
                                        +
                                        +class DocumentClusterViewer(BaseViewer):
                                        +    """
                                        +    This viewer performs dimesionality reduction over document embeddings
                                        +    """
                                        +    def __init__(self, model):
                                        +        """
                                        +        Parameters
                                        +        ----------
                                        +
                                        +        model: TopicModel
                                        +
                                        +        """
                                        +        super().__init__(model=model)
                                        +
                                        +    def view(
                                        +            self,
                                        +            dataset,
                                        +            method='TSNE',
                                        +            to_html=True,
                                        +            save_path='local.html',):
                                        +        """
                                        +        Parameters
                                        +        ----------
                                        +        dataset: Dataset
                                        +        method: string
                                        +            any of the methods in sklearn.manifold
                                        +        to_html: Bool
                                        +            if user wants the plot to be saved in html format
                                        +        save_path: str
                                        +            save path for the plot
                                        +
                                        +        Returns
                                        +        -------
                                        +        reduced_data: an np.array of (num_docs, dim) dimensions
                                        +            reduced dumensions of the original document embeddings
                                        +        html_div: string
                                        +            an html string containing the plotly graph
                                        +            returned only if to_html is True
                                        +
                                        +        """
                                        +        from ..cooking_machine.dataset import BaseDataset
                                        +        if not isinstance(dataset, BaseDataset):
                                        +            raise TypeError('Parameter "dataset" should derive from BaseDataset')
                                        +
                                        +        handler = getattr(clusterization, method,)
                                        +        bv = dataset.get_batch_vectorizer()
                                        +        model_data = self._model.transform(batch_vectorizer=bv).T
                                        +
                                        +        reduced_data = handler(n_components=2).fit_transform(model_data)
                                        +        data_dict = {}
                                        +        data_dict['x'] = reduced_data[:, 0]
                                        +        data_dict['y'] = reduced_data[:, 1]
                                        +        data_dict['label'] = np.argmax(model_data.values, axis=1)
                                        +        data_dict['text'] = model_data.index
                                        +        base_scheme = cl.scales['12']['qual']['Paired']
                                        +        if not to_html:
                                        +            drawing_handle = partial(iplot, show_link=False,)
                                        +            save_path = None
                                        +        else:
                                        +            drawing_handle = partial(plot, show_link=False, output_type='div')
                                        +
                                        +        html_div = drawing_handle(
                                        +            [go.Scatter(
                                        +                x=data_dict['x'],
                                        +                y=data_dict['y'],
                                        +                mode='markers',
                                        +                marker=dict(colorscale=base_scheme,
                                        +                            size=4,
                                        +                            opacity=0.6,
                                        +                            colorbar=dict(title='Topics')),
                                        +                marker_color=data_dict['label'],
                                        +                text=data_dict['text'],)],
                                        +        )
                                        +        if save_path is not None:
                                        +            with open(save_path, 'w', encoding='utf-8') as f:
                                        +                f.write(html_div)
                                        +
                                        +        return reduced_data
                                        +
                                        @@ -40,6 +134,89 @@

                                        Parameters

                                        model : TopicModel
                                         
                                        +
                                        + +Expand source code + +
                                        class DocumentClusterViewer(BaseViewer):
                                        +    """
                                        +    This viewer performs dimesionality reduction over document embeddings
                                        +    """
                                        +    def __init__(self, model):
                                        +        """
                                        +        Parameters
                                        +        ----------
                                        +
                                        +        model: TopicModel
                                        +
                                        +        """
                                        +        super().__init__(model=model)
                                        +
                                        +    def view(
                                        +            self,
                                        +            dataset,
                                        +            method='TSNE',
                                        +            to_html=True,
                                        +            save_path='local.html',):
                                        +        """
                                        +        Parameters
                                        +        ----------
                                        +        dataset: Dataset
                                        +        method: string
                                        +            any of the methods in sklearn.manifold
                                        +        to_html: Bool
                                        +            if user wants the plot to be saved in html format
                                        +        save_path: str
                                        +            save path for the plot
                                        +
                                        +        Returns
                                        +        -------
                                        +        reduced_data: an np.array of (num_docs, dim) dimensions
                                        +            reduced dumensions of the original document embeddings
                                        +        html_div: string
                                        +            an html string containing the plotly graph
                                        +            returned only if to_html is True
                                        +
                                        +        """
                                        +        from ..cooking_machine.dataset import BaseDataset
                                        +        if not isinstance(dataset, BaseDataset):
                                        +            raise TypeError('Parameter "dataset" should derive from BaseDataset')
                                        +
                                        +        handler = getattr(clusterization, method,)
                                        +        bv = dataset.get_batch_vectorizer()
                                        +        model_data = self._model.transform(batch_vectorizer=bv).T
                                        +
                                        +        reduced_data = handler(n_components=2).fit_transform(model_data)
                                        +        data_dict = {}
                                        +        data_dict['x'] = reduced_data[:, 0]
                                        +        data_dict['y'] = reduced_data[:, 1]
                                        +        data_dict['label'] = np.argmax(model_data.values, axis=1)
                                        +        data_dict['text'] = model_data.index
                                        +        base_scheme = cl.scales['12']['qual']['Paired']
                                        +        if not to_html:
                                        +            drawing_handle = partial(iplot, show_link=False,)
                                        +            save_path = None
                                        +        else:
                                        +            drawing_handle = partial(plot, show_link=False, output_type='div')
                                        +
                                        +        html_div = drawing_handle(
                                        +            [go.Scatter(
                                        +                x=data_dict['x'],
                                        +                y=data_dict['y'],
                                        +                mode='markers',
                                        +                marker=dict(colorscale=base_scheme,
                                        +                            size=4,
                                        +                            opacity=0.6,
                                        +                            colorbar=dict(title='Topics')),
                                        +                marker_color=data_dict['label'],
                                        +                text=data_dict['text'],)],
                                        +        )
                                        +        if save_path is not None:
                                        +            with open(save_path, 'w', encoding='utf-8') as f:
                                        +                f.write(html_div)
                                        +
                                        +        return reduced_data
                                        +

                                        Ancestors

                                        • BaseViewer
                                        • @@ -69,6 +246,75 @@

                                          Returns

                                          an html string containing the plotly graph returned only if to_html is True
                                          +
                                          + +Expand source code + +
                                          def view(
                                          +        self,
                                          +        dataset,
                                          +        method='TSNE',
                                          +        to_html=True,
                                          +        save_path='local.html',):
                                          +    """
                                          +    Parameters
                                          +    ----------
                                          +    dataset: Dataset
                                          +    method: string
                                          +        any of the methods in sklearn.manifold
                                          +    to_html: Bool
                                          +        if user wants the plot to be saved in html format
                                          +    save_path: str
                                          +        save path for the plot
                                          +
                                          +    Returns
                                          +    -------
                                          +    reduced_data: an np.array of (num_docs, dim) dimensions
                                          +        reduced dumensions of the original document embeddings
                                          +    html_div: string
                                          +        an html string containing the plotly graph
                                          +        returned only if to_html is True
                                          +
                                          +    """
                                          +    from ..cooking_machine.dataset import BaseDataset
                                          +    if not isinstance(dataset, BaseDataset):
                                          +        raise TypeError('Parameter "dataset" should derive from BaseDataset')
                                          +
                                          +    handler = getattr(clusterization, method,)
                                          +    bv = dataset.get_batch_vectorizer()
                                          +    model_data = self._model.transform(batch_vectorizer=bv).T
                                          +
                                          +    reduced_data = handler(n_components=2).fit_transform(model_data)
                                          +    data_dict = {}
                                          +    data_dict['x'] = reduced_data[:, 0]
                                          +    data_dict['y'] = reduced_data[:, 1]
                                          +    data_dict['label'] = np.argmax(model_data.values, axis=1)
                                          +    data_dict['text'] = model_data.index
                                          +    base_scheme = cl.scales['12']['qual']['Paired']
                                          +    if not to_html:
                                          +        drawing_handle = partial(iplot, show_link=False,)
                                          +        save_path = None
                                          +    else:
                                          +        drawing_handle = partial(plot, show_link=False, output_type='div')
                                          +
                                          +    html_div = drawing_handle(
                                          +        [go.Scatter(
                                          +            x=data_dict['x'],
                                          +            y=data_dict['y'],
                                          +            mode='markers',
                                          +            marker=dict(colorscale=base_scheme,
                                          +                        size=4,
                                          +                        opacity=0.6,
                                          +                        colorbar=dict(title='Topics')),
                                          +            marker_color=data_dict['label'],
                                          +            text=data_dict['text'],)],
                                          +    )
                                          +    if save_path is not None:
                                          +        with open(save_path, 'w', encoding='utf-8') as f:
                                          +            f.write(html_div)
                                          +
                                          +    return reduced_data
                                          +
                                          @@ -100,7 +346,9 @@

                                          + + \ No newline at end of file diff --git a/docs/viewers/index.html b/docs/viewers/index.html index 5fed17b..3a6ba22 100644 --- a/docs/viewers/index.html +++ b/docs/viewers/index.html @@ -3,12 +3,13 @@ - + topicnet.viewers API documentation - + + @@ -33,6 +34,17 @@

                                          Viewers

                                        • tokens_viewer - first edition of TopTokensViewer - Deprecated

                                        +
                                        + +Expand source code + +
                                        from .base_viewer import BaseViewer
                                        +from .spectrum import TopicSpectrumViewer
                                        +from .top_documents_viewer import TopDocumentsViewer
                                        +from .top_similar_documents_viewer import TopSimilarDocumentsViewer
                                        +from .top_tokens_viewer import TopTokensViewer
                                        +from .topic_mapping import TopicMapViewer
                                        +

                                        Sub-modules

                                        @@ -85,7 +97,7 @@

                                        Sub-modules

                                        + + \ No newline at end of file diff --git a/docs/viewers/initial_doc_to_topic_viewer.html b/docs/viewers/initial_doc_to_topic_viewer.html index ffba063..749577f 100644 --- a/docs/viewers/initial_doc_to_topic_viewer.html +++ b/docs/viewers/initial_doc_to_topic_viewer.html @@ -3,12 +3,13 @@ - + topicnet.viewers.initial_doc_to_topic_viewer API documentation - + + @@ -19,6 +20,58 @@

                                        Module topicnet.viewers.initial_doc_to_topic_viewer

                                        +
                                        + +Expand source code + +
                                        from .base_viewer import BaseViewer
                                        +
                                        +
                                        +class TopTopicsFeatures(BaseViewer):
                                        +    """ """
                                        +    def __init__(self, dataset_id, model):
                                        +        super(TopTopicsFeatures, self).__init__(model=model)
                                        +        self._dataset = model.experiment.datasets[dataset_id]
                                        +
                                        +    def view(self, document_id, topic_name=None, batch_vectorizer=None):
                                        +        """
                                        +
                                        +        Parameters
                                        +        ----------
                                        +        document_id : str
                                        +            id of document
                                        +        topic_name : str
                                        +            (Default value = None)
                                        +        batch_vectorizer : optional
                                        +            (Default value = None)
                                        +
                                        +        Returns
                                        +        -------
                                        +        result : dict
                                        +
                                        +        """
                                        +        if topic_name is None:
                                        +            topic_name = (
                                        +                self._model
                                        +                .get_theta(dataset=self._dataset)[document_id]
                                        +                .idxmax()
                                        +            )
                                        +        phi_column = self._model.get_phi()[topic_name]
                                        +        src_text = self._dataset.get_source_document(document_id)
                                        +        result = {}
                                        +        for modality in phi_column.index.levels[0]:
                                        +            result[modality] = []
                                        +            tokens_weights = phi_column.loc[modality]
                                        +            for token in src_text[modality].split():
                                        +                if token in tokens_weights.index:
                                        +                    dropped = False
                                        +                    weight = tokens_weights.loc[token]
                                        +                else:
                                        +                    dropped = True
                                        +                    weight = 0
                                        +                result[modality].append((token, dropped, weight))
                                        +        return result
                                        +
                                        @@ -35,6 +88,55 @@

                                        Classes

                                        +
                                        + +Expand source code + +
                                        class TopTopicsFeatures(BaseViewer):
                                        +    """ """
                                        +    def __init__(self, dataset_id, model):
                                        +        super(TopTopicsFeatures, self).__init__(model=model)
                                        +        self._dataset = model.experiment.datasets[dataset_id]
                                        +
                                        +    def view(self, document_id, topic_name=None, batch_vectorizer=None):
                                        +        """
                                        +
                                        +        Parameters
                                        +        ----------
                                        +        document_id : str
                                        +            id of document
                                        +        topic_name : str
                                        +            (Default value = None)
                                        +        batch_vectorizer : optional
                                        +            (Default value = None)
                                        +
                                        +        Returns
                                        +        -------
                                        +        result : dict
                                        +
                                        +        """
                                        +        if topic_name is None:
                                        +            topic_name = (
                                        +                self._model
                                        +                .get_theta(dataset=self._dataset)[document_id]
                                        +                .idxmax()
                                        +            )
                                        +        phi_column = self._model.get_phi()[topic_name]
                                        +        src_text = self._dataset.get_source_document(document_id)
                                        +        result = {}
                                        +        for modality in phi_column.index.levels[0]:
                                        +            result[modality] = []
                                        +            tokens_weights = phi_column.loc[modality]
                                        +            for token in src_text[modality].split():
                                        +                if token in tokens_weights.index:
                                        +                    dropped = False
                                        +                    weight = tokens_weights.loc[token]
                                        +                else:
                                        +                    dropped = True
                                        +                    weight = 0
                                        +                result[modality].append((token, dropped, weight))
                                        +        return result
                                        +

                                        Ancestors

                                        • BaseViewer
                                        • @@ -59,6 +161,49 @@

                                          Returns

                                          result : dict
                                           
                                          +
                                          + +Expand source code + +
                                          def view(self, document_id, topic_name=None, batch_vectorizer=None):
                                          +    """
                                          +
                                          +    Parameters
                                          +    ----------
                                          +    document_id : str
                                          +        id of document
                                          +    topic_name : str
                                          +        (Default value = None)
                                          +    batch_vectorizer : optional
                                          +        (Default value = None)
                                          +
                                          +    Returns
                                          +    -------
                                          +    result : dict
                                          +
                                          +    """
                                          +    if topic_name is None:
                                          +        topic_name = (
                                          +            self._model
                                          +            .get_theta(dataset=self._dataset)[document_id]
                                          +            .idxmax()
                                          +        )
                                          +    phi_column = self._model.get_phi()[topic_name]
                                          +    src_text = self._dataset.get_source_document(document_id)
                                          +    result = {}
                                          +    for modality in phi_column.index.levels[0]:
                                          +        result[modality] = []
                                          +        tokens_weights = phi_column.loc[modality]
                                          +        for token in src_text[modality].split():
                                          +            if token in tokens_weights.index:
                                          +                dropped = False
                                          +                weight = tokens_weights.loc[token]
                                          +            else:
                                          +                dropped = True
                                          +                weight = 0
                                          +            result[modality].append((token, dropped, weight))
                                          +    return result
                                          +
                                        @@ -90,7 +235,9 @@

                                        -

                                        Generated by pdoc 0.6.3.

                                        +

                                        Generated by pdoc 0.7.2.

                                        + + \ No newline at end of file diff --git a/docs/viewers/spectrum.html b/docs/viewers/spectrum.html index fb0a9c4..5eaf58f 100644 --- a/docs/viewers/spectrum.html +++ b/docs/viewers/spectrum.html @@ -3,14 +3,15 @@ - + topicnet.viewers.spectrum API documentation - + + @@ -30,6 +31,414 @@

                                        Module topicnet.viewers.spectrum

                                        Performs well on < 50 topics.
                                        Within a few runs with right temperature selected it can provide a solution better than the initial.

                                        +
                                        + +Expand source code + +
                                        """
                                        +A few ways to obtain "decent" solution to TSP problem
                                        +which returns a spectre of topics in our case.  
                                        +If speed is the essence I recommend to use functions providing
                                        +good initial solution. Which are, get_nearest_neighbour_init.  
                                        +If that solution is not good enough use annealing heuristic (get_annealed_spectrum).  
                                        +Another good but time-heavy option is full check with get_three_opt_path.  
                                        +Performs well on < 50 topics.  
                                        +Within a few runs with right temperature selected it can provide a
                                        +solution better than the initial.
                                        +"""  # noqa: W291
                                        +import numpy as np
                                        +import warnings
                                        +from scipy.spatial import distance
                                        +from tqdm import tqdm
                                        +from .base_viewer import BaseViewer
                                        +
                                        +
                                        +def get_nearest_neighbour_init(phi_matrix, metric='jensenshannon', start_topic=0):
                                        +    """
                                        +    Given the matrix calculates the initial path by nearest neighbour heuristic.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    phi_matrix : np.array of float
                                        +        a matrix of N topics x M tokens from the model
                                        +    metric : str
                                        +        name of a metric to compute distances (Default value = 'jensenshannon')
                                        +    start_topic : int
                                        +        an index of a topic to start and end the path with (Default value = 0)
                                        +
                                        +    Returns
                                        +    -------
                                        +    init_path : list of int
                                        +        order of initial topic distribution
                                        +
                                        +    """
                                        +    init_path = [start_topic, ]
                                        +    connection_candidates = [int(topic) for topic in np.arange(phi_matrix.shape[0])
                                        +                             if topic not in init_path]
                                        +    neighbour_vectors = phi_matrix[connection_candidates, :]
                                        +
                                        +    while len(connection_candidates) > 0:
                                        +        last_connection = phi_matrix[[init_path[-1]]]
                                        +        nearest_index = distance.cdist(last_connection, neighbour_vectors, metric=metric).argmin()
                                        +        init_path.append(connection_candidates[nearest_index])
                                        +        connection_candidates = [int(topic) for topic in np.arange(phi_matrix.shape[0])
                                        +                                 if topic not in init_path]
                                        +        neighbour_vectors = np.delete(neighbour_vectors, nearest_index, axis=0)
                                        +
                                        +    init_path.append(start_topic)
                                        +    init_path = [int(topic) for topic in init_path]
                                        +    return init_path
                                        +
                                        +
                                        +def generate_all_segments(n):
                                        +    """
                                        +    Generates all segments combinations for 3-opt swap operation.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    n : int > 5
                                        +        length of path for fixed endpoint
                                        +
                                        +    Yields
                                        +    -------
                                        +    list of int
                                        +
                                        +    """
                                        +    for i in range(n-1):
                                        +        for j in range(i + 2, n - 1):
                                        +            for k in range(j + 2, n - 1):  # + (i > 0)
                                        +                yield [i, j, k]
                                        +
                                        +
                                        +def generate_three_opt_candidates(path, sequence):
                                        +    """
                                        +    Generates all possible tour connections and filters out a trivial one.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    path : np.array of float
                                        +        square matrix of distances between all topics
                                        +    sequence : list of int
                                        +        list of indices to perform swap on
                                        +
                                        +    Yields
                                        +    ------
                                        +    list of int
                                        +        possible tour
                                        +
                                        +    """
                                        +    chunk_start = path[:sequence[0] + 1]
                                        +    chunk_one = path[sequence[0] + 1:sequence[1] + 1]
                                        +    chunk_two = path[sequence[1] + 1:sequence[2] + 1]
                                        +    chunk_end = path[sequence[2] + 1:]
                                        +
                                        +    for change_chunks in [True, False]:
                                        +        middle_chunks = [chunk_two, chunk_one] if change_chunks else [chunk_one, chunk_two]
                                        +
                                        +        for reverse_first_chunk in [True, False]:
                                        +            if reverse_first_chunk:
                                        +                first_chunk = middle_chunks[0][::-1]
                                        +            else:
                                        +                first_chunk = middle_chunks[0]
                                        +
                                        +            for reverse_second_chunk in [True, False]:
                                        +
                                        +                if reverse_second_chunk:
                                        +                    second_chunk = middle_chunks[1][::-1]
                                        +                else:
                                        +                    second_chunk = middle_chunks[1]
                                        +
                                        +                if change_chunks or reverse_first_chunk or reverse_second_chunk:
                                        +                    tour = chunk_start + first_chunk + second_chunk + chunk_end
                                        +                    yield tour
                                        +
                                        +
                                        +def make_three_opt_swap(path, distance_m, sequence, temperature=None):
                                        +    """
                                        +    Performs swap based on the selection candidates,
                                        +    allows for non-optimal solution to be accepted
                                        +    based on Boltzman distribution.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    path : list of int
                                        +        current path
                                        +    distance_m : np.array of float
                                        +        square matrix of distances between all topics
                                        +    sequence : list of int
                                        +        list of indices to perform swap on
                                        +    temperature : float
                                        +        "temperature" parameter regulates strictness of
                                        +        the new candidate choice (Default value = None)
                                        +        if None - works in a regime when only better solutions are chosen  
                                        +        This regime is used for 3-opt heuristic
                                        +
                                        +    Returns
                                        +    -------
                                        +    path : list of int
                                        +        best path after the permutation
                                        +    val : float
                                        +        a value gained after the path permutation
                                        +
                                        +    """  # noqa: W291
                                        +
                                        +    cut_connections = sum([[path[ind], path[ind + 1]] for ind in sequence], [])
                                        +    baseline = np.sum(distance_m[cut_connections[:-1], cut_connections[1:]])
                                        +
                                        +    # 6 == len(cut_connections) always
                                        +    new_connections = list(generate_three_opt_candidates(cut_connections,
                                        +                                                         generate_index_candidates(6)))
                                        +
                                        +    candidates = list(generate_three_opt_candidates(path, sequence))
                                        +    scores = [np.sum(distance_m[new[:-1], new[1:]]) - baseline for new in new_connections]
                                        +    best_score = np.min(scores)
                                        +
                                        +    if best_score < 0.0:
                                        +        path = candidates[np.argmin(scores)]
                                        +        val = best_score
                                        +    else:
                                        +        if temperature is None:
                                        +            val = 0.0
                                        +        else:
                                        +            # 1e-8 saves from division by 0
                                        +            boltzman = np.exp(- best_score / temperature)
                                        +            val = 0.0
                                        +            if np.random.rand() > boltzman:
                                        +                path = candidates[np.argmin(scores)]
                                        +                val = best_score
                                        +
                                        +    return path, val
                                        +
                                        +
                                        +def get_three_opt_path(path, distance_m, max_iter=20):
                                        +    """
                                        +    Iterative improvement based on 3 opt exchange.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    path : list of int
                                        +        path to optimize
                                        +    distance_m : np.array of float
                                        +        square matrix of distances between all topics, 
                                        +        attempt at optimizing path from the other end
                                        +    max_iter : int
                                        +        maximum iteration number (Default value = 20)
                                        +
                                        +    Returns
                                        +    -------
                                        +    path : list of int
                                        +        end optimization of the route
                                        +
                                        +    """  # noqa: W291
                                        +    count_iter = 0
                                        +    while True and count_iter <= max_iter:
                                        +        delta = 0
                                        +
                                        +        for segment in generate_all_segments(len(path)):
                                        +            path, d = make_three_opt_swap(path, distance_m, segment)
                                        +            delta += d
                                        +        count_iter += 1
                                        +        if count_iter >= max_iter:
                                        +            warnings.warn('Reached maximum iterations', UserWarning)
                                        +        if delta >= 0:
                                        +            break
                                        +
                                        +    return path
                                        +
                                        +
                                        +def generate_index_candidates(n):
                                        +    """
                                        +    Randomly chooses 3 indexes from the path.  
                                        +    Does not swap the first or the last point because they fixed.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    n : int > 5
                                        +        length of the path
                                        +
                                        +    Returns
                                        +    -------
                                        +    segment: list of int
                                        +        sorted list of candidates for 3 opt swap optimization
                                        +
                                        +    """  # noqa: W291
                                        +    segment = np.zeros(3, dtype='int')
                                        +
                                        +    first_interval = np.arange(n - 5)
                                        +    segment[0] = np.random.choice(first_interval)
                                        +
                                        +    second_interval = np.arange(segment[0] + 2, n - 3)
                                        +    segment[1] = np.random.choice(second_interval)
                                        +
                                        +    third_interval = np.arange(segment[1] + 2, n - 1)
                                        +    segment[2] = np.random.choice(third_interval, 1)
                                        +
                                        +    return segment
                                        +
                                        +
                                        +def get_annealed_spectrum(phi_matrix,
                                        +                          t_coeff,
                                        +                          start_topic=0,
                                        +                          metric='jensenshannon',
                                        +                          init_path=None,
                                        +                          max_iter=1000000,
                                        +                          early_stopping=100000,):
                                        +    """
                                        +    Returns annealed spectrum for the topics in the Phi matrix
                                        +    with default metrics being Jensen-Shannon.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    phi_matrix : np.array of float
                                        +        Phi matrix of N topics x M tokens from the model
                                        +    t_coeff : float
                                        +        coefficient that brings ambiguity to the process,
                                        +        bigger coefficient allows to jump from local minima.
                                        +    start_topic : int
                                        +        index of a topic to start and end the path with (Default value = 0)
                                        +    metric : str
                                        +        name of a metric to compute distances (Default value = 'jensenshannon')
                                        +    init_path : list of int
                                        +        initial route, contains all numbers from 0 to N-1,
                                        +        starts and ends with the same number from the given range (Default value = None)
                                        +    max_iter : int
                                        +        number of iterations for annealing (Default value = 1000000)
                                        +    early_stopping : int
                                        +        number of iterations without improvement before stop (Default value = 100000)
                                        +
                                        +    Returns
                                        +    -------
                                        +    best_path : list of int
                                        +        best path obtained during the run
                                        +    best_score : float
                                        +        length of the best path during the run
                                        +
                                        +    """  # noqa: W291
                                        +    distance_m = distance.squareform(distance.pdist(phi_matrix, metric=metric))
                                        +    np.fill_diagonal(distance_m, 10 * np.max(distance_m))
                                        +    if init_path is None:
                                        +        current_path = get_nearest_neighbour_init(phi_matrix,
                                        +                                                  metric=metric,
                                        +                                                  start_topic=start_topic)
                                        +    else:
                                        +        current_path = init_path
                                        +
                                        +    if len(current_path) < 6:
                                        +        warnings.warn('The path is too short, returning nearest neighbour solution.',
                                        +                      UserWarning)
                                        +        return current_path, np.sum(distance_m[current_path[:-1], current_path[1:]])
                                        +
                                        +    best_score = np.sum(distance_m[current_path[:-1], current_path[1:]])
                                        +    best_path = current_path
                                        +    running_score = best_score
                                        +
                                        +    no_progress_steps = 0
                                        +    for i in tqdm(range(max_iter), total=max_iter, leave=False):
                                        +        temperature_iter = t_coeff * (max_iter / (i + 1))
                                        +        sequence = generate_index_candidates(len(current_path))
                                        +        current_path, score = make_three_opt_swap(current_path,
                                        +                                                  distance_m,
                                        +                                                  sequence,
                                        +                                                  temperature=temperature_iter)
                                        +        running_score += score
                                        +
                                        +        if running_score < best_score:
                                        +            best_path = current_path
                                        +            best_score = running_score
                                        +            no_progress_steps = 0
                                        +        else:
                                        +            no_progress_steps += 1
                                        +        if no_progress_steps >= early_stopping:
                                        +            break
                                        +    return best_path, best_score
                                        +
                                        +
                                        +class TopicSpectrumViewer(BaseViewer):
                                        +    def __init__(
                                        +        self,
                                        +        model,
                                        +        t_coeff=1e5,
                                        +        start_topic=0,
                                        +        metric='jensenshannon',
                                        +        init_path=None,
                                        +        max_iter=1000000,
                                        +        early_stopping=100000,
                                        +        verbose=False,
                                        +        class_ids=None
                                        +    ):
                                        +        """
                                        +        Class providing wrap around for functions
                                        +        that allow to view a collection of topics
                                        +        in order of their similarity to each other.
                                        +
                                        +        Parameters
                                        +        ----------
                                        +        model : TopicModel
                                        +            topic model from TopicNet library
                                        +        t_coeff : float
                                        +            coefficient for annealing, value should be chosen
                                        +        start_topic : int
                                        +            number of model topic to start from
                                        +        metric : string or function
                                        +            name of the default metric implemented in scipy or function 
                                        +            that calculates metric based on the input matrix
                                        +        init_path : list of int
                                        +            initial tour that could be provided by the user
                                        +        max_iter : int
                                        +            number of iterations for annealing
                                        +        early_stopping : int
                                        +            number of iterations without improvement before stop
                                        +        verbose : boolean
                                        +            if print the resulting length of the tour
                                        +        class_ids : list of str
                                        +            parameter for model.get_phi method
                                        +            contains list of modalities to obtain from the model
                                        +            (Default value = None)
                                        +        """  # noqa: W291
                                        +        super().__init__(model=model)
                                        +        self.metric = metric
                                        +        self.start_topic = start_topic
                                        +        self.t_coeff = t_coeff
                                        +        self.init_path = init_path
                                        +        self.verbose = verbose
                                        +        self.early_stopping = early_stopping
                                        +        self.max_iter = max_iter
                                        +        self.class_ids = class_ids
                                        +
                                        +    def view(self, class_ids=None):
                                        +        """
                                        +        The class method returning ordered spectrum of
                                        +        the topics.
                                        +
                                        +        Parameters
                                        +        ----------
                                        +        class_ids : list of str
                                        +            parameter for model.get_phi method
                                        +            contains list of modalities to obtain from the model (Default value = None)
                                        +        ordered_topics : list of str
                                        +            topic names from the model ordered as spectrum
                                        +
                                        +        """  # noqa: W291
                                        +        # default get_phi returns N x T matrix while we implemented T x N
                                        +        if class_ids is None:
                                        +            class_ids = self.class_ids
                                        +        model_phi = self.model.get_phi(class_ids=class_ids).T
                                        +        spectrum, distance = get_annealed_spectrum(model_phi.values,
                                        +                                                   self.t_coeff,
                                        +                                                   metric=self.metric,
                                        +                                                   start_topic=self.start_topic,
                                        +                                                   init_path=self.init_path,
                                        +                                                   max_iter=self.max_iter,
                                        +                                                   early_stopping=self.early_stopping,)
                                        +        if self.verbose:
                                        +            print('the resulting path length: ', distance)
                                        +        ordered_topics = (
                                        +            model_phi
                                        +            .iloc[spectrum]
                                        +            .index.values
                                        +        )
                                        +        return ordered_topics
                                        +
                                        @@ -53,6 +462,29 @@

                                        Yields

                                        list of int
                                         
                                        +
                                        + +Expand source code + +
                                        def generate_all_segments(n):
                                        +    """
                                        +    Generates all segments combinations for 3-opt swap operation.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    n : int > 5
                                        +        length of path for fixed endpoint
                                        +
                                        +    Yields
                                        +    -------
                                        +    list of int
                                        +
                                        +    """
                                        +    for i in range(n-1):
                                        +        for j in range(i + 2, n - 1):
                                        +            for k in range(j + 2, n - 1):  # + (i > 0)
                                        +                yield [i, j, k]
                                        +
                                        def generate_index_candidates(n) @@ -70,6 +502,39 @@

                                        Returns

                                        segment : list of int
                                        sorted list of candidates for 3 opt swap optimization
                                        +
                                        + +Expand source code + +
                                        def generate_index_candidates(n):
                                        +    """
                                        +    Randomly chooses 3 indexes from the path.  
                                        +    Does not swap the first or the last point because they fixed.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    n : int > 5
                                        +        length of the path
                                        +
                                        +    Returns
                                        +    -------
                                        +    segment: list of int
                                        +        sorted list of candidates for 3 opt swap optimization
                                        +
                                        +    """  # noqa: W291
                                        +    segment = np.zeros(3, dtype='int')
                                        +
                                        +    first_interval = np.arange(n - 5)
                                        +    segment[0] = np.random.choice(first_interval)
                                        +
                                        +    second_interval = np.arange(segment[0] + 2, n - 3)
                                        +    segment[1] = np.random.choice(second_interval)
                                        +
                                        +    third_interval = np.arange(segment[1] + 2, n - 1)
                                        +    segment[2] = np.random.choice(third_interval, 1)
                                        +
                                        +    return segment
                                        +
                                        def generate_three_opt_candidates(path, sequence) @@ -88,6 +553,52 @@

                                        Yields

                                        list of int
                                        possible tour
                                        +
                                        + +Expand source code + +
                                        def generate_three_opt_candidates(path, sequence):
                                        +    """
                                        +    Generates all possible tour connections and filters out a trivial one.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    path : np.array of float
                                        +        square matrix of distances between all topics
                                        +    sequence : list of int
                                        +        list of indices to perform swap on
                                        +
                                        +    Yields
                                        +    ------
                                        +    list of int
                                        +        possible tour
                                        +
                                        +    """
                                        +    chunk_start = path[:sequence[0] + 1]
                                        +    chunk_one = path[sequence[0] + 1:sequence[1] + 1]
                                        +    chunk_two = path[sequence[1] + 1:sequence[2] + 1]
                                        +    chunk_end = path[sequence[2] + 1:]
                                        +
                                        +    for change_chunks in [True, False]:
                                        +        middle_chunks = [chunk_two, chunk_one] if change_chunks else [chunk_one, chunk_two]
                                        +
                                        +        for reverse_first_chunk in [True, False]:
                                        +            if reverse_first_chunk:
                                        +                first_chunk = middle_chunks[0][::-1]
                                        +            else:
                                        +                first_chunk = middle_chunks[0]
                                        +
                                        +            for reverse_second_chunk in [True, False]:
                                        +
                                        +                if reverse_second_chunk:
                                        +                    second_chunk = middle_chunks[1][::-1]
                                        +                else:
                                        +                    second_chunk = middle_chunks[1]
                                        +
                                        +                if change_chunks or reverse_first_chunk or reverse_second_chunk:
                                        +                    tour = chunk_start + first_chunk + second_chunk + chunk_end
                                        +                    yield tour
                                        +
                                        def get_annealed_spectrum(phi_matrix, t_coeff, start_topic=0, metric='jensenshannon', init_path=None, max_iter=1000000, early_stopping=100000) @@ -121,6 +632,86 @@

                                        Returns

                                        best_score : float
                                        length of the best path during the run
                                        +
                                        + +Expand source code + +
                                        def get_annealed_spectrum(phi_matrix,
                                        +                          t_coeff,
                                        +                          start_topic=0,
                                        +                          metric='jensenshannon',
                                        +                          init_path=None,
                                        +                          max_iter=1000000,
                                        +                          early_stopping=100000,):
                                        +    """
                                        +    Returns annealed spectrum for the topics in the Phi matrix
                                        +    with default metrics being Jensen-Shannon.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    phi_matrix : np.array of float
                                        +        Phi matrix of N topics x M tokens from the model
                                        +    t_coeff : float
                                        +        coefficient that brings ambiguity to the process,
                                        +        bigger coefficient allows to jump from local minima.
                                        +    start_topic : int
                                        +        index of a topic to start and end the path with (Default value = 0)
                                        +    metric : str
                                        +        name of a metric to compute distances (Default value = 'jensenshannon')
                                        +    init_path : list of int
                                        +        initial route, contains all numbers from 0 to N-1,
                                        +        starts and ends with the same number from the given range (Default value = None)
                                        +    max_iter : int
                                        +        number of iterations for annealing (Default value = 1000000)
                                        +    early_stopping : int
                                        +        number of iterations without improvement before stop (Default value = 100000)
                                        +
                                        +    Returns
                                        +    -------
                                        +    best_path : list of int
                                        +        best path obtained during the run
                                        +    best_score : float
                                        +        length of the best path during the run
                                        +
                                        +    """  # noqa: W291
                                        +    distance_m = distance.squareform(distance.pdist(phi_matrix, metric=metric))
                                        +    np.fill_diagonal(distance_m, 10 * np.max(distance_m))
                                        +    if init_path is None:
                                        +        current_path = get_nearest_neighbour_init(phi_matrix,
                                        +                                                  metric=metric,
                                        +                                                  start_topic=start_topic)
                                        +    else:
                                        +        current_path = init_path
                                        +
                                        +    if len(current_path) < 6:
                                        +        warnings.warn('The path is too short, returning nearest neighbour solution.',
                                        +                      UserWarning)
                                        +        return current_path, np.sum(distance_m[current_path[:-1], current_path[1:]])
                                        +
                                        +    best_score = np.sum(distance_m[current_path[:-1], current_path[1:]])
                                        +    best_path = current_path
                                        +    running_score = best_score
                                        +
                                        +    no_progress_steps = 0
                                        +    for i in tqdm(range(max_iter), total=max_iter, leave=False):
                                        +        temperature_iter = t_coeff * (max_iter / (i + 1))
                                        +        sequence = generate_index_candidates(len(current_path))
                                        +        current_path, score = make_three_opt_swap(current_path,
                                        +                                                  distance_m,
                                        +                                                  sequence,
                                        +                                                  temperature=temperature_iter)
                                        +        running_score += score
                                        +
                                        +        if running_score < best_score:
                                        +            best_path = current_path
                                        +            best_score = running_score
                                        +            no_progress_steps = 0
                                        +        else:
                                        +            no_progress_steps += 1
                                        +        if no_progress_steps >= early_stopping:
                                        +            break
                                        +    return best_path, best_score
                                        +
                                        def get_nearest_neighbour_init(phi_matrix, metric='jensenshannon', start_topic=0) @@ -141,6 +732,46 @@

                                        Returns

                                        init_path : list of int
                                        order of initial topic distribution
                                        +
                                        + +Expand source code + +
                                        def get_nearest_neighbour_init(phi_matrix, metric='jensenshannon', start_topic=0):
                                        +    """
                                        +    Given the matrix calculates the initial path by nearest neighbour heuristic.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    phi_matrix : np.array of float
                                        +        a matrix of N topics x M tokens from the model
                                        +    metric : str
                                        +        name of a metric to compute distances (Default value = 'jensenshannon')
                                        +    start_topic : int
                                        +        an index of a topic to start and end the path with (Default value = 0)
                                        +
                                        +    Returns
                                        +    -------
                                        +    init_path : list of int
                                        +        order of initial topic distribution
                                        +
                                        +    """
                                        +    init_path = [start_topic, ]
                                        +    connection_candidates = [int(topic) for topic in np.arange(phi_matrix.shape[0])
                                        +                             if topic not in init_path]
                                        +    neighbour_vectors = phi_matrix[connection_candidates, :]
                                        +
                                        +    while len(connection_candidates) > 0:
                                        +        last_connection = phi_matrix[[init_path[-1]]]
                                        +        nearest_index = distance.cdist(last_connection, neighbour_vectors, metric=metric).argmin()
                                        +        init_path.append(connection_candidates[nearest_index])
                                        +        connection_candidates = [int(topic) for topic in np.arange(phi_matrix.shape[0])
                                        +                                 if topic not in init_path]
                                        +        neighbour_vectors = np.delete(neighbour_vectors, nearest_index, axis=0)
                                        +
                                        +    init_path.append(start_topic)
                                        +    init_path = [int(topic) for topic in init_path]
                                        +    return init_path
                                        +
                                        def get_three_opt_path(path, distance_m, max_iter=20) @@ -162,6 +793,45 @@

                                        Returns

                                        path : list of int
                                        end optimization of the route
                                        +
                                        + +Expand source code + +
                                        def get_three_opt_path(path, distance_m, max_iter=20):
                                        +    """
                                        +    Iterative improvement based on 3 opt exchange.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    path : list of int
                                        +        path to optimize
                                        +    distance_m : np.array of float
                                        +        square matrix of distances between all topics, 
                                        +        attempt at optimizing path from the other end
                                        +    max_iter : int
                                        +        maximum iteration number (Default value = 20)
                                        +
                                        +    Returns
                                        +    -------
                                        +    path : list of int
                                        +        end optimization of the route
                                        +
                                        +    """  # noqa: W291
                                        +    count_iter = 0
                                        +    while True and count_iter <= max_iter:
                                        +        delta = 0
                                        +
                                        +        for segment in generate_all_segments(len(path)):
                                        +            path, d = make_three_opt_swap(path, distance_m, segment)
                                        +            delta += d
                                        +        count_iter += 1
                                        +        if count_iter >= max_iter:
                                        +            warnings.warn('Reached maximum iterations', UserWarning)
                                        +        if delta >= 0:
                                        +            break
                                        +
                                        +    return path
                                        +
                                        def make_three_opt_swap(path, distance_m, sequence, temperature=None) @@ -191,6 +861,66 @@

                                        Returns

                                        val : float
                                        a value gained after the path permutation
                                        +
                                        + +Expand source code + +
                                        def make_three_opt_swap(path, distance_m, sequence, temperature=None):
                                        +    """
                                        +    Performs swap based on the selection candidates,
                                        +    allows for non-optimal solution to be accepted
                                        +    based on Boltzman distribution.
                                        +
                                        +    Parameters
                                        +    ----------
                                        +    path : list of int
                                        +        current path
                                        +    distance_m : np.array of float
                                        +        square matrix of distances between all topics
                                        +    sequence : list of int
                                        +        list of indices to perform swap on
                                        +    temperature : float
                                        +        "temperature" parameter regulates strictness of
                                        +        the new candidate choice (Default value = None)
                                        +        if None - works in a regime when only better solutions are chosen  
                                        +        This regime is used for 3-opt heuristic
                                        +
                                        +    Returns
                                        +    -------
                                        +    path : list of int
                                        +        best path after the permutation
                                        +    val : float
                                        +        a value gained after the path permutation
                                        +
                                        +    """  # noqa: W291
                                        +
                                        +    cut_connections = sum([[path[ind], path[ind + 1]] for ind in sequence], [])
                                        +    baseline = np.sum(distance_m[cut_connections[:-1], cut_connections[1:]])
                                        +
                                        +    # 6 == len(cut_connections) always
                                        +    new_connections = list(generate_three_opt_candidates(cut_connections,
                                        +                                                         generate_index_candidates(6)))
                                        +
                                        +    candidates = list(generate_three_opt_candidates(path, sequence))
                                        +    scores = [np.sum(distance_m[new[:-1], new[1:]]) - baseline for new in new_connections]
                                        +    best_score = np.min(scores)
                                        +
                                        +    if best_score < 0.0:
                                        +        path = candidates[np.argmin(scores)]
                                        +        val = best_score
                                        +    else:
                                        +        if temperature is None:
                                        +            val = 0.0
                                        +        else:
                                        +            # 1e-8 saves from division by 0
                                        +            boltzman = np.exp(- best_score / temperature)
                                        +            val = 0.0
                                        +            if np.random.rand() > boltzman:
                                        +                path = candidates[np.argmin(scores)]
                                        +                val = best_score
                                        +
                                        +    return path, val
                                        +
                                        @@ -229,6 +959,96 @@

                                        Parameters

                                        contains list of modalities to obtain from the model (Default value = None) +
                                        + +Expand source code + +
                                        class TopicSpectrumViewer(BaseViewer):
                                        +    def __init__(
                                        +        self,
                                        +        model,
                                        +        t_coeff=1e5,
                                        +        start_topic=0,
                                        +        metric='jensenshannon',
                                        +        init_path=None,
                                        +        max_iter=1000000,
                                        +        early_stopping=100000,
                                        +        verbose=False,
                                        +        class_ids=None
                                        +    ):
                                        +        """
                                        +        Class providing wrap around for functions
                                        +        that allow to view a collection of topics
                                        +        in order of their similarity to each other.
                                        +
                                        +        Parameters
                                        +        ----------
                                        +        model : TopicModel
                                        +            topic model from TopicNet library
                                        +        t_coeff : float
                                        +            coefficient for annealing, value should be chosen
                                        +        start_topic : int
                                        +            number of model topic to start from
                                        +        metric : string or function
                                        +            name of the default metric implemented in scipy or function 
                                        +            that calculates metric based on the input matrix
                                        +        init_path : list of int
                                        +            initial tour that could be provided by the user
                                        +        max_iter : int
                                        +            number of iterations for annealing
                                        +        early_stopping : int
                                        +            number of iterations without improvement before stop
                                        +        verbose : boolean
                                        +            if print the resulting length of the tour
                                        +        class_ids : list of str
                                        +            parameter for model.get_phi method
                                        +            contains list of modalities to obtain from the model
                                        +            (Default value = None)
                                        +        """  # noqa: W291
                                        +        super().__init__(model=model)
                                        +        self.metric = metric
                                        +        self.start_topic = start_topic
                                        +        self.t_coeff = t_coeff
                                        +        self.init_path = init_path
                                        +        self.verbose = verbose
                                        +        self.early_stopping = early_stopping
                                        +        self.max_iter = max_iter
                                        +        self.class_ids = class_ids
                                        +
                                        +    def view(self, class_ids=None):
                                        +        """
                                        +        The class method returning ordered spectrum of
                                        +        the topics.
                                        +
                                        +        Parameters
                                        +        ----------
                                        +        class_ids : list of str
                                        +            parameter for model.get_phi method
                                        +            contains list of modalities to obtain from the model (Default value = None)
                                        +        ordered_topics : list of str
                                        +            topic names from the model ordered as spectrum
                                        +
                                        +        """  # noqa: W291
                                        +        # default get_phi returns N x T matrix while we implemented T x N
                                        +        if class_ids is None:
                                        +            class_ids = self.class_ids
                                        +        model_phi = self.model.get_phi(class_ids=class_ids).T
                                        +        spectrum, distance = get_annealed_spectrum(model_phi.values,
                                        +                                                   self.t_coeff,
                                        +                                                   metric=self.metric,
                                        +                                                   start_topic=self.start_topic,
                                        +                                                   init_path=self.init_path,
                                        +                                                   max_iter=self.max_iter,
                                        +                                                   early_stopping=self.early_stopping,)
                                        +        if self.verbose:
                                        +            print('the resulting path length: ', distance)
                                        +        ordered_topics = (
                                        +            model_phi
                                        +            .iloc[spectrum]
                                        +            .index.values
                                        +        )
                                        +        return ordered_topics
                                        +

                                        Ancestors

                                        • BaseViewer
                                        • @@ -249,6 +1069,44 @@

                                          Parameters

                                          ordered_topics : list of str
                                          topic names from the model ordered as spectrum
                                          +
                                          + +Expand source code + +
                                          def view(self, class_ids=None):
                                          +    """
                                          +    The class method returning ordered spectrum of
                                          +    the topics.
                                          +
                                          +    Parameters
                                          +    ----------
                                          +    class_ids : list of str
                                          +        parameter for model.get_phi method
                                          +        contains list of modalities to obtain from the model (Default value = None)
                                          +    ordered_topics : list of str
                                          +        topic names from the model ordered as spectrum
                                          +
                                          +    """  # noqa: W291
                                          +    # default get_phi returns N x T matrix while we implemented T x N
                                          +    if class_ids is None:
                                          +        class_ids = self.class_ids
                                          +    model_phi = self.model.get_phi(class_ids=class_ids).T
                                          +    spectrum, distance = get_annealed_spectrum(model_phi.values,
                                          +                                               self.t_coeff,
                                          +                                               metric=self.metric,
                                          +                                               start_topic=self.start_topic,
                                          +                                               init_path=self.init_path,
                                          +                                               max_iter=self.max_iter,
                                          +                                               early_stopping=self.early_stopping,)
                                          +    if self.verbose:
                                          +        print('the resulting path length: ', distance)
                                          +    ordered_topics = (
                                          +        model_phi
                                          +        .iloc[spectrum]
                                          +        .index.values
                                          +    )
                                          +    return ordered_topics
                                          +
                                          @@ -291,7 +1149,9 @@

                                          -

                                          Generated by pdoc 0.6.3.

                                          +

                                          Generated by pdoc 0.7.2.

                                          + + \ No newline at end of file diff --git a/docs/viewers/top_documents_viewer.html b/docs/viewers/top_documents_viewer.html index a0764ee..e941d7a 100644 --- a/docs/viewers/top_documents_viewer.html +++ b/docs/viewers/top_documents_viewer.html @@ -3,12 +3,13 @@ - + topicnet.viewers.top_documents_viewer API documentation - + + @@ -19,6 +20,202 @@

                                          Module topicnet.viewers.top_documents_viewer

                                          +
                                          + +Expand source code + +
                                          import numpy as np
                                          +
                                          +from collections import defaultdict
                                          +from .base_viewer import BaseViewer
                                          +
                                          +
                                          +def transform_cluster_objects_list_to_dict(object_clusters):
                                          +    """
                                          +    Transforms list of object clusters to dict.
                                          +
                                          +    Parameters
                                          +    ----------
                                          +    object_clusters : list
                                          +        ith element of list is cluster of ith object
                                          +
                                          +    Returns
                                          +    -------
                                          +    clusters : dict
                                          +        dict, where key is clusterlabel (int), value is cluster objects (list)
                                          +
                                          +    """
                                          +    clusters = defaultdict(list)
                                          +
                                          +    for object_label, cluster_label in enumerate(object_clusters):
                                          +        clusters[cluster_label].append(object_label)
                                          +
                                          +    clusters = dict(clusters)
                                          +
                                          +    return clusters
                                          +
                                          +
                                          +def predict_cluster_by_precomputed_distances(precomputed_distances):
                                          +    """
                                          +    Predict a cluster for each object with precomputed distances.
                                          +
                                          +    Parameters
                                          +    ----------
                                          +    precomputed_distances : np.array
                                          +        array of shape (n_topics, n_objects) - distances from clusters to objects
                                          +
                                          +    Returns
                                          +    -------
                                          +    np.array
                                          +        array of length X.shape[0], each element is cluster of ith object
                                          +
                                          +    """
                                          +    return precomputed_distances.T.argmin(axis=1).ravel()
                                          +
                                          +
                                          +def compute_cluster_top_objects_by_distance(precomputed_distances,
                                          +                                            max_top_number=10,
                                          +                                            object_clusters=None):
                                          +    """
                                          +    Compute the most representative objects for each cluster
                                          +    using the precomputed_distances.
                                          +
                                          +    Parameters
                                          +    ----------
                                          +    precomputed_distances : np.array
                                          +        array of shape (n_topics, n_objects) -
                                          +        a matrix of pairwise distances: distance from ith cluster centroid to the jth object
                                          +    max_top_number : int
                                          +        maximum number of top objects of cluster (resulting number can be less than it) 
                                          +        (Default value = 10)
                                          +    object_clusters : np,array
                                          +        array of shape n_objects - precomputed clusters for objects
                                          +
                                          +    Returns
                                          +    -------
                                          +    clusters_top_objects : list of list of indexes 
                                          +        (Default value = None)
                                          +    """  # noqa: W291
                                          +    # prediction for objects
                                          +    if object_clusters is None:
                                          +        object_clusters = predict_cluster_by_precomputed_distances(precomputed_distances)
                                          +    # transformation from list to dict
                                          +    clusters = transform_cluster_objects_list_to_dict(object_clusters)
                                          +    n_topics = precomputed_distances.shape[0]
                                          +
                                          +    clusters_top_objects = []
                                          +    for cluster_label in range(n_topics):
                                          +        # cluster is empty
                                          +        if cluster_label not in clusters.keys():
                                          +            clusters_top_objects.append([])
                                          +            continue
                                          +        cluster_objects = np.array(clusters[cluster_label])
                                          +        cluster_objects_to_center_distances = (
                                          +            precomputed_distances[cluster_label][cluster_objects]
                                          +        )
                                          +        if max_top_number >= cluster_objects.shape[0]:
                                          +            # cluster is too small; grab all objects
                                          +            indexes_of_top_objects = np.arange(0, cluster_objects.shape[0])
                                          +        else:
                                          +            # filter by distance with partition
                                          +            indexes_of_top_objects = np.argpartition(
                                          +                cluster_objects_to_center_distances,
                                          +                kth=max_top_number
                                          +            )[:max_top_number]
                                          +
                                          +        distances_of_top_objects = cluster_objects_to_center_distances[indexes_of_top_objects]
                                          +        top_objects = cluster_objects[indexes_of_top_objects]
                                          +
                                          +        # sorted partitioned array
                                          +        indexes_of_top_objects_sorted_by_distance = np.argsort(distances_of_top_objects)
                                          +        sorted_top_objects = top_objects[indexes_of_top_objects_sorted_by_distance]
                                          +
                                          +        clusters_top_objects.append(sorted_top_objects.tolist())
                                          +
                                          +    return clusters_top_objects
                                          +
                                          +
                                          +class TopDocumentsViewer(BaseViewer):
                                          +    """ """
                                          +    def __init__(self,
                                          +                 model,
                                          +                 dataset=None,
                                          +                 precomputed_distances=None,
                                          +                 object_clusters=None,
                                          +                 max_top_number=10):
                                          +        """
                                          +        The class provide information about
                                          +        top documents for the model topics
                                          +        from some collection.
                                          +
                                          +        Parameters
                                          +        ----------
                                          +        model : TopicModel
                                          +            a class of topic model
                                          +        dataset : Dataset
                                          +            a class that stores information about the collection
                                          +        precomputed_distances :  np.array
                                          +            array of shape (n_topics, n_objects) -
                                          +            an optional matrix of pairwise distances:
                                          +            distance from ith cluster centroid to the jth object
                                          +        object_clusters : list of int
                                          +            an optional array of topic number labels
                                          +            for each document from the collection
                                          +            ith element of list is cluster of ith object
                                          +        max_top_number : int
                                          +            number of top documents to provide for each cluster
                                          +
                                          +        """
                                          +        super().__init__(model=model)
                                          +        self.precomputed_distances = precomputed_distances
                                          +        self.object_clusters = object_clusters
                                          +        self._dataset = dataset
                                          +        self.max_top_number = max_top_number
                                          +
                                          +    def view(self, current_num_top_doc=None):
                                          +        """
                                          +        Returns list of tuples (token,score) for
                                          +        each topic in the model.
                                          +
                                          +        Parameters
                                          +        ----------
                                          +        current_num_top_doc : int
                                          +            number of top documents to provide for
                                          +            each cluster (Default value = None)
                                          +
                                          +        Returns
                                          +        -------
                                          +        all_cluster_top_titles: list of list
                                          +            returns list for each topic of the model list
                                          +            contains document_ids of top documents for that topic
                                          +
                                          +        """
                                          +        if current_num_top_doc is None:
                                          +            current_num_top_doc = self.max_top_number
                                          +
                                          +        theta = self.model.get_theta(dataset=self._dataset)
                                          +        document_ids = theta.columns.values
                                          +        if self.precomputed_distances is None:
                                          +            precomputed_distances = 1.0 - theta.values
                                          +        else:
                                          +            precomputed_distances = self.precomputed_distances
                                          +        if self.object_clusters is not None:
                                          +            num_clusters, num_documents = precomputed_distances.shape
                                          +            if len(self.object_clusters) != num_documents:
                                          +                raise ValueError('number of topics differ from number of labels')
                                          +            if not set(range(num_clusters)) >= set(self.object_clusters):
                                          +                raise ValueError('provided clusters are not in 0 to num_clusters - 1 range')
                                          +        all_cluster_top_indexes = compute_cluster_top_objects_by_distance(
                                          +            precomputed_distances,
                                          +            max_top_number=current_num_top_doc,
                                          +            object_clusters=self.object_clusters
                                          +        )
                                          +
                                          +        all_cluster_top_titles = list()
                                          +        for cluster_top in all_cluster_top_indexes:
                                          +            all_cluster_top_titles += [list(document_ids[cluster_top])]
                                          +        return all_cluster_top_titles
                                          +
                                          @@ -49,6 +246,71 @@

                                          Returns

                                          clusters_top_objects : list of list of indexes
                                          (Default value = None)
                                          +
                                          + +Expand source code + +
                                          def compute_cluster_top_objects_by_distance(precomputed_distances,
                                          +                                            max_top_number=10,
                                          +                                            object_clusters=None):
                                          +    """
                                          +    Compute the most representative objects for each cluster
                                          +    using the precomputed_distances.
                                          +
                                          +    Parameters
                                          +    ----------
                                          +    precomputed_distances : np.array
                                          +        array of shape (n_topics, n_objects) -
                                          +        a matrix of pairwise distances: distance from ith cluster centroid to the jth object
                                          +    max_top_number : int
                                          +        maximum number of top objects of cluster (resulting number can be less than it) 
                                          +        (Default value = 10)
                                          +    object_clusters : np,array
                                          +        array of shape n_objects - precomputed clusters for objects
                                          +
                                          +    Returns
                                          +    -------
                                          +    clusters_top_objects : list of list of indexes 
                                          +        (Default value = None)
                                          +    """  # noqa: W291
                                          +    # prediction for objects
                                          +    if object_clusters is None:
                                          +        object_clusters = predict_cluster_by_precomputed_distances(precomputed_distances)
                                          +    # transformation from list to dict
                                          +    clusters = transform_cluster_objects_list_to_dict(object_clusters)
                                          +    n_topics = precomputed_distances.shape[0]
                                          +
                                          +    clusters_top_objects = []
                                          +    for cluster_label in range(n_topics):
                                          +        # cluster is empty
                                          +        if cluster_label not in clusters.keys():
                                          +            clusters_top_objects.append([])
                                          +            continue
                                          +        cluster_objects = np.array(clusters[cluster_label])
                                          +        cluster_objects_to_center_distances = (
                                          +            precomputed_distances[cluster_label][cluster_objects]
                                          +        )
                                          +        if max_top_number >= cluster_objects.shape[0]:
                                          +            # cluster is too small; grab all objects
                                          +            indexes_of_top_objects = np.arange(0, cluster_objects.shape[0])
                                          +        else:
                                          +            # filter by distance with partition
                                          +            indexes_of_top_objects = np.argpartition(
                                          +                cluster_objects_to_center_distances,
                                          +                kth=max_top_number
                                          +            )[:max_top_number]
                                          +
                                          +        distances_of_top_objects = cluster_objects_to_center_distances[indexes_of_top_objects]
                                          +        top_objects = cluster_objects[indexes_of_top_objects]
                                          +
                                          +        # sorted partitioned array
                                          +        indexes_of_top_objects_sorted_by_distance = np.argsort(distances_of_top_objects)
                                          +        sorted_top_objects = top_objects[indexes_of_top_objects_sorted_by_distance]
                                          +
                                          +        clusters_top_objects.append(sorted_top_objects.tolist())
                                          +
                                          +    return clusters_top_objects
                                          +
                                          def predict_cluster_by_precomputed_distances(precomputed_distances) @@ -65,6 +327,27 @@

                                          Returns

                                          np.array
                                          array of length X.shape[0], each element is cluster of ith object
                                          +
                                          + +Expand source code + +
                                          def predict_cluster_by_precomputed_distances(precomputed_distances):
                                          +    """
                                          +    Predict a cluster for each object with precomputed distances.
                                          +
                                          +    Parameters
                                          +    ----------
                                          +    precomputed_distances : np.array
                                          +        array of shape (n_topics, n_objects) - distances from clusters to objects
                                          +
                                          +    Returns
                                          +    -------
                                          +    np.array
                                          +        array of length X.shape[0], each element is cluster of ith object
                                          +
                                          +    """
                                          +    return precomputed_distances.T.argmin(axis=1).ravel()
                                          +
                                          def transform_cluster_objects_list_to_dict(object_clusters) @@ -81,6 +364,34 @@

                                          Returns

                                          clusters : dict
                                          dict, where key is clusterlabel (int), value is cluster objects (list)
                                          +
                                          + +Expand source code + +
                                          def transform_cluster_objects_list_to_dict(object_clusters):
                                          +    """
                                          +    Transforms list of object clusters to dict.
                                          +
                                          +    Parameters
                                          +    ----------
                                          +    object_clusters : list
                                          +        ith element of list is cluster of ith object
                                          +
                                          +    Returns
                                          +    -------
                                          +    clusters : dict
                                          +        dict, where key is clusterlabel (int), value is cluster objects (list)
                                          +
                                          +    """
                                          +    clusters = defaultdict(list)
                                          +
                                          +    for object_label, cluster_label in enumerate(object_clusters):
                                          +        clusters[cluster_label].append(object_label)
                                          +
                                          +    clusters = dict(clusters)
                                          +
                                          +    return clusters
                                          +
                                          @@ -112,6 +423,91 @@

                                          Parameters

                                          max_top_number : int
                                          number of top documents to provide for each cluster
                                          +
                                          + +Expand source code + +
                                          class TopDocumentsViewer(BaseViewer):
                                          +    """ """
                                          +    def __init__(self,
                                          +                 model,
                                          +                 dataset=None,
                                          +                 precomputed_distances=None,
                                          +                 object_clusters=None,
                                          +                 max_top_number=10):
                                          +        """
                                          +        The class provide information about
                                          +        top documents for the model topics
                                          +        from some collection.
                                          +
                                          +        Parameters
                                          +        ----------
                                          +        model : TopicModel
                                          +            a class of topic model
                                          +        dataset : Dataset
                                          +            a class that stores information about the collection
                                          +        precomputed_distances :  np.array
                                          +            array of shape (n_topics, n_objects) -
                                          +            an optional matrix of pairwise distances:
                                          +            distance from ith cluster centroid to the jth object
                                          +        object_clusters : list of int
                                          +            an optional array of topic number labels
                                          +            for each document from the collection
                                          +            ith element of list is cluster of ith object
                                          +        max_top_number : int
                                          +            number of top documents to provide for each cluster
                                          +
                                          +        """
                                          +        super().__init__(model=model)
                                          +        self.precomputed_distances = precomputed_distances
                                          +        self.object_clusters = object_clusters
                                          +        self._dataset = dataset
                                          +        self.max_top_number = max_top_number
                                          +
                                          +    def view(self, current_num_top_doc=None):
                                          +        """
                                          +        Returns list of tuples (token,score) for
                                          +        each topic in the model.
                                          +
                                          +        Parameters
                                          +        ----------
                                          +        current_num_top_doc : int
                                          +            number of top documents to provide for
                                          +            each cluster (Default value = None)
                                          +
                                          +        Returns
                                          +        -------
                                          +        all_cluster_top_titles: list of list
                                          +            returns list for each topic of the model list
                                          +            contains document_ids of top documents for that topic
                                          +
                                          +        """
                                          +        if current_num_top_doc is None:
                                          +            current_num_top_doc = self.max_top_number
                                          +
                                          +        theta = self.model.get_theta(dataset=self._dataset)
                                          +        document_ids = theta.columns.values
                                          +        if self.precomputed_distances is None:
                                          +            precomputed_distances = 1.0 - theta.values
                                          +        else:
                                          +            precomputed_distances = self.precomputed_distances
                                          +        if self.object_clusters is not None:
                                          +            num_clusters, num_documents = precomputed_distances.shape
                                          +            if len(self.object_clusters) != num_documents:
                                          +                raise ValueError('number of topics differ from number of labels')
                                          +            if not set(range(num_clusters)) >= set(self.object_clusters):
                                          +                raise ValueError('provided clusters are not in 0 to num_clusters - 1 range')
                                          +        all_cluster_top_indexes = compute_cluster_top_objects_by_distance(
                                          +            precomputed_distances,
                                          +            max_top_number=current_num_top_doc,
                                          +            object_clusters=self.object_clusters
                                          +        )
                                          +
                                          +        all_cluster_top_titles = list()
                                          +        for cluster_top in all_cluster_top_indexes:
                                          +            all_cluster_top_titles += [list(document_ids[cluster_top])]
                                          +        return all_cluster_top_titles
                                          +

                                          Ancestors

                                          • BaseViewer
                                          • @@ -136,6 +532,54 @@

                                            Returns

                                            returns list for each topic of the model list contains document_ids of top documents for that topic
                                            +
                                            + +Expand source code + +
                                            def view(self, current_num_top_doc=None):
                                            +    """
                                            +    Returns list of tuples (token,score) for
                                            +    each topic in the model.
                                            +
                                            +    Parameters
                                            +    ----------
                                            +    current_num_top_doc : int
                                            +        number of top documents to provide for
                                            +        each cluster (Default value = None)
                                            +
                                            +    Returns
                                            +    -------
                                            +    all_cluster_top_titles: list of list
                                            +        returns list for each topic of the model list
                                            +        contains document_ids of top documents for that topic
                                            +
                                            +    """
                                            +    if current_num_top_doc is None:
                                            +        current_num_top_doc = self.max_top_number
                                            +
                                            +    theta = self.model.get_theta(dataset=self._dataset)
                                            +    document_ids = theta.columns.values
                                            +    if self.precomputed_distances is None:
                                            +        precomputed_distances = 1.0 - theta.values
                                            +    else:
                                            +        precomputed_distances = self.precomputed_distances
                                            +    if self.object_clusters is not None:
                                            +        num_clusters, num_documents = precomputed_distances.shape
                                            +        if len(self.object_clusters) != num_documents:
                                            +            raise ValueError('number of topics differ from number of labels')
                                            +        if not set(range(num_clusters)) >= set(self.object_clusters):
                                            +            raise ValueError('provided clusters are not in 0 to num_clusters - 1 range')
                                            +    all_cluster_top_indexes = compute_cluster_top_objects_by_distance(
                                            +        precomputed_distances,
                                            +        max_top_number=current_num_top_doc,
                                            +        object_clusters=self.object_clusters
                                            +    )
                                            +
                                            +    all_cluster_top_titles = list()
                                            +    for cluster_top in all_cluster_top_indexes:
                                            +        all_cluster_top_titles += [list(document_ids[cluster_top])]
                                            +    return all_cluster_top_titles
                                            +
                                            @@ -174,7 +618,9 @@

                                            + + \ No newline at end of file diff --git a/docs/viewers/top_similar_documents_viewer.html b/docs/viewers/top_similar_documents_viewer.html index afe663d..3a61c80 100644 --- a/docs/viewers/top_similar_documents_viewer.html +++ b/docs/viewers/top_similar_documents_viewer.html @@ -3,12 +3,13 @@ - + topicnet.viewers.top_similar_documents_viewer API documentation - + + @@ -19,6 +20,456 @@

                                            Module topicnet.viewers.top_similar_documents_viewer

                                            +
                                            + +Expand source code + +
                                            from collections import defaultdict
                                            +import numpy as np
                                            +from scipy.spatial.distance import cdist as sp_cdist
                                            +import warnings
                                            +
                                            +from .base_viewer import BaseViewer
                                            +from ..cooking_machine import BaseDataset
                                            +
                                            +
                                            +# If change, also modify docstring for view()
                                            +METRICS_NAMES = [
                                            +    'jensenshannon', 'euclidean', 'cosine', 'correlation'
                                            +]
                                            +
                                            +
                                            +ERROR_DUPLICATE_DOCUMENTS_IDS = """\
                                            +Some documents' IDs in dataset are the same: \
                                            +number of unique IDs and total number of documents not equal: "{0}" vs. "{1}". \
                                            +Need unique IDs in order to identify documents.\
                                            +"""
                                            +
                                            +ERROR_TYPE_METRIC = """\
                                            +Parameter "metric" should be "str" or "callable". \
                                            +The argument given is of type "{0}"\
                                            +"""
                                            +
                                            +ERROR_TYPE_NUM_TOP_SIMILAR = """\
                                            +Parameter "num_top_similar" should be "int". \
                                            +The argument given is of type "{0}"\
                                            +"""
                                            +
                                            +ERROR_TYPE_KEEP_SIMILAR_BY_WORDS = """\
                                            +Parameter "keep_similar_by_words" should be "bool". \
                                            +The argument given is of type "{0}"\
                                            +"""
                                            +
                                            +WARNING_UNDEFINED_FREQUENCY_IN_VW = """\
                                            +Some words in Vowpal Wabbit text were skipped \
                                            +because they didn\'t have frequency after colon sign ":"\
                                            +"""
                                            +
                                            +WARNING_FEWER_THAN_REQUESTED = """\
                                            +Only "{0}" documents available{1}. \
                                            +This is smaller than the requested number of top similar documents "{2}". \
                                            +So output is going to contain all "{0}" documents, but sorted by distance\
                                            +"""
                                            +
                                            +WARNING_TOO_MANY_REQUESTED = """\
                                            +Requested number of top similar documents "{0}" \
                                            +is bigger than total number of documents in the dataset "{1}"\
                                            +"""
                                            +
                                            +
                                            +class TopSimilarDocumentsViewer(BaseViewer):
                                            +    def __init__(self, model, dataset):
                                            +        """Viewer which uses topic model to find documents similar to given one
                                            +
                                            +        Parameters
                                            +        ----------
                                            +        model : BaseModel
                                            +            Topic model
                                            +        dataset : BaseDataset
                                            +            Dataset with information about documents
                                            +        """
                                            +        super().__init__(model=model)
                                            +
                                            +        if not isinstance(dataset, BaseDataset):
                                            +            raise TypeError('Parameter "dataset" should derive from BaseDataset')
                                            +
                                            +        self._dataset = dataset
                                            +        self._theta = self.model.get_theta(dataset=self._dataset)
                                            +
                                            +        self._documents_ids = list(self._theta.columns)
                                            +
                                            +        if len(self._documents_ids) == 0:
                                            +            warnings.warn('No documents in given dataset', UserWarning)
                                            +        elif len(set(self._documents_ids)) != len(self._documents_ids):
                                            +            raise ValueError(ERROR_DUPLICATE_DOCUMENTS_IDS.format(
                                            +                len(set(self._documents_ids)), len(self._documents_ids)))
                                            +
                                            +    def view(self,
                                            +             document_id,
                                            +             metric='jensenshannon',
                                            +             num_top_similar=5,
                                            +             keep_similar_by_words=True):
                                            +        """Shows documents similar to given one by distribution of topics
                                            +
                                            +        Parameters
                                            +        ----------
                                            +        document_id
                                            +            ID of the document in `dataset`
                                            +        metric : str or callable
                                            +            Distance measure which is to be used to measure how documents differ from each other
                                            +            If str -- should be one of 'jensenshannon', 'euclidean', 'cosine', 'correlation' --
                                            +                as in scipy.spatial.distance.cdist
                                            +            If callable -- should map two vectors to numeric value
                                            +        num_top_similar : int
                                            +            How many top similar documents' IDs to show
                                            +        keep_similar_by_words : bool
                                            +            Whether or not to keep in the output those documents
                                            +            that are similar to the given one by their constituent words and words' frequencies
                                            +
                                            +        Returns
                                            +        -------
                                            +        tuple(list, list)
                                            +            Top similar words, and corresponding distances to given document
                                            +        """
                                            +        self._check_view_parameters_valid(
                                            +            document_id=document_id,
                                            +            metric=metric,
                                            +            num_top_similar=num_top_similar,
                                            +            keep_similar_by_words=keep_similar_by_words)
                                            +
                                            +        num_top_similar = min(num_top_similar, len(self._documents_ids))
                                            +        document_index = self._documents_ids.index(document_id)
                                            +
                                            +        similar_documents_indices, distances = self._view(
                                            +            document_index=document_index,
                                            +            metric=metric,
                                            +            num_top_similar=num_top_similar,
                                            +            keep_similar_by_words=keep_similar_by_words)
                                            +
                                            +        documents_ids = [self._documents_ids[doc_index] for doc_index in similar_documents_indices]
                                            +
                                            +        return documents_ids, distances
                                            +
                                            +    def _view(self,
                                            +              document_index,
                                            +              metric,
                                            +              num_top_similar,
                                            +              keep_similar_by_words):
                                            +
                                            +        documents_indices = [i for i, _ in enumerate(self._documents_ids) if i != document_index]
                                            +        distances = self._get_documents_distances(documents_indices, document_index, metric)
                                            +
                                            +        documents_indices, distances = \
                                            +            TopSimilarDocumentsViewer._sort_elements_by_corresponding_values(
                                            +                documents_indices, distances)
                                            +
                                            +        if keep_similar_by_words or len(documents_indices) == 0:
                                            +            documents_indices_to_exclude = []
                                            +        else:
                                            +            documents_indices_to_exclude = \
                                            +                self._get_documents_with_similar_words_frequencies_indices(
                                            +                    documents_indices, document_index, num_top_similar)
                                            +
                                            +        if len(documents_indices) == len(documents_indices_to_exclude):
                                            +            return self._empty_view
                                            +        elif len(documents_indices) - len(documents_indices_to_exclude) < num_top_similar:
                                            +            warnings.warn(
                                            +                WARNING_FEWER_THAN_REQUESTED.format(
                                            +                    len(documents_indices_to_exclude),
                                            +                    (' after throwing out documents similar just by words'
                                            +                     if not keep_similar_by_words else ''),
                                            +                    num_top_similar),
                                            +                RuntimeWarning
                                            +            )
                                            +
                                            +        documents_indices, distances =\
                                            +            TopSimilarDocumentsViewer._filter_elements_and_values(
                                            +                documents_indices, distances, documents_indices_to_exclude)
                                            +
                                            +        similar_documents_indices = documents_indices[:num_top_similar]
                                            +        similar_documents_distances = distances[:num_top_similar]
                                            +
                                            +        return similar_documents_indices, similar_documents_distances
                                            +
                                            +    @staticmethod
                                            +    def _sort_elements_by_corresponding_values(elements, values, ascending=True):
                                            +        def unzip(zipped):
                                            +            # Transforms [(a, A), (b, B), ...] to [a, b, ...], [A, B, ...]
                                            +            return list(zip(*zipped))
                                            +
                                            +        elements_values = sorted(zip(elements, values), key=lambda kv: kv[1])
                                            +
                                            +        if not ascending:
                                            +            elements_values = elements_values[::-1]
                                            +
                                            +        return unzip(elements_values)
                                            +
                                            +    @staticmethod
                                            +    def _filter_elements_and_values(elements, values, elements_to_exclude):
                                            +        elements_to_exclude = set(elements_to_exclude)
                                            +        indices_to_exclude = set([i for i, e in enumerate(elements) if e in elements_to_exclude])
                                            +
                                            +        result_elements = [e for i, e in enumerate(elements) if i not in indices_to_exclude]
                                            +        result_values = [v for i, v in enumerate(values) if i not in indices_to_exclude]
                                            +
                                            +        assert len(result_elements) == len(result_values)
                                            +
                                            +        return result_elements, result_values
                                            +
                                            +    @staticmethod
                                            +    def _are_words_frequencies_similar(words_frequencies_a, words_frequencies_b):
                                            +        # TODO: method seems very ... heuristic
                                            +        # maybe need some research to find the best way to compare words frequencies
                                            +        word_frequency_pairs_a = sorted(words_frequencies_a.items(), key=lambda kv: kv[1])
                                            +        word_frequency_pairs_b = sorted(words_frequencies_b.items(), key=lambda kv: kv[1])
                                            +
                                            +        num_top_words_to_consider = 100
                                            +        jaccard_coefficient = TopSimilarDocumentsViewer._get_jaccard_coefficient(
                                            +            word_frequency_pairs_a[:num_top_words_to_consider],
                                            +            word_frequency_pairs_b[:num_top_words_to_consider])
                                            +        jaccard_coefficient_threshold_to_be_similar = 0.6
                                            +
                                            +        return jaccard_coefficient >= jaccard_coefficient_threshold_to_be_similar
                                            +
                                            +    @staticmethod
                                            +    def _get_jaccard_coefficient(word_frequency_pairs_a, word_frequency_pairs_b):
                                            +        def get_values_sum(dictionary, default=0.0):
                                            +            return sum(dictionary.values() or [default])
                                            +
                                            +        def get_normalized_values(key_value_pairs):
                                            +            tiny = 1e-7
                                            +            denominator = sum(kv[1] for kv in key_value_pairs) or tiny
                                            +
                                            +            return {k: v / denominator for k, v in key_value_pairs}
                                            +
                                            +        # May help in case documents differ in length significantly
                                            +        frequencies_a = get_normalized_values(word_frequency_pairs_a)
                                            +        frequencies_b = get_normalized_values(word_frequency_pairs_b)
                                            +
                                            +        words_a, words_b = set(frequencies_a), set(frequencies_b)
                                            +
                                            +        intersection = {
                                            +            e: min(frequencies_a[e], frequencies_b[e])
                                            +            for e in words_a & words_b
                                            +        }
                                            +        union = {
                                            +            e: max(frequencies_a.get(e, 0), frequencies_b.get(e, 0))
                                            +            for e in words_a | words_b
                                            +        }
                                            +
                                            +        if len(union) == 0:
                                            +            return 0.0
                                            +
                                            +        return get_values_sum(intersection) / get_values_sum(union)
                                            +
                                            +    @staticmethod
                                            +    def _extract_words_frequencies(vw_text):
                                            +        # Just gather frequencies of words of all modalities
                                            +        # TODO: use Dataset for this?
                                            +
                                            +        def is_modality_name(vw_word):
                                            +            return vw_word.startswith('|')
                                            +
                                            +        words_frequencies = defaultdict(int)
                                            +        has_words_with_undefined_frequencies = False
                                            +
                                            +        for vw_word in vw_text.split():
                                            +            if is_modality_name(vw_word):
                                            +                continue
                                            +
                                            +            if ':' in vw_word:
                                            +                word, frequency = vw_word.split(':')
                                            +
                                            +                if len(frequency) == 0:
                                            +                    has_words_with_undefined_frequencies = True
                                            +                    continue
                                            +
                                            +                # to allow frequencies as float's but assure that now all are int-s
                                            +                frequency = int(round(float(frequency)))
                                            +            else:
                                            +                word = vw_word
                                            +                frequency = 1
                                            +
                                            +            words_frequencies[word] += frequency
                                            +
                                            +        if has_words_with_undefined_frequencies:
                                            +            warnings.warn(WARNING_UNDEFINED_FREQUENCY_IN_VW, UserWarning)
                                            +
                                            +        return words_frequencies
                                            +
                                            +    @property
                                            +    def _empty_view(self):
                                            +        empty_top_similar_documents_list = list()
                                            +        empty_distances_list = list()
                                            +
                                            +        return empty_top_similar_documents_list, empty_distances_list
                                            +
                                            +    def _check_view_parameters_valid(
                                            +            self, document_id, metric, num_top_similar, keep_similar_by_words):
                                            +
                                            +        if document_id not in self._documents_ids:
                                            +            raise ValueError('No document with such id "{}" in dataset'.format(document_id))
                                            +
                                            +        if isinstance(metric, str):
                                            +            TopSimilarDocumentsViewer._check_str_metric_valid(metric)
                                            +        elif callable(metric):
                                            +            TopSimilarDocumentsViewer._check_callable_metric_valid(metric)
                                            +        else:
                                            +            raise TypeError(ERROR_TYPE_METRIC.format(type(metric)))
                                            +
                                            +        if not isinstance(num_top_similar, int):
                                            +            raise TypeError(ERROR_TYPE_NUM_TOP_SIMILAR.format(type(num_top_similar)))
                                            +        elif num_top_similar < 0:
                                            +            raise ValueError('Parameter "num_top_similar" should be greater than zero')
                                            +        elif num_top_similar == 0:
                                            +            return self._empty_view
                                            +        elif num_top_similar > len(self._documents_ids):
                                            +            warnings.warn(
                                            +                WARNING_TOO_MANY_REQUESTED.format(
                                            +                    num_top_similar, len(self._documents_ids)),
                                            +                UserWarning
                                            +            )
                                            +
                                            +        if not isinstance(keep_similar_by_words, bool):
                                            +            raise TypeError(ERROR_TYPE_KEEP_SIMILAR_BY_WORDS.format(type(keep_similar_by_words)))
                                            +
                                            +    @staticmethod
                                            +    def _check_str_metric_valid(metric):
                                            +        if metric not in METRICS_NAMES:
                                            +            raise ValueError('Unknown metric name "{}", expected one of "{}"'.format(
                                            +                metric, ' '.join(METRICS_NAMES)))
                                            +
                                            +    @staticmethod
                                            +    def _check_callable_metric_valid(metric):
                                            +        try:
                                            +            metric(np.array([0]), np.array([0]))
                                            +        except TypeError:  # more or less arguments or they are of wrong type for operation
                                            +            raise ValueError('Invalid "callable" metric')
                                            +
                                            +    def _get_documents_distances(
                                            +            self,
                                            +            documents_indices_to_measure_distance_from,
                                            +            document_index_to_measure_distance_to,
                                            +            metric):
                                            +
                                            +        theta_submatrix = self._theta.iloc[:, documents_indices_to_measure_distance_from]
                                            +        documents_vectors = theta_submatrix.T.values
                                            +
                                            +        assert documents_vectors.ndim == 2
                                            +
                                            +        theta_column = self._theta.iloc[:, document_index_to_measure_distance_to]
                                            +        document_vector = theta_column.T.values
                                            +
                                            +        assert document_vector.ndim == 1
                                            +
                                            +        document_vector = document_vector.reshape(1, -1)
                                            +
                                            +        assert document_vector.ndim == 2
                                            +        assert document_vector.shape[0] == 1
                                            +        assert document_vector.shape[1] == documents_vectors.shape[1]
                                            +
                                            +        answer = sp_cdist(documents_vectors, document_vector, metric)
                                            +
                                            +        return answer.flatten()
                                            +
                                            +    def _get_documents_with_similar_words_frequencies_indices(
                                            +            self, documents_indices, document_index_to_compare_with,
                                            +            num_dissimilar_documents_to_stop_searching):
                                            +
                                            +        # Method is not going to find all similar documents
                                            +        # It terminates when enough dissimilar documents are encountered
                                            +
                                            +        similar_documents_indices = []
                                            +        num_encountered_dissimilar_documents = 0
                                            +        words_frequencies_to_compare_with = \
                                            +            self._get_words_frequencies(document_index_to_compare_with)
                                            +
                                            +        for i, doc_index in enumerate(documents_indices):
                                            +            if num_encountered_dissimilar_documents == num_dissimilar_documents_to_stop_searching:
                                            +                break
                                            +
                                            +            if TopSimilarDocumentsViewer._are_words_frequencies_similar(
                                            +                    self._get_words_frequencies(i),
                                            +                    words_frequencies_to_compare_with):
                                            +                similar_documents_indices.append(doc_index)
                                            +            else:
                                            +                num_encountered_dissimilar_documents += 1
                                            +
                                            +        return similar_documents_indices
                                            +
                                            +    def _get_words_frequencies(self, document_index):
                                            +        vw_text = self._get_vw_text(document_index)
                                            +
                                            +        return TopSimilarDocumentsViewer._extract_words_frequencies(vw_text)
                                            +
                                            +    def _get_vw_text(self, document_index):
                                            +        dataset = self._dataset.get_dataset()
                                            +
                                            +        return dataset.iloc[document_index, dataset.columns.get_loc('vw_text')]
                                            +
                                            +
                                            +def _run_view(viewer, document_id, keep_similar_by_words=True):
                                            +    print(
                                            +        '> similar_documents, distances = viewer.view('
                                            +        'document_id={}{})'.format(
                                            +            document_id,
                                            +            ', keep_similar_by_word=False' if not keep_similar_by_words else ''))
                                            +
                                            +    similar_documents, distances = viewer.view(
                                            +        document_id=document_id, keep_similar_by_words=keep_similar_by_words)
                                            +
                                            +    print('similar_documents:', similar_documents)
                                            +    print('distances:', ['{:.4f}'.format(d) for d in distances])
                                            +    print()
                                            +
                                            +
                                            +def _main():
                                            +    print('Starting TopSimilarDocumentsViewer\'s view() demonstration!', end='\n\n')
                                            +
                                            +    import artm
                                            +    import os
                                            +
                                            +    from cooking_machine.dataset import Dataset
                                            +    from cooking_machine.models.topic_model import TopicModel
                                            +    from viewers.top_similar_documents_viewer import TopSimilarDocumentsViewer
                                            +
                                            +    current_folder = os.path.dirname(os.path.abspath(__file__))
                                            +    dataset = Dataset(os.path.join(current_folder, '../tests/test_data/test_dataset.csv'))
                                            +
                                            +    num_topics = 3
                                            +    artm_model = artm.ARTM(
                                            +        topic_names=['topic_{}'.format(i) for i in range(num_topics)],
                                            +        theta_columns_naming='id',
                                            +        show_progress_bars=False,
                                            +        cache_theta=True)
                                            +    artm_model.initialize(dataset.get_dictionary())
                                            +
                                            +    model = TopicModel(artm_model)
                                            +    num_iterations = 10
                                            +    model._fit(
                                            +        dataset_trainable=dataset.get_batch_vectorizer(),
                                            +        num_iterations=num_iterations)
                                            +
                                            +    viewer = TopSimilarDocumentsViewer(
                                            +        model=model,
                                            +        dataset=dataset)
                                            +
                                            +    # One may look if in notebook
                                            +    # artm_model.get_theta()
                                            +    # dataset.get_dataset()
                                            +
                                            +    print('Documents\' ids:', viewer._documents_ids, end='\n\n')
                                            +
                                            +    _run_view(viewer, document_id="doc_2")
                                            +    _run_view(viewer, document_id="doc_5")
                                            +    _run_view(viewer, document_id="doc_8")
                                            +    _run_view(viewer, document_id="doc_5", keep_similar_by_words=False)
                                            +
                                            +
                                            +# python -m viewers.top_similar_documents_viewer
                                            +if __name__ == '__main__':
                                            +    _main()
                                            +
                                            @@ -42,6 +493,340 @@

                                            Parameters

                                            dataset : BaseDataset
                                            Dataset with information about documents
                                            +
                                            + +Expand source code + +
                                            class TopSimilarDocumentsViewer(BaseViewer):
                                            +    def __init__(self, model, dataset):
                                            +        """Viewer which uses topic model to find documents similar to given one
                                            +
                                            +        Parameters
                                            +        ----------
                                            +        model : BaseModel
                                            +            Topic model
                                            +        dataset : BaseDataset
                                            +            Dataset with information about documents
                                            +        """
                                            +        super().__init__(model=model)
                                            +
                                            +        if not isinstance(dataset, BaseDataset):
                                            +            raise TypeError('Parameter "dataset" should derive from BaseDataset')
                                            +
                                            +        self._dataset = dataset
                                            +        self._theta = self.model.get_theta(dataset=self._dataset)
                                            +
                                            +        self._documents_ids = list(self._theta.columns)
                                            +
                                            +        if len(self._documents_ids) == 0:
                                            +            warnings.warn('No documents in given dataset', UserWarning)
                                            +        elif len(set(self._documents_ids)) != len(self._documents_ids):
                                            +            raise ValueError(ERROR_DUPLICATE_DOCUMENTS_IDS.format(
                                            +                len(set(self._documents_ids)), len(self._documents_ids)))
                                            +
                                            +    def view(self,
                                            +             document_id,
                                            +             metric='jensenshannon',
                                            +             num_top_similar=5,
                                            +             keep_similar_by_words=True):
                                            +        """Shows documents similar to given one by distribution of topics
                                            +
                                            +        Parameters
                                            +        ----------
                                            +        document_id
                                            +            ID of the document in `dataset`
                                            +        metric : str or callable
                                            +            Distance measure which is to be used to measure how documents differ from each other
                                            +            If str -- should be one of 'jensenshannon', 'euclidean', 'cosine', 'correlation' --
                                            +                as in scipy.spatial.distance.cdist
                                            +            If callable -- should map two vectors to numeric value
                                            +        num_top_similar : int
                                            +            How many top similar documents' IDs to show
                                            +        keep_similar_by_words : bool
                                            +            Whether or not to keep in the output those documents
                                            +            that are similar to the given one by their constituent words and words' frequencies
                                            +
                                            +        Returns
                                            +        -------
                                            +        tuple(list, list)
                                            +            Top similar words, and corresponding distances to given document
                                            +        """
                                            +        self._check_view_parameters_valid(
                                            +            document_id=document_id,
                                            +            metric=metric,
                                            +            num_top_similar=num_top_similar,
                                            +            keep_similar_by_words=keep_similar_by_words)
                                            +
                                            +        num_top_similar = min(num_top_similar, len(self._documents_ids))
                                            +        document_index = self._documents_ids.index(document_id)
                                            +
                                            +        similar_documents_indices, distances = self._view(
                                            +            document_index=document_index,
                                            +            metric=metric,
                                            +            num_top_similar=num_top_similar,
                                            +            keep_similar_by_words=keep_similar_by_words)
                                            +
                                            +        documents_ids = [self._documents_ids[doc_index] for doc_index in similar_documents_indices]
                                            +
                                            +        return documents_ids, distances
                                            +
                                            +    def _view(self,
                                            +              document_index,
                                            +              metric,
                                            +              num_top_similar,
                                            +              keep_similar_by_words):
                                            +
                                            +        documents_indices = [i for i, _ in enumerate(self._documents_ids) if i != document_index]
                                            +        distances = self._get_documents_distances(documents_indices, document_index, metric)
                                            +
                                            +        documents_indices, distances = \
                                            +            TopSimilarDocumentsViewer._sort_elements_by_corresponding_values(
                                            +                documents_indices, distances)
                                            +
                                            +        if keep_similar_by_words or len(documents_indices) == 0:
                                            +            documents_indices_to_exclude = []
                                            +        else:
                                            +            documents_indices_to_exclude = \
                                            +                self._get_documents_with_similar_words_frequencies_indices(
                                            +                    documents_indices, document_index, num_top_similar)
                                            +
                                            +        if len(documents_indices) == len(documents_indices_to_exclude):
                                            +            return self._empty_view
                                            +        elif len(documents_indices) - len(documents_indices_to_exclude) < num_top_similar:
                                            +            warnings.warn(
                                            +                WARNING_FEWER_THAN_REQUESTED.format(
                                            +                    len(documents_indices_to_exclude),
                                            +                    (' after throwing out documents similar just by words'
                                            +                     if not keep_similar_by_words else ''),
                                            +                    num_top_similar),
                                            +                RuntimeWarning
                                            +            )
                                            +
                                            +        documents_indices, distances =\
                                            +            TopSimilarDocumentsViewer._filter_elements_and_values(
                                            +                documents_indices, distances, documents_indices_to_exclude)
                                            +
                                            +        similar_documents_indices = documents_indices[:num_top_similar]
                                            +        similar_documents_distances = distances[:num_top_similar]
                                            +
                                            +        return similar_documents_indices, similar_documents_distances
                                            +
                                            +    @staticmethod
                                            +    def _sort_elements_by_corresponding_values(elements, values, ascending=True):
                                            +        def unzip(zipped):
                                            +            # Transforms [(a, A), (b, B), ...] to [a, b, ...], [A, B, ...]
                                            +            return list(zip(*zipped))
                                            +
                                            +        elements_values = sorted(zip(elements, values), key=lambda kv: kv[1])
                                            +
                                            +        if not ascending:
                                            +            elements_values = elements_values[::-1]
                                            +
                                            +        return unzip(elements_values)
                                            +
                                            +    @staticmethod
                                            +    def _filter_elements_and_values(elements, values, elements_to_exclude):
                                            +        elements_to_exclude = set(elements_to_exclude)
                                            +        indices_to_exclude = set([i for i, e in enumerate(elements) if e in elements_to_exclude])
                                            +
                                            +        result_elements = [e for i, e in enumerate(elements) if i not in indices_to_exclude]
                                            +        result_values = [v for i, v in enumerate(values) if i not in indices_to_exclude]
                                            +
                                            +        assert len(result_elements) == len(result_values)
                                            +
                                            +        return result_elements, result_values
                                            +
                                            +    @staticmethod
                                            +    def _are_words_frequencies_similar(words_frequencies_a, words_frequencies_b):
                                            +        # TODO: method seems very ... heuristic
                                            +        # maybe need some research to find the best way to compare words frequencies
                                            +        word_frequency_pairs_a = sorted(words_frequencies_a.items(), key=lambda kv: kv[1])
                                            +        word_frequency_pairs_b = sorted(words_frequencies_b.items(), key=lambda kv: kv[1])
                                            +
                                            +        num_top_words_to_consider = 100
                                            +        jaccard_coefficient = TopSimilarDocumentsViewer._get_jaccard_coefficient(
                                            +            word_frequency_pairs_a[:num_top_words_to_consider],
                                            +            word_frequency_pairs_b[:num_top_words_to_consider])
                                            +        jaccard_coefficient_threshold_to_be_similar = 0.6
                                            +
                                            +        return jaccard_coefficient >= jaccard_coefficient_threshold_to_be_similar
                                            +
                                            +    @staticmethod
                                            +    def _get_jaccard_coefficient(word_frequency_pairs_a, word_frequency_pairs_b):
                                            +        def get_values_sum(dictionary, default=0.0):
                                            +            return sum(dictionary.values() or [default])
                                            +
                                            +        def get_normalized_values(key_value_pairs):
                                            +            tiny = 1e-7
                                            +            denominator = sum(kv[1] for kv in key_value_pairs) or tiny
                                            +
                                            +            return {k: v / denominator for k, v in key_value_pairs}
                                            +
                                            +        # May help in case documents differ in length significantly
                                            +        frequencies_a = get_normalized_values(word_frequency_pairs_a)
                                            +        frequencies_b = get_normalized_values(word_frequency_pairs_b)
                                            +
                                            +        words_a, words_b = set(frequencies_a), set(frequencies_b)
                                            +
                                            +        intersection = {
                                            +            e: min(frequencies_a[e], frequencies_b[e])
                                            +            for e in words_a & words_b
                                            +        }
                                            +        union = {
                                            +            e: max(frequencies_a.get(e, 0), frequencies_b.get(e, 0))
                                            +            for e in words_a | words_b
                                            +        }
                                            +
                                            +        if len(union) == 0:
                                            +            return 0.0
                                            +
                                            +        return get_values_sum(intersection) / get_values_sum(union)
                                            +
                                            +    @staticmethod
                                            +    def _extract_words_frequencies(vw_text):
                                            +        # Just gather frequencies of words of all modalities
                                            +        # TODO: use Dataset for this?
                                            +
                                            +        def is_modality_name(vw_word):
                                            +            return vw_word.startswith('|')
                                            +
                                            +        words_frequencies = defaultdict(int)
                                            +        has_words_with_undefined_frequencies = False
                                            +
                                            +        for vw_word in vw_text.split():
                                            +            if is_modality_name(vw_word):
                                            +                continue
                                            +
                                            +            if ':' in vw_word:
                                            +                word, frequency = vw_word.split(':')
                                            +
                                            +                if len(frequency) == 0:
                                            +                    has_words_with_undefined_frequencies = True
                                            +                    continue
                                            +
                                            +                # to allow frequencies as float's but assure that now all are int-s
                                            +                frequency = int(round(float(frequency)))
                                            +            else:
                                            +                word = vw_word
                                            +                frequency = 1
                                            +
                                            +            words_frequencies[word] += frequency
                                            +
                                            +        if has_words_with_undefined_frequencies:
                                            +            warnings.warn(WARNING_UNDEFINED_FREQUENCY_IN_VW, UserWarning)
                                            +
                                            +        return words_frequencies
                                            +
                                            +    @property
                                            +    def _empty_view(self):
                                            +        empty_top_similar_documents_list = list()
                                            +        empty_distances_list = list()
                                            +
                                            +        return empty_top_similar_documents_list, empty_distances_list
                                            +
                                            +    def _check_view_parameters_valid(
                                            +            self, document_id, metric, num_top_similar, keep_similar_by_words):
                                            +
                                            +        if document_id not in self._documents_ids:
                                            +            raise ValueError('No document with such id "{}" in dataset'.format(document_id))
                                            +
                                            +        if isinstance(metric, str):
                                            +            TopSimilarDocumentsViewer._check_str_metric_valid(metric)
                                            +        elif callable(metric):
                                            +            TopSimilarDocumentsViewer._check_callable_metric_valid(metric)
                                            +        else:
                                            +            raise TypeError(ERROR_TYPE_METRIC.format(type(metric)))
                                            +
                                            +        if not isinstance(num_top_similar, int):
                                            +            raise TypeError(ERROR_TYPE_NUM_TOP_SIMILAR.format(type(num_top_similar)))
                                            +        elif num_top_similar < 0:
                                            +            raise ValueError('Parameter "num_top_similar" should be greater than zero')
                                            +        elif num_top_similar == 0:
                                            +            return self._empty_view
                                            +        elif num_top_similar > len(self._documents_ids):
                                            +            warnings.warn(
                                            +                WARNING_TOO_MANY_REQUESTED.format(
                                            +                    num_top_similar, len(self._documents_ids)),
                                            +                UserWarning
                                            +            )
                                            +
                                            +        if not isinstance(keep_similar_by_words, bool):
                                            +            raise TypeError(ERROR_TYPE_KEEP_SIMILAR_BY_WORDS.format(type(keep_similar_by_words)))
                                            +
                                            +    @staticmethod
                                            +    def _check_str_metric_valid(metric):
                                            +        if metric not in METRICS_NAMES:
                                            +            raise ValueError('Unknown metric name "{}", expected one of "{}"'.format(
                                            +                metric, ' '.join(METRICS_NAMES)))
                                            +
                                            +    @staticmethod
                                            +    def _check_callable_metric_valid(metric):
                                            +        try:
                                            +            metric(np.array([0]), np.array([0]))
                                            +        except TypeError:  # more or less arguments or they are of wrong type for operation
                                            +            raise ValueError('Invalid "callable" metric')
                                            +
                                            +    def _get_documents_distances(
                                            +            self,
                                            +            documents_indices_to_measure_distance_from,
                                            +            document_index_to_measure_distance_to,
                                            +            metric):
                                            +
                                            +        theta_submatrix = self._theta.iloc[:, documents_indices_to_measure_distance_from]
                                            +        documents_vectors = theta_submatrix.T.values
                                            +
                                            +        assert documents_vectors.ndim == 2
                                            +
                                            +        theta_column = self._theta.iloc[:, document_index_to_measure_distance_to]
                                            +        document_vector = theta_column.T.values
                                            +
                                            +        assert document_vector.ndim == 1
                                            +
                                            +        document_vector = document_vector.reshape(1, -1)
                                            +
                                            +        assert document_vector.ndim == 2
                                            +        assert document_vector.shape[0] == 1
                                            +        assert document_vector.shape[1] == documents_vectors.shape[1]
                                            +
                                            +        answer = sp_cdist(documents_vectors, document_vector, metric)
                                            +
                                            +        return answer.flatten()
                                            +
                                            +    def _get_documents_with_similar_words_frequencies_indices(
                                            +            self, documents_indices, document_index_to_compare_with,
                                            +            num_dissimilar_documents_to_stop_searching):
                                            +
                                            +        # Method is not going to find all similar documents
                                            +        # It terminates when enough dissimilar documents are encountered
                                            +
                                            +        similar_documents_indices = []
                                            +        num_encountered_dissimilar_documents = 0
                                            +        words_frequencies_to_compare_with = \
                                            +            self._get_words_frequencies(document_index_to_compare_with)
                                            +
                                            +        for i, doc_index in enumerate(documents_indices):
                                            +            if num_encountered_dissimilar_documents == num_dissimilar_documents_to_stop_searching:
                                            +                break
                                            +
                                            +            if TopSimilarDocumentsViewer._are_words_frequencies_similar(
                                            +                    self._get_words_frequencies(i),
                                            +                    words_frequencies_to_compare_with):
                                            +                similar_documents_indices.append(doc_index)
                                            +            else:
                                            +                num_encountered_dissimilar_documents += 1
                                            +
                                            +        return similar_documents_indices
                                            +
                                            +    def _get_words_frequencies(self, document_index):
                                            +        vw_text = self._get_vw_text(document_index)
                                            +
                                            +        return TopSimilarDocumentsViewer._extract_words_frequencies(vw_text)
                                            +
                                            +    def _get_vw_text(self, document_index):
                                            +        dataset = self._dataset.get_dataset()
                                            +
                                            +        return dataset.iloc[document_index, dataset.columns.get_loc('vw_text')]
                                            +

                                            Ancestors

                                            • BaseViewer
                                            • @@ -73,6 +858,56 @@

                                              Returns

                                              tuple(list, list)
                                              Top similar words, and corresponding distances to given document
                                              +
                                              + +Expand source code + +
                                              def view(self,
                                              +         document_id,
                                              +         metric='jensenshannon',
                                              +         num_top_similar=5,
                                              +         keep_similar_by_words=True):
                                              +    """Shows documents similar to given one by distribution of topics
                                              +
                                              +    Parameters
                                              +    ----------
                                              +    document_id
                                              +        ID of the document in `dataset`
                                              +    metric : str or callable
                                              +        Distance measure which is to be used to measure how documents differ from each other
                                              +        If str -- should be one of 'jensenshannon', 'euclidean', 'cosine', 'correlation' --
                                              +            as in scipy.spatial.distance.cdist
                                              +        If callable -- should map two vectors to numeric value
                                              +    num_top_similar : int
                                              +        How many top similar documents' IDs to show
                                              +    keep_similar_by_words : bool
                                              +        Whether or not to keep in the output those documents
                                              +        that are similar to the given one by their constituent words and words' frequencies
                                              +
                                              +    Returns
                                              +    -------
                                              +    tuple(list, list)
                                              +        Top similar words, and corresponding distances to given document
                                              +    """
                                              +    self._check_view_parameters_valid(
                                              +        document_id=document_id,
                                              +        metric=metric,
                                              +        num_top_similar=num_top_similar,
                                              +        keep_similar_by_words=keep_similar_by_words)
                                              +
                                              +    num_top_similar = min(num_top_similar, len(self._documents_ids))
                                              +    document_index = self._documents_ids.index(document_id)
                                              +
                                              +    similar_documents_indices, distances = self._view(
                                              +        document_index=document_index,
                                              +        metric=metric,
                                              +        num_top_similar=num_top_similar,
                                              +        keep_similar_by_words=keep_similar_by_words)
                                              +
                                              +    documents_ids = [self._documents_ids[doc_index] for doc_index in similar_documents_indices]
                                              +
                                              +    return documents_ids, distances
                                              +
                                              @@ -104,7 +939,9 @@

                                              -

                                              Generated by pdoc 0.6.3.

                                              +

                                              Generated by pdoc 0.7.2.

                                              + + \ No newline at end of file diff --git a/docs/viewers/top_tokens_viewer.html b/docs/viewers/top_tokens_viewer.html index 2e49126..8616b2f 100644 --- a/docs/viewers/top_tokens_viewer.html +++ b/docs/viewers/top_tokens_viewer.html @@ -3,12 +3,13 @@ - + topicnet.viewers.top_tokens_viewer API documentation - + + @@ -19,6 +20,512 @@

                                              Module topicnet.viewers.top_tokens_viewer

                                              +
                                              + +Expand source code + +
                                              import numpy as np
                                              +import pandas as pd
                                              +from sklearn.feature_extraction.text import TfidfVectorizer
                                              +from typing import Dict, Iterator, List, Tuple, Union
                                              +import warnings
                                              +
                                              +from .base_viewer import BaseViewer
                                              +
                                              +
                                              +def get_top_values(values, top_number, return_indexes=True):
                                              +    """
                                              +    Returns top_number top values from the matrix for each column.
                                              +
                                              +    Parameters
                                              +    ----------
                                              +    values : np.array
                                              +        a two dimensional array of values
                                              +    top_number : int
                                              +        number of top values to return
                                              +    return_indexes : bool
                                              +        a flag to return indexes together with the top values
                                              +
                                              +    Returns
                                              +    -------
                                              +    top_values : nd.array
                                              +        array of top_number top values for each column of the initial array
                                              +    (optional) top_indexes : nd.array
                                              +        array of original indexes for top_values array (Default value = True)
                                              +
                                              +    """
                                              +    if top_number > len(values):
                                              +        top_number = len(values)
                                              +        warnings.warn('num_top_tokens greater than modality size', UserWarning)
                                              +
                                              +    top_indexes = np.argpartition(
                                              +        values, len(values) - top_number
                                              +    )[-top_number:]
                                              +
                                              +    top_values = values[top_indexes]
                                              +    sorted_top_values_indexes = top_values.argsort()[::-1]
                                              +
                                              +    top_values = top_values[sorted_top_values_indexes]
                                              +
                                              +    # get initial indexes
                                              +    top_indexes = top_indexes[sorted_top_values_indexes]
                                              +
                                              +    if return_indexes:
                                              +        return top_values, top_indexes
                                              +
                                              +    return top_values
                                              +
                                              +
                                              +def compute_pt_distribution(model, class_ids=None):
                                              +    """
                                              +    Calculates the Prob(t) vector (vector contains an entry for each topic).
                                              +
                                              +    Parameters
                                              +    ----------
                                              +    model : TopicModel
                                              +        model under the scope
                                              +    class_ids : list of str or None
                                              +        list of modalities to consider, which takes all modalities in the model
                                              +        (Default value = None)
                                              +
                                              +    Returns
                                              +    -------
                                              +    float
                                              +        probability that a random token from the collection belongs to that topic
                                              +
                                              +    """
                                              +
                                              +    n_wt = model.get_phi(class_ids=class_ids, model_name=model.model_nwt)
                                              +    n_t = n_wt.sum(axis=0)  # sum over all words
                                              +    # TODO: maybe this is not P(t)
                                              +    #  P(t) means prior P()? here using info from model, so not P(t), more like P(t | model)
                                              +    return n_t / n_t.sum()
                                              +
                                              +
                                              +def compute_joint_pwt_distribution(phi, p_t):
                                              +    """
                                              +    p(t) is prob(topic = t), defined as p(t) = sum_t n_t / n  
                                              +
                                              +    if we fix some word w, we can calculate weighted_pk:  
                                              +    wp_t = p(t) p(w|t)
                                              +
                                              +    Parameters
                                              +    ----------
                                              +    phi : pd.Dataframe
                                              +        phi matrix of the model
                                              +    p_t : np.array of float
                                              +        probability that a random token from the collection belongs to that topic
                                              +
                                              +    Returns
                                              +    -------
                                              +    joint_pwt : np.array of float
                                              +        array of probabilities that a fixed token from the collection
                                              +        belongs to that topic
                                              +
                                              +    """  # noqa: W291
                                              +
                                              +    joint_pwt = p_t[:, np.newaxis] * phi.transpose()
                                              +    return joint_pwt
                                              +
                                              +
                                              +def compute_ptw(joint_pwt):
                                              +    return joint_pwt / np.sum(joint_pwt, axis=0)  # sum by all T
                                              +
                                              +
                                              +def compute_likelihood_vectorised(phi, p_t, joint_pwt):
                                              +    """
                                              +    Likelihood ratio is defined as  
                                              +        L = phi_wt / sum_k p(k)/p(!t) phi_wk  
                                              +    equivalently:  
                                              +        L = phi_wt * p(!t) / sum_k!=t p(k) phi_wk  
                                              +    after some numpy magic, you can get:  
                                              +        L = phi[topic, id] * (1 - p_t[topic]) / {(sum(joined_pwt) - joined_pwt[topic])}  
                                              +    numerator and denominator are calculated separately.  
                                              +
                                              +    Parameters
                                              +    ----------
                                              +    phi : pd.Dataframe
                                              +        phi matrix of the model
                                              +    p_t : np.array of float
                                              +        probability that a random token from the collection belongs to that topic
                                              +    joint_pwt : np.array of float
                                              +        array of probabilities that a fixed token from the collection
                                              +        belongs to that topic
                                              +
                                              +    Returns
                                              +    -------
                                              +    target_values : np.array of float
                                              +        vector of likelihood ratios that tokens belong to the given topic
                                              +
                                              +    """  # noqa: W291
                                              +    # if phi and joint_pwt are DataFrame, then
                                              +    # denominator will have the same Index/Columns as them
                                              +    # TODO: check equality
                                              +    denominator = (np.sum(joint_pwt, axis=0) - joint_pwt)
                                              +    multiplier = (1 - p_t)[:, np.newaxis]
                                              +    if hasattr(phi, "values"):
                                              +        numerator = phi.values.transpose() * multiplier
                                              +    else:
                                              +        numerator = phi.transpose() * multiplier
                                              +
                                              +    bad_indices = (denominator == 0)
                                              +    denominator[bad_indices] = 1
                                              +    target_values = numerator / denominator
                                              +
                                              +    # infinite likelihood ratios aren't interesting
                                              +    target_values[bad_indices] = float("-inf")
                                              +    return target_values
                                              +
                                              +
                                              +def compute_blei_scores(phi):
                                              +    """
                                              +    Computes Blei score  
                                              +    phi[wt] * [log(phi[wt]) - 1/T sum_k log(phi[wk])]
                                              +
                                              +    Parameters
                                              +    ----------
                                              +    phi : pd.DataFrame
                                              +        phi matrix of the model
                                              +
                                              +    Returns
                                              +    -------
                                              +    score : pd.DataFrame
                                              +        weighted phi matrix
                                              +
                                              +    """  # noqa: W291
                                              +
                                              +    topic_number = phi.shape[0]
                                              +    blei_eps = 1e-42
                                              +    log_phi = np.log(phi + blei_eps)
                                              +    denominator = np.sum(log_phi, axis=0)
                                              +    denominator = denominator[np.newaxis, :]
                                              +
                                              +    if hasattr(log_phi, "values"):
                                              +        multiplier = log_phi.values - denominator / topic_number
                                              +    else:
                                              +        multiplier = log_phi - denominator / topic_number
                                              +
                                              +    score = (phi * multiplier).transpose()
                                              +    return score
                                              +
                                              +
                                              +def compute_clusters_top_tokens_by_clusters_tfidf(
                                              +        objects_cluster, objects_content,
                                              +        max_top_number=10, n_topics=None):
                                              +    """
                                              +    Function for document-like clusters.  
                                              +    For each cluster compute top tokens of cluster. Top tokens are defined by tf-idf scheme.
                                              +    Tf-idf is computed as if clusters is concatenation of all it documents.
                                              +
                                              +    Parameters
                                              +    ----------
                                              +    objects_cluster : list of int
                                              +        ith element of list is cluster of ith object
                                              +    objects_content : list of list of str
                                              +        each element is sequence of tokens
                                              +    max_top_number : int
                                              +        maximum number of top tokens of cluster (resulting number can be less than it) 
                                              +        (Default value = 10)
                                              +    n_topics : int
                                              +        number of topics in model (Default value = None) 
                                              +        if None than it will be calculated automatically from object_clusters
                                              +
                                              +    Returns
                                              +    -------
                                              +    clusters_top_tokens : list of list of str:
                                              +        ith element of list is list of top tokens of ith cluster
                                              +
                                              +    """  # noqa: W291
                                              +    # TODO: check type of cluster_content, raise Error if it has spaces in it
                                              +
                                              +    n_topics = (
                                              +        n_topics if n_topics is not None
                                              +        else max(objects_cluster) + 1
                                              +    )
                                              +
                                              +    cluster_tokens = {
                                              +        num_cluster: []
                                              +        for num_cluster in range(n_topics)
                                              +    }
                                              +
                                              +    for object_cluster, object_content in zip(objects_cluster, objects_content):
                                              +        cluster_tokens[object_cluster] += object_content
                                              +
                                              +    cluster_tokens = [
                                              +        cluster_content
                                              +        for cluster_label, cluster_content in sorted(cluster_tokens.items(), key=lambda x: x[0])
                                              +    ]
                                              +
                                              +    vectorizer = TfidfVectorizer(tokenizer=lambda x: x, lowercase=False)
                                              +    tfidf_array = vectorizer.fit_transform(cluster_tokens).toarray()
                                              +    index_to_word = [
                                              +        word
                                              +        for word, index in sorted(vectorizer.vocabulary_.items(), key=lambda x:x[1])
                                              +    ]
                                              +
                                              +    cluster_top_tokens_indexes = (
                                              +        tfidf_array
                                              +        .argsort(axis=1)[:, tfidf_array.shape[1] - max_top_number:]
                                              +    )
                                              +
                                              +    cluster_top_tokens = []
                                              +    for cluster_label, cluster_top_tokens_indexes in enumerate(cluster_top_tokens_indexes):
                                              +        cluster_top_tokens += [
                                              +            (index_to_word[index], tfidf_array[cluster_label, index])
                                              +            for index in cluster_top_tokens_indexes[::-1]
                                              +            if tfidf_array[cluster_label, index] != 0
                                              +        ]
                                              +
                                              +    return cluster_top_tokens
                                              +
                                              +
                                              +class TopTokensViewer(BaseViewer):
                                              +    """Gets top tokens from topic (sorted by scores)"""
                                              +    def __init__(self,
                                              +                 model,
                                              +                 class_ids=None,
                                              +                 method='blei',
                                              +                 num_top_tokens=10,
                                              +                 alpha=1,
                                              +                 dataset=None):
                                              +        """
                                              +        The class provide information about top tokens 
                                              +        of the model topics providing with different methods to score that.
                                              +
                                              +        Parameters
                                              +        ----------
                                              +        model : TopicModel
                                              +            a class of topic model
                                              +        class_ids : list of int
                                              +            class ids for documents in topic needed only for tfidf method
                                              +        method : str
                                              +            method to score the topics could be any of
                                              +            top, phi - top tokens by probability in topic  
                                              +            blei - some magical Blei article score  
                                              +            tfidf - Term Frequency inversed Document Frequency  
                                              +            likelihood - Likelihood ratio score  
                                              +            ptw - something like likelihood  
                                              +        num_top_tokens : int
                                              +            number of top tokens to provide for each topic
                                              +        alpha : float between 0 and 1
                                              +            additional constant needed for
                                              +            ptw method of scoring
                                              +        dataset: Dataset
                                              +            a class that stores infromation about the collection
                                              +
                                              +        """  # noqa: W291
                                              +        known = ['top', 'phi', 'blei', 'tfidf', 'likelihood', 'ptw']
                                              +
                                              +        super().__init__(model=model)
                                              +
                                              +        self.num_top_tokens = num_top_tokens
                                              +        self.class_ids = class_ids
                                              +
                                              +        if method in known:
                                              +            self.method = method
                                              +        else:
                                              +            raise ValueError(f'method {method} is not known')
                                              +
                                              +        self.alpha = alpha
                                              +        self._dataset = dataset
                                              +
                                              +    def _get_target_values(self, phi):
                                              +        """
                                              +        Precomputes various model scores
                                              +        """
                                              +        if self.method == 'blei':
                                              +            return compute_blei_scores(phi)
                                              +
                                              +        elif self.method in ['top', 'phi']:
                                              +            return phi.transpose()
                                              +
                                              +        elif self.method in ['ptw', 'likelihood']:
                                              +            p_t = compute_pt_distribution(self._model)
                                              +            joint_pwt = compute_joint_pwt_distribution(phi, p_t)
                                              +
                                              +            if self.method == 'likelihood':
                                              +                return compute_likelihood_vectorised(phi, p_t, joint_pwt)
                                              +
                                              +            elif self.method == 'ptw':
                                              +                ptw_vector = compute_ptw(joint_pwt)
                                              +                ptw_component = self.alpha * ptw_vector
                                              +                phi_component = (1 - self.alpha) * phi.transpose()
                                              +
                                              +                return ptw_component + phi_component
                                              +
                                              +    def view(
                                              +            self,
                                              +            class_ids: List[str] = None,
                                              +            raw_data: List[List[str]] = None,
                                              +            three_levels: bool = True
                                              +    ) -> Union[Dict[str, Dict[str, Dict[str, float]]],
                                              +               Dict[str, Dict[Tuple[str, str], float]]]:
                                              +        """
                                              +        Returns list of tuples (token, score) for each topic in the model.
                                              +
                                              +        Parameters
                                              +        ----------
                                              +        class_ids
                                              +            Modalities from which to retrieve top tokens
                                              +        raw_data : list of list of str
                                              +            Necessary for 'tfidf' option
                                              +        three_levels
                                              +            If true, three level dict will be returned, otherwise — two level one
                                              +        returns
                                              +        -------
                                              +        topic_top_tokens : nested 3 or 2-level dict
                                              +            Topic -> Modality -> Token -> Probability or
                                              +            Topic -> (Modality, Token) -> Probability
                                              +
                                              +        """
                                              +        if class_ids is None:
                                              +            class_ids = self.class_ids
                                              +
                                              +        phi = self.model.get_phi(class_ids=class_ids)
                                              +
                                              +        if self.method == 'tfidf':
                                              +            objects_cluster = (
                                              +                self._model
                                              +                .get_theta(dataset=self._dataset)
                                              +                .values
                                              +                .argmax(axis=0)
                                              +            )
                                              +            top_tokens_sorted = compute_clusters_top_tokens_by_clusters_tfidf(
                                              +                objects_cluster, raw_data
                                              +            )
                                              +
                                              +            return top_tokens_sorted
                                              +
                                              +        target_values = self._get_target_values(phi)
                                              +
                                              +        phi = target_values.T
                                              +        phi.index = pd.MultiIndex.from_tuples(phi.index)
                                              +        topic_names = phi.columns.values
                                              +
                                              +        if self.class_ids is None:
                                              +            modalities = phi.index.levels[0].values
                                              +        else:
                                              +            modalities = self.class_ids
                                              +
                                              +        topic_top_tokens = {}
                                              +
                                              +        for topic_name in topic_names:
                                              +            topic_column = phi[topic_name]
                                              +            modality_top_tokens = {}
                                              +
                                              +            for modality in modalities:
                                              +                top_tokens_values, top_tokens_indexes = get_top_values(
                                              +                    topic_column.loc[modality].values,
                                              +                    top_number=self.num_top_tokens,
                                              +                )
                                              +                top_tokens = topic_column.loc[modality].index[top_tokens_indexes]
                                              +
                                              +                if three_levels:
                                              +                    modality_top_tokens[modality] = dict(zip(top_tokens, top_tokens_values))
                                              +                else:
                                              +                    modality_top_tokens.update(
                                              +                        dict(zip([(modality, token) for token in top_tokens], top_tokens_values))
                                              +                    )
                                              +
                                              +            topic_top_tokens[topic_name] = modality_top_tokens
                                              +
                                              +        return topic_top_tokens
                                              +
                                              +    def to_html(
                                              +            self,
                                              +            topic_top_tokens=None,
                                              +            topic_names: List[str] = None,
                                              +            digits: int = 5,
                                              +            thresh: float = None) -> str:
                                              +        """
                                              +        Generates html version of dataframes to be displayed by Jupyter notebooks
                                              +
                                              +        Parameters
                                              +        ----------
                                              +        topic_top_tokens : dict of dicts [Deprecated]
                                              +            Dict where first level keys are topic names
                                              +            Second level keys are modalities
                                              +            Third level keys are tokens with their scores as float values
                                              +        topic_names : list of strings
                                              +            Initial dictionary keys
                                              +        digits : int
                                              +            Number of digits to round each probability to
                                              +        thresh : float [Deprecated]
                                              +            Threshold used for calculating `digits` and throwing out too low probabilities
                                              +
                                              +        Examples
                                              +        --------
                                              +        >>> from IPython.display import HTML, display_html
                                              +        >>>
                                              +        >>> # model training here
                                              +        >>> # ...
                                              +        >>> viewer = TopTokensViewer(model)
                                              +        >>> display_html(viewer.to_html(), raw=True)
                                              +        >>> # or
                                              +        >>> HTML(viewer.to_html())
                                              +        """
                                              +        if topic_top_tokens is not None:  # TODO: remove topic_top_tokens some day
                                              +            warnings.warn(
                                              +                'Don\'t specify `topic_top_tokens` in `to_html()`',
                                              +                DeprecationWarning
                                              +            )
                                              +
                                              +            if topic_names is not None:
                                              +                topic_names = [t for t in topic_names if t in topic_top_tokens.keys()]
                                              +
                                              +        if thresh is not None:  # TODO: remove thresh some day
                                              +            warnings.warn(
                                              +                'Don\'t specify `thresh` in `to_html()` anymore, use `digits`',
                                              +                DeprecationWarning
                                              +            )
                                              +
                                              +            digits = int(-np.log10(thresh))
                                              +
                                              +        df = self.to_df(topic_names, digits)
                                              +
                                              +        if len(df) > 0:
                                              +            df.index = df.index.str.replace('<', '&lt;').str.replace('>', '&gt;')
                                              +
                                              +        # TODO: check why this better than plain df.to_html()
                                              +        return df.style\
                                              +            .set_table_attributes("style='display:inline'")\
                                              +            ._repr_html_()
                                              +
                                              +    def to_df(self, topic_names: Iterator[str] = None, digits: int = 5) -> pd.DataFrame:
                                              +        topic_top_tokens = self.view(three_levels=False)
                                              +
                                              +        if topic_names is not None:
                                              +            topic_top_tokens = {
                                              +                topic: tokens for topic, tokens in topic_top_tokens.items()
                                              +                if topic in topic_names
                                              +            }
                                              +
                                              +        if not isinstance(digits, int):
                                              +            warnings.warn(
                                              +                f'Need "int" digits. '
                                              +                f'Casting given value "{digits}" of type "{type(digits)}" to int'
                                              +            )
                                              +
                                              +            digits = int(digits)
                                              +
                                              +        return self._to_df(topic_top_tokens, digits)
                                              +
                                              +    @staticmethod
                                              +    def _to_df(
                                              +            topic_top_tokens: Dict[str, Dict[Tuple[str, str], float]],
                                              +            digits: int) -> pd.DataFrame:
                                              +
                                              +        df = pd.DataFrame.from_dict(topic_top_tokens).round(digits)
                                              +
                                              +        df.index = pd.MultiIndex.from_tuples(
                                              +            df.index,
                                              +            names=['modality', 'token']  # TODO: names should be the same as in TopicModel's Phi?
                                              +        )
                                              +
                                              +        df.fillna(0.0, inplace=True)
                                              +
                                              +        return df
                                              +
                                              @@ -43,6 +550,41 @@

                                              Returns

                                              score : pd.DataFrame
                                              weighted phi matrix
                                              +
                                              + +Expand source code + +
                                              def compute_blei_scores(phi):
                                              +    """
                                              +    Computes Blei score  
                                              +    phi[wt] * [log(phi[wt]) - 1/T sum_k log(phi[wk])]
                                              +
                                              +    Parameters
                                              +    ----------
                                              +    phi : pd.DataFrame
                                              +        phi matrix of the model
                                              +
                                              +    Returns
                                              +    -------
                                              +    score : pd.DataFrame
                                              +        weighted phi matrix
                                              +
                                              +    """  # noqa: W291
                                              +
                                              +    topic_number = phi.shape[0]
                                              +    blei_eps = 1e-42
                                              +    log_phi = np.log(phi + blei_eps)
                                              +    denominator = np.sum(log_phi, axis=0)
                                              +    denominator = denominator[np.newaxis, :]
                                              +
                                              +    if hasattr(log_phi, "values"):
                                              +        multiplier = log_phi.values - denominator / topic_number
                                              +    else:
                                              +        multiplier = log_phi - denominator / topic_number
                                              +
                                              +    score = (phi * multiplier).transpose()
                                              +    return score
                                              +
                                              def compute_clusters_top_tokens_by_clusters_tfidf(objects_cluster, objects_content, max_top_number=10, n_topics=None) @@ -69,6 +611,79 @@

                                              Returns

                                              clusters_top_tokens : list of list of str:
                                              ith element of list is list of top tokens of ith cluster
                                              +
                                              + +Expand source code + +
                                              def compute_clusters_top_tokens_by_clusters_tfidf(
                                              +        objects_cluster, objects_content,
                                              +        max_top_number=10, n_topics=None):
                                              +    """
                                              +    Function for document-like clusters.  
                                              +    For each cluster compute top tokens of cluster. Top tokens are defined by tf-idf scheme.
                                              +    Tf-idf is computed as if clusters is concatenation of all it documents.
                                              +
                                              +    Parameters
                                              +    ----------
                                              +    objects_cluster : list of int
                                              +        ith element of list is cluster of ith object
                                              +    objects_content : list of list of str
                                              +        each element is sequence of tokens
                                              +    max_top_number : int
                                              +        maximum number of top tokens of cluster (resulting number can be less than it) 
                                              +        (Default value = 10)
                                              +    n_topics : int
                                              +        number of topics in model (Default value = None) 
                                              +        if None than it will be calculated automatically from object_clusters
                                              +
                                              +    Returns
                                              +    -------
                                              +    clusters_top_tokens : list of list of str:
                                              +        ith element of list is list of top tokens of ith cluster
                                              +
                                              +    """  # noqa: W291
                                              +    # TODO: check type of cluster_content, raise Error if it has spaces in it
                                              +
                                              +    n_topics = (
                                              +        n_topics if n_topics is not None
                                              +        else max(objects_cluster) + 1
                                              +    )
                                              +
                                              +    cluster_tokens = {
                                              +        num_cluster: []
                                              +        for num_cluster in range(n_topics)
                                              +    }
                                              +
                                              +    for object_cluster, object_content in zip(objects_cluster, objects_content):
                                              +        cluster_tokens[object_cluster] += object_content
                                              +
                                              +    cluster_tokens = [
                                              +        cluster_content
                                              +        for cluster_label, cluster_content in sorted(cluster_tokens.items(), key=lambda x: x[0])
                                              +    ]
                                              +
                                              +    vectorizer = TfidfVectorizer(tokenizer=lambda x: x, lowercase=False)
                                              +    tfidf_array = vectorizer.fit_transform(cluster_tokens).toarray()
                                              +    index_to_word = [
                                              +        word
                                              +        for word, index in sorted(vectorizer.vocabulary_.items(), key=lambda x:x[1])
                                              +    ]
                                              +
                                              +    cluster_top_tokens_indexes = (
                                              +        tfidf_array
                                              +        .argsort(axis=1)[:, tfidf_array.shape[1] - max_top_number:]
                                              +    )
                                              +
                                              +    cluster_top_tokens = []
                                              +    for cluster_label, cluster_top_tokens_indexes in enumerate(cluster_top_tokens_indexes):
                                              +        cluster_top_tokens += [
                                              +            (index_to_word[index], tfidf_array[cluster_label, index])
                                              +            for index in cluster_top_tokens_indexes[::-1]
                                              +            if tfidf_array[cluster_label, index] != 0
                                              +        ]
                                              +
                                              +    return cluster_top_tokens
                                              +
                                              def compute_joint_pwt_distribution(phi, p_t) @@ -91,6 +706,35 @@

                                              Returns

                                              array of probabilities that a fixed token from the collection belongs to that topic
                                              +
                                              + +Expand source code + +
                                              def compute_joint_pwt_distribution(phi, p_t):
                                              +    """
                                              +    p(t) is prob(topic = t), defined as p(t) = sum_t n_t / n  
                                              +
                                              +    if we fix some word w, we can calculate weighted_pk:  
                                              +    wp_t = p(t) p(w|t)
                                              +
                                              +    Parameters
                                              +    ----------
                                              +    phi : pd.Dataframe
                                              +        phi matrix of the model
                                              +    p_t : np.array of float
                                              +        probability that a random token from the collection belongs to that topic
                                              +
                                              +    Returns
                                              +    -------
                                              +    joint_pwt : np.array of float
                                              +        array of probabilities that a fixed token from the collection
                                              +        belongs to that topic
                                              +
                                              +    """  # noqa: W291
                                              +
                                              +    joint_pwt = p_t[:, np.newaxis] * phi.transpose()
                                              +    return joint_pwt
                                              +
                                              def compute_likelihood_vectorised(phi, p_t, joint_pwt) @@ -119,6 +763,54 @@

                                              Returns

                                              target_values : np.array of float
                                              vector of likelihood ratios that tokens belong to the given topic
                                              +
                                              + +Expand source code + +
                                              def compute_likelihood_vectorised(phi, p_t, joint_pwt):
                                              +    """
                                              +    Likelihood ratio is defined as  
                                              +        L = phi_wt / sum_k p(k)/p(!t) phi_wk  
                                              +    equivalently:  
                                              +        L = phi_wt * p(!t) / sum_k!=t p(k) phi_wk  
                                              +    after some numpy magic, you can get:  
                                              +        L = phi[topic, id] * (1 - p_t[topic]) / {(sum(joined_pwt) - joined_pwt[topic])}  
                                              +    numerator and denominator are calculated separately.  
                                              +
                                              +    Parameters
                                              +    ----------
                                              +    phi : pd.Dataframe
                                              +        phi matrix of the model
                                              +    p_t : np.array of float
                                              +        probability that a random token from the collection belongs to that topic
                                              +    joint_pwt : np.array of float
                                              +        array of probabilities that a fixed token from the collection
                                              +        belongs to that topic
                                              +
                                              +    Returns
                                              +    -------
                                              +    target_values : np.array of float
                                              +        vector of likelihood ratios that tokens belong to the given topic
                                              +
                                              +    """  # noqa: W291
                                              +    # if phi and joint_pwt are DataFrame, then
                                              +    # denominator will have the same Index/Columns as them
                                              +    # TODO: check equality
                                              +    denominator = (np.sum(joint_pwt, axis=0) - joint_pwt)
                                              +    multiplier = (1 - p_t)[:, np.newaxis]
                                              +    if hasattr(phi, "values"):
                                              +        numerator = phi.values.transpose() * multiplier
                                              +    else:
                                              +        numerator = phi.transpose() * multiplier
                                              +
                                              +    bad_indices = (denominator == 0)
                                              +    denominator[bad_indices] = 1
                                              +    target_values = numerator / denominator
                                              +
                                              +    # infinite likelihood ratios aren't interesting
                                              +    target_values[bad_indices] = float("-inf")
                                              +    return target_values
                                              +
                                              def compute_pt_distribution(model, class_ids=None) @@ -138,12 +830,48 @@

                                              Returns

                                              float
                                              probability that a random token from the collection belongs to that topic
                                              +
                                              + +Expand source code + +
                                              def compute_pt_distribution(model, class_ids=None):
                                              +    """
                                              +    Calculates the Prob(t) vector (vector contains an entry for each topic).
                                              +
                                              +    Parameters
                                              +    ----------
                                              +    model : TopicModel
                                              +        model under the scope
                                              +    class_ids : list of str or None
                                              +        list of modalities to consider, which takes all modalities in the model
                                              +        (Default value = None)
                                              +
                                              +    Returns
                                              +    -------
                                              +    float
                                              +        probability that a random token from the collection belongs to that topic
                                              +
                                              +    """
                                              +
                                              +    n_wt = model.get_phi(class_ids=class_ids, model_name=model.model_nwt)
                                              +    n_t = n_wt.sum(axis=0)  # sum over all words
                                              +    # TODO: maybe this is not P(t)
                                              +    #  P(t) means prior P()? here using info from model, so not P(t), more like P(t | model)
                                              +    return n_t / n_t.sum()
                                              +
                                              def compute_ptw(joint_pwt)
                                              +
                                              + +Expand source code + +
                                              def compute_ptw(joint_pwt):
                                              +    return joint_pwt / np.sum(joint_pwt, axis=0)  # sum by all T
                                              +
                                              def get_top_values(values, top_number, return_indexes=True) @@ -166,6 +894,52 @@

                                              Returns

                                              (optional) top_indexes : nd.array array of original indexes for top_values array (Default value = True)

                                              +
                                              + +Expand source code + +
                                              def get_top_values(values, top_number, return_indexes=True):
                                              +    """
                                              +    Returns top_number top values from the matrix for each column.
                                              +
                                              +    Parameters
                                              +    ----------
                                              +    values : np.array
                                              +        a two dimensional array of values
                                              +    top_number : int
                                              +        number of top values to return
                                              +    return_indexes : bool
                                              +        a flag to return indexes together with the top values
                                              +
                                              +    Returns
                                              +    -------
                                              +    top_values : nd.array
                                              +        array of top_number top values for each column of the initial array
                                              +    (optional) top_indexes : nd.array
                                              +        array of original indexes for top_values array (Default value = True)
                                              +
                                              +    """
                                              +    if top_number > len(values):
                                              +        top_number = len(values)
                                              +        warnings.warn('num_top_tokens greater than modality size', UserWarning)
                                              +
                                              +    top_indexes = np.argpartition(
                                              +        values, len(values) - top_number
                                              +    )[-top_number:]
                                              +
                                              +    top_values = values[top_indexes]
                                              +    sorted_top_values_indexes = top_values.argsort()[::-1]
                                              +
                                              +    top_values = top_values[sorted_top_values_indexes]
                                              +
                                              +    # get initial indexes
                                              +    top_indexes = top_indexes[sorted_top_values_indexes]
                                              +
                                              +    if return_indexes:
                                              +        return top_values, top_indexes
                                              +
                                              +    return top_values
                                              +
                                              @@ -201,6 +975,257 @@

                                              Parameters

                                              dataset : Dataset
                                              a class that stores infromation about the collection
                                              +
                                              + +Expand source code + +
                                              class TopTokensViewer(BaseViewer):
                                              +    """Gets top tokens from topic (sorted by scores)"""
                                              +    def __init__(self,
                                              +                 model,
                                              +                 class_ids=None,
                                              +                 method='blei',
                                              +                 num_top_tokens=10,
                                              +                 alpha=1,
                                              +                 dataset=None):
                                              +        """
                                              +        The class provide information about top tokens 
                                              +        of the model topics providing with different methods to score that.
                                              +
                                              +        Parameters
                                              +        ----------
                                              +        model : TopicModel
                                              +            a class of topic model
                                              +        class_ids : list of int
                                              +            class ids for documents in topic needed only for tfidf method
                                              +        method : str
                                              +            method to score the topics could be any of
                                              +            top, phi - top tokens by probability in topic  
                                              +            blei - some magical Blei article score  
                                              +            tfidf - Term Frequency inversed Document Frequency  
                                              +            likelihood - Likelihood ratio score  
                                              +            ptw - something like likelihood  
                                              +        num_top_tokens : int
                                              +            number of top tokens to provide for each topic
                                              +        alpha : float between 0 and 1
                                              +            additional constant needed for
                                              +            ptw method of scoring
                                              +        dataset: Dataset
                                              +            a class that stores infromation about the collection
                                              +
                                              +        """  # noqa: W291
                                              +        known = ['top', 'phi', 'blei', 'tfidf', 'likelihood', 'ptw']
                                              +
                                              +        super().__init__(model=model)
                                              +
                                              +        self.num_top_tokens = num_top_tokens
                                              +        self.class_ids = class_ids
                                              +
                                              +        if method in known:
                                              +            self.method = method
                                              +        else:
                                              +            raise ValueError(f'method {method} is not known')
                                              +
                                              +        self.alpha = alpha
                                              +        self._dataset = dataset
                                              +
                                              +    def _get_target_values(self, phi):
                                              +        """
                                              +        Precomputes various model scores
                                              +        """
                                              +        if self.method == 'blei':
                                              +            return compute_blei_scores(phi)
                                              +
                                              +        elif self.method in ['top', 'phi']:
                                              +            return phi.transpose()
                                              +
                                              +        elif self.method in ['ptw', 'likelihood']:
                                              +            p_t = compute_pt_distribution(self._model)
                                              +            joint_pwt = compute_joint_pwt_distribution(phi, p_t)
                                              +
                                              +            if self.method == 'likelihood':
                                              +                return compute_likelihood_vectorised(phi, p_t, joint_pwt)
                                              +
                                              +            elif self.method == 'ptw':
                                              +                ptw_vector = compute_ptw(joint_pwt)
                                              +                ptw_component = self.alpha * ptw_vector
                                              +                phi_component = (1 - self.alpha) * phi.transpose()
                                              +
                                              +                return ptw_component + phi_component
                                              +
                                              +    def view(
                                              +            self,
                                              +            class_ids: List[str] = None,
                                              +            raw_data: List[List[str]] = None,
                                              +            three_levels: bool = True
                                              +    ) -> Union[Dict[str, Dict[str, Dict[str, float]]],
                                              +               Dict[str, Dict[Tuple[str, str], float]]]:
                                              +        """
                                              +        Returns list of tuples (token, score) for each topic in the model.
                                              +
                                              +        Parameters
                                              +        ----------
                                              +        class_ids
                                              +            Modalities from which to retrieve top tokens
                                              +        raw_data : list of list of str
                                              +            Necessary for 'tfidf' option
                                              +        three_levels
                                              +            If true, three level dict will be returned, otherwise — two level one
                                              +        returns
                                              +        -------
                                              +        topic_top_tokens : nested 3 or 2-level dict
                                              +            Topic -> Modality -> Token -> Probability or
                                              +            Topic -> (Modality, Token) -> Probability
                                              +
                                              +        """
                                              +        if class_ids is None:
                                              +            class_ids = self.class_ids
                                              +
                                              +        phi = self.model.get_phi(class_ids=class_ids)
                                              +
                                              +        if self.method == 'tfidf':
                                              +            objects_cluster = (
                                              +                self._model
                                              +                .get_theta(dataset=self._dataset)
                                              +                .values
                                              +                .argmax(axis=0)
                                              +            )
                                              +            top_tokens_sorted = compute_clusters_top_tokens_by_clusters_tfidf(
                                              +                objects_cluster, raw_data
                                              +            )
                                              +
                                              +            return top_tokens_sorted
                                              +
                                              +        target_values = self._get_target_values(phi)
                                              +
                                              +        phi = target_values.T
                                              +        phi.index = pd.MultiIndex.from_tuples(phi.index)
                                              +        topic_names = phi.columns.values
                                              +
                                              +        if self.class_ids is None:
                                              +            modalities = phi.index.levels[0].values
                                              +        else:
                                              +            modalities = self.class_ids
                                              +
                                              +        topic_top_tokens = {}
                                              +
                                              +        for topic_name in topic_names:
                                              +            topic_column = phi[topic_name]
                                              +            modality_top_tokens = {}
                                              +
                                              +            for modality in modalities:
                                              +                top_tokens_values, top_tokens_indexes = get_top_values(
                                              +                    topic_column.loc[modality].values,
                                              +                    top_number=self.num_top_tokens,
                                              +                )
                                              +                top_tokens = topic_column.loc[modality].index[top_tokens_indexes]
                                              +
                                              +                if three_levels:
                                              +                    modality_top_tokens[modality] = dict(zip(top_tokens, top_tokens_values))
                                              +                else:
                                              +                    modality_top_tokens.update(
                                              +                        dict(zip([(modality, token) for token in top_tokens], top_tokens_values))
                                              +                    )
                                              +
                                              +            topic_top_tokens[topic_name] = modality_top_tokens
                                              +
                                              +        return topic_top_tokens
                                              +
                                              +    def to_html(
                                              +            self,
                                              +            topic_top_tokens=None,
                                              +            topic_names: List[str] = None,
                                              +            digits: int = 5,
                                              +            thresh: float = None) -> str:
                                              +        """
                                              +        Generates html version of dataframes to be displayed by Jupyter notebooks
                                              +
                                              +        Parameters
                                              +        ----------
                                              +        topic_top_tokens : dict of dicts [Deprecated]
                                              +            Dict where first level keys are topic names
                                              +            Second level keys are modalities
                                              +            Third level keys are tokens with their scores as float values
                                              +        topic_names : list of strings
                                              +            Initial dictionary keys
                                              +        digits : int
                                              +            Number of digits to round each probability to
                                              +        thresh : float [Deprecated]
                                              +            Threshold used for calculating `digits` and throwing out too low probabilities
                                              +
                                              +        Examples
                                              +        --------
                                              +        >>> from IPython.display import HTML, display_html
                                              +        >>>
                                              +        >>> # model training here
                                              +        >>> # ...
                                              +        >>> viewer = TopTokensViewer(model)
                                              +        >>> display_html(viewer.to_html(), raw=True)
                                              +        >>> # or
                                              +        >>> HTML(viewer.to_html())
                                              +        """
                                              +        if topic_top_tokens is not None:  # TODO: remove topic_top_tokens some day
                                              +            warnings.warn(
                                              +                'Don\'t specify `topic_top_tokens` in `to_html()`',
                                              +                DeprecationWarning
                                              +            )
                                              +
                                              +            if topic_names is not None:
                                              +                topic_names = [t for t in topic_names if t in topic_top_tokens.keys()]
                                              +
                                              +        if thresh is not None:  # TODO: remove thresh some day
                                              +            warnings.warn(
                                              +                'Don\'t specify `thresh` in `to_html()` anymore, use `digits`',
                                              +                DeprecationWarning
                                              +            )
                                              +
                                              +            digits = int(-np.log10(thresh))
                                              +
                                              +        df = self.to_df(topic_names, digits)
                                              +
                                              +        if len(df) > 0:
                                              +            df.index = df.index.str.replace('<', '&lt;').str.replace('>', '&gt;')
                                              +
                                              +        # TODO: check why this better than plain df.to_html()
                                              +        return df.style\
                                              +            .set_table_attributes("style='display:inline'")\
                                              +            ._repr_html_()
                                              +
                                              +    def to_df(self, topic_names: Iterator[str] = None, digits: int = 5) -> pd.DataFrame:
                                              +        topic_top_tokens = self.view(three_levels=False)
                                              +
                                              +        if topic_names is not None:
                                              +            topic_top_tokens = {
                                              +                topic: tokens for topic, tokens in topic_top_tokens.items()
                                              +                if topic in topic_names
                                              +            }
                                              +
                                              +        if not isinstance(digits, int):
                                              +            warnings.warn(
                                              +                f'Need "int" digits. '
                                              +                f'Casting given value "{digits}" of type "{type(digits)}" to int'
                                              +            )
                                              +
                                              +            digits = int(digits)
                                              +
                                              +        return self._to_df(topic_top_tokens, digits)
                                              +
                                              +    @staticmethod
                                              +    def _to_df(
                                              +            topic_top_tokens: Dict[str, Dict[Tuple[str, str], float]],
                                              +            digits: int) -> pd.DataFrame:
                                              +
                                              +        df = pd.DataFrame.from_dict(topic_top_tokens).round(digits)
                                              +
                                              +        df.index = pd.MultiIndex.from_tuples(
                                              +            df.index,
                                              +            names=['modality', 'token']  # TODO: names should be the same as in TopicModel's Phi?
                                              +        )
                                              +
                                              +        df.fillna(0.0, inplace=True)
                                              +
                                              +        return df
                                              +

                                              Ancestors

                                              • BaseViewer
                                              • @@ -212,6 +1237,29 @@

                                                Methods

                                                +
                                                + +Expand source code + +
                                                def to_df(self, topic_names: Iterator[str] = None, digits: int = 5) -> pd.DataFrame:
                                                +    topic_top_tokens = self.view(three_levels=False)
                                                +
                                                +    if topic_names is not None:
                                                +        topic_top_tokens = {
                                                +            topic: tokens for topic, tokens in topic_top_tokens.items()
                                                +            if topic in topic_names
                                                +        }
                                                +
                                                +    if not isinstance(digits, int):
                                                +        warnings.warn(
                                                +            f'Need "int" digits. '
                                                +            f'Casting given value "{digits}" of type "{type(digits)}" to int'
                                                +        )
                                                +
                                                +        digits = int(digits)
                                                +
                                                +    return self._to_df(topic_top_tokens, digits)
                                                +
                                                def to_html(self, topic_top_tokens=None, topic_names=None, digits=5, thresh=None) @@ -241,6 +1289,70 @@

                                                Examples

                                                >>> # or >>> HTML(viewer.to_html())
                                                +
                                                + +Expand source code + +
                                                def to_html(
                                                +        self,
                                                +        topic_top_tokens=None,
                                                +        topic_names: List[str] = None,
                                                +        digits: int = 5,
                                                +        thresh: float = None) -> str:
                                                +    """
                                                +    Generates html version of dataframes to be displayed by Jupyter notebooks
                                                +
                                                +    Parameters
                                                +    ----------
                                                +    topic_top_tokens : dict of dicts [Deprecated]
                                                +        Dict where first level keys are topic names
                                                +        Second level keys are modalities
                                                +        Third level keys are tokens with their scores as float values
                                                +    topic_names : list of strings
                                                +        Initial dictionary keys
                                                +    digits : int
                                                +        Number of digits to round each probability to
                                                +    thresh : float [Deprecated]
                                                +        Threshold used for calculating `digits` and throwing out too low probabilities
                                                +
                                                +    Examples
                                                +    --------
                                                +    >>> from IPython.display import HTML, display_html
                                                +    >>>
                                                +    >>> # model training here
                                                +    >>> # ...
                                                +    >>> viewer = TopTokensViewer(model)
                                                +    >>> display_html(viewer.to_html(), raw=True)
                                                +    >>> # or
                                                +    >>> HTML(viewer.to_html())
                                                +    """
                                                +    if topic_top_tokens is not None:  # TODO: remove topic_top_tokens some day
                                                +        warnings.warn(
                                                +            'Don\'t specify `topic_top_tokens` in `to_html()`',
                                                +            DeprecationWarning
                                                +        )
                                                +
                                                +        if topic_names is not None:
                                                +            topic_names = [t for t in topic_names if t in topic_top_tokens.keys()]
                                                +
                                                +    if thresh is not None:  # TODO: remove thresh some day
                                                +        warnings.warn(
                                                +            'Don\'t specify `thresh` in `to_html()` anymore, use `digits`',
                                                +            DeprecationWarning
                                                +        )
                                                +
                                                +        digits = int(-np.log10(thresh))
                                                +
                                                +    df = self.to_df(topic_names, digits)
                                                +
                                                +    if len(df) > 0:
                                                +        df.index = df.index.str.replace('<', '&lt;').str.replace('>', '&gt;')
                                                +
                                                +    # TODO: check why this better than plain df.to_html()
                                                +    return df.style\
                                                +        .set_table_attributes("style='display:inline'")\
                                                +        ._repr_html_()
                                                +
                                                def view(self, class_ids=None, raw_data=None, three_levels=True) @@ -262,6 +1374,88 @@

                                                returns

                                                Topic -> Modality -> Token -> Probability or Topic -> (Modality, Token) -> Probability
                                                +
                                                + +Expand source code + +
                                                def view(
                                                +        self,
                                                +        class_ids: List[str] = None,
                                                +        raw_data: List[List[str]] = None,
                                                +        three_levels: bool = True
                                                +) -> Union[Dict[str, Dict[str, Dict[str, float]]],
                                                +           Dict[str, Dict[Tuple[str, str], float]]]:
                                                +    """
                                                +    Returns list of tuples (token, score) for each topic in the model.
                                                +
                                                +    Parameters
                                                +    ----------
                                                +    class_ids
                                                +        Modalities from which to retrieve top tokens
                                                +    raw_data : list of list of str
                                                +        Necessary for 'tfidf' option
                                                +    three_levels
                                                +        If true, three level dict will be returned, otherwise — two level one
                                                +    returns
                                                +    -------
                                                +    topic_top_tokens : nested 3 or 2-level dict
                                                +        Topic -> Modality -> Token -> Probability or
                                                +        Topic -> (Modality, Token) -> Probability
                                                +
                                                +    """
                                                +    if class_ids is None:
                                                +        class_ids = self.class_ids
                                                +
                                                +    phi = self.model.get_phi(class_ids=class_ids)
                                                +
                                                +    if self.method == 'tfidf':
                                                +        objects_cluster = (
                                                +            self._model
                                                +            .get_theta(dataset=self._dataset)
                                                +            .values
                                                +            .argmax(axis=0)
                                                +        )
                                                +        top_tokens_sorted = compute_clusters_top_tokens_by_clusters_tfidf(
                                                +            objects_cluster, raw_data
                                                +        )
                                                +
                                                +        return top_tokens_sorted
                                                +
                                                +    target_values = self._get_target_values(phi)
                                                +
                                                +    phi = target_values.T
                                                +    phi.index = pd.MultiIndex.from_tuples(phi.index)
                                                +    topic_names = phi.columns.values
                                                +
                                                +    if self.class_ids is None:
                                                +        modalities = phi.index.levels[0].values
                                                +    else:
                                                +        modalities = self.class_ids
                                                +
                                                +    topic_top_tokens = {}
                                                +
                                                +    for topic_name in topic_names:
                                                +        topic_column = phi[topic_name]
                                                +        modality_top_tokens = {}
                                                +
                                                +        for modality in modalities:
                                                +            top_tokens_values, top_tokens_indexes = get_top_values(
                                                +                topic_column.loc[modality].values,
                                                +                top_number=self.num_top_tokens,
                                                +            )
                                                +            top_tokens = topic_column.loc[modality].index[top_tokens_indexes]
                                                +
                                                +            if three_levels:
                                                +                modality_top_tokens[modality] = dict(zip(top_tokens, top_tokens_values))
                                                +            else:
                                                +                modality_top_tokens.update(
                                                +                    dict(zip([(modality, token) for token in top_tokens], top_tokens_values))
                                                +                )
                                                +
                                                +        topic_top_tokens[topic_name] = modality_top_tokens
                                                +
                                                +    return topic_top_tokens
                                                +
                                                @@ -306,7 +1500,9 @@

                                                -

                                                Generated by pdoc 0.6.3.

                                                +

                                                Generated by pdoc 0.7.2.

                                                + + \ No newline at end of file diff --git a/docs/viewers/topic_flow_viewer.html b/docs/viewers/topic_flow_viewer.html index e43fed6..159ce52 100644 --- a/docs/viewers/topic_flow_viewer.html +++ b/docs/viewers/topic_flow_viewer.html @@ -3,12 +3,13 @@ - + topicnet.viewers.topic_flow_viewer API documentation - + + @@ -19,6 +20,152 @@

                                                Module topicnet.viewers.topic_flow_viewer

                                                +
                                                + +Expand source code + +
                                                import numpy as np
                                                +import plotly.graph_objects as go
                                                +import artm
                                                +from .base_viewer import BaseViewer
                                                +from .top_tokens_viewer import TopTokensViewer
                                                +
                                                +
                                                +class TopicFlowViewer(BaseViewer):
                                                +    """
                                                +    Viewer to show trending topics over time.
                                                +    """
                                                +    def __init__(self, model, time_labels,
                                                +                 dataset,
                                                +                 modality='@lemmatized',
                                                +                 sort_key_function=None):
                                                +        """
                                                +        Parameters
                                                +        ----------
                                                +        model : TopicModel
                                                +            an instance of topic model class
                                                +        time_labels : list of numbers
                                                +            time label that supports comparrison for each document
                                                +        dataset : Dataset
                                                +            dataset used for model training (is used to compute nwd here)
                                                +        modality : str
                                                +            model's modality for topics description
                                                +        sort_key_function : Function
                                                +            function that can be used with python sorted
                                                +        """
                                                +        super().__init__(model)
                                                +        self.dataset = dataset
                                                +
                                                +        theta = model.get_theta()
                                                +        self.unique_time_labels = sorted(np.unique(time_labels))
                                                +
                                                +        attached_model_nwt = model._model.master.attach_model('nwt')
                                                +        nt = np.sum(attached_model_nwt[1], axis=0)
                                                +        nd = self.compute_nd(theta.shape[1])
                                                +
                                                +        scaled_theta = theta.values * nd.reshape(1, -1)
                                                +        self.topic_values = np.zeros((theta.shape[0], len(self.unique_time_labels)))
                                                +        for time_ind, t in enumerate(self.unique_time_labels):
                                                +            indices = np.argwhere(time_labels == t)
                                                +            self.topic_values[:, time_ind] = (
                                                +                np.sum(scaled_theta[:, indices] / np.array(nt).reshape(-1, 1), axis=1)
                                                +            )
                                                +        self.topic_tokens_str = self.compute_top_tokens(model, modality)
                                                +
                                                +    def compute_nd(self, number_of_docs):
                                                +        """
                                                +        Compute number of tokens in each document from dataset.
                                                +
                                                +        Parameters
                                                +        ----------
                                                +        number_of_docs : int
                                                +            number of documents in theta
                                                +        """
                                                +        batches_list = self.dataset.get_batch_vectorizer().batches_ids
                                                +        nd = np.zeros(number_of_docs)
                                                +
                                                +        current_doc = 0
                                                +        for batch_path in batches_list:
                                                +            batch = artm.messages.Batch()
                                                +
                                                +            with open(batch_path, "rb") as f:
                                                +                batch.ParseFromString(f.read())
                                                +
                                                +            for item in batch.item:
                                                +                doc_number_of_words = 0
                                                +                for (token_id, token_weight) in zip(item.token_id, item.token_weight):
                                                +                    doc_number_of_words += token_weight
                                                +                nd[current_doc] = doc_number_of_words
                                                +                current_doc += 1
                                                +        return nd
                                                +
                                                +    def compute_top_tokens(self, model, modality):
                                                +        """
                                                +        Function for top tokens extraction.
                                                +
                                                +        Parameters:
                                                +        ----------
                                                +        model : TopicModel
                                                +        modality : str
                                                +            modality for topic representation
                                                +        """
                                                +        top_tokens_viewer = TopTokensViewer(model)
                                                +        top_tokens_dict = top_tokens_viewer.view()
                                                +        topic_tokens_str = {}
                                                +        for topic, value in top_tokens_dict.items():
                                                +            topic_tokens_str[topic] = '<br>'.join(value[modality].keys())
                                                +        return topic_tokens_str
                                                +
                                                +    def plot(self, topics, significance_threshold=1e-2):
                                                +        """
                                                +        Function for plotly graph building.
                                                +
                                                +        Parameters
                                                +        ----------
                                                +        topics : list of int
                                                +            topics that need to be visualized
                                                +        significance_threshold : float
                                                +            plot ignores values lower than threshold
                                                +        """
                                                +        fig = go.Figure()
                                                +
                                                +        for t in topics:
                                                +            fig.add_trace(go.Scatter(x=np.arange(len(self.unique_time_labels)),
                                                +                                     y=[
                                                +                                         value if value > significance_threshold
                                                +                                         else None
                                                +                                         for value in self.topic_values[t, :]
                                                +                                     ],
                                                +                                     text=self.topic_tokens_str[f'topic_{t}'],
                                                +                                     hoverinfo='text',
                                                +                                     mode=None,
                                                +                                     hoveron='points+fills',
                                                +                                     fill='tozeroy',
                                                +                                     name=f'topic_{t}'))
                                                +
                                                +        fig.update_layout(
                                                +            title='Trending Topics Over Time',
                                                +            title_font_size=30,
                                                +            autosize=True,
                                                +            paper_bgcolor='LightSteelBlue'
                                                +        )
                                                +
                                                +        fig.update_xaxes(title_text='Time',
                                                +                         tickvals=np.arange(len(self.unique_time_labels))[::4],
                                                +                         ticktext=self.unique_time_labels[::4])
                                                +        fig.update_yaxes(title_text='Value')
                                                +        fig.show()
                                                +
                                                +    def view(self, topic_names=None):
                                                +        """
                                                +        Parameters
                                                +        ----------
                                                +        topic_names : list of str
                                                +            topics that user wants to see on plot
                                                +        """
                                                +        topics = list(map(lambda x: int(x.split('_')[1]), topic_names))
                                                +        self.plot(topics)
                                                +
                                                @@ -48,6 +195,145 @@

                                                Parameters

                                                sort_key_function : Function
                                                function that can be used with python sorted
                                                +
                                                + +Expand source code + +
                                                class TopicFlowViewer(BaseViewer):
                                                +    """
                                                +    Viewer to show trending topics over time.
                                                +    """
                                                +    def __init__(self, model, time_labels,
                                                +                 dataset,
                                                +                 modality='@lemmatized',
                                                +                 sort_key_function=None):
                                                +        """
                                                +        Parameters
                                                +        ----------
                                                +        model : TopicModel
                                                +            an instance of topic model class
                                                +        time_labels : list of numbers
                                                +            time label that supports comparrison for each document
                                                +        dataset : Dataset
                                                +            dataset used for model training (is used to compute nwd here)
                                                +        modality : str
                                                +            model's modality for topics description
                                                +        sort_key_function : Function
                                                +            function that can be used with python sorted
                                                +        """
                                                +        super().__init__(model)
                                                +        self.dataset = dataset
                                                +
                                                +        theta = model.get_theta()
                                                +        self.unique_time_labels = sorted(np.unique(time_labels))
                                                +
                                                +        attached_model_nwt = model._model.master.attach_model('nwt')
                                                +        nt = np.sum(attached_model_nwt[1], axis=0)
                                                +        nd = self.compute_nd(theta.shape[1])
                                                +
                                                +        scaled_theta = theta.values * nd.reshape(1, -1)
                                                +        self.topic_values = np.zeros((theta.shape[0], len(self.unique_time_labels)))
                                                +        for time_ind, t in enumerate(self.unique_time_labels):
                                                +            indices = np.argwhere(time_labels == t)
                                                +            self.topic_values[:, time_ind] = (
                                                +                np.sum(scaled_theta[:, indices] / np.array(nt).reshape(-1, 1), axis=1)
                                                +            )
                                                +        self.topic_tokens_str = self.compute_top_tokens(model, modality)
                                                +
                                                +    def compute_nd(self, number_of_docs):
                                                +        """
                                                +        Compute number of tokens in each document from dataset.
                                                +
                                                +        Parameters
                                                +        ----------
                                                +        number_of_docs : int
                                                +            number of documents in theta
                                                +        """
                                                +        batches_list = self.dataset.get_batch_vectorizer().batches_ids
                                                +        nd = np.zeros(number_of_docs)
                                                +
                                                +        current_doc = 0
                                                +        for batch_path in batches_list:
                                                +            batch = artm.messages.Batch()
                                                +
                                                +            with open(batch_path, "rb") as f:
                                                +                batch.ParseFromString(f.read())
                                                +
                                                +            for item in batch.item:
                                                +                doc_number_of_words = 0
                                                +                for (token_id, token_weight) in zip(item.token_id, item.token_weight):
                                                +                    doc_number_of_words += token_weight
                                                +                nd[current_doc] = doc_number_of_words
                                                +                current_doc += 1
                                                +        return nd
                                                +
                                                +    def compute_top_tokens(self, model, modality):
                                                +        """
                                                +        Function for top tokens extraction.
                                                +
                                                +        Parameters:
                                                +        ----------
                                                +        model : TopicModel
                                                +        modality : str
                                                +            modality for topic representation
                                                +        """
                                                +        top_tokens_viewer = TopTokensViewer(model)
                                                +        top_tokens_dict = top_tokens_viewer.view()
                                                +        topic_tokens_str = {}
                                                +        for topic, value in top_tokens_dict.items():
                                                +            topic_tokens_str[topic] = '<br>'.join(value[modality].keys())
                                                +        return topic_tokens_str
                                                +
                                                +    def plot(self, topics, significance_threshold=1e-2):
                                                +        """
                                                +        Function for plotly graph building.
                                                +
                                                +        Parameters
                                                +        ----------
                                                +        topics : list of int
                                                +            topics that need to be visualized
                                                +        significance_threshold : float
                                                +            plot ignores values lower than threshold
                                                +        """
                                                +        fig = go.Figure()
                                                +
                                                +        for t in topics:
                                                +            fig.add_trace(go.Scatter(x=np.arange(len(self.unique_time_labels)),
                                                +                                     y=[
                                                +                                         value if value > significance_threshold
                                                +                                         else None
                                                +                                         for value in self.topic_values[t, :]
                                                +                                     ],
                                                +                                     text=self.topic_tokens_str[f'topic_{t}'],
                                                +                                     hoverinfo='text',
                                                +                                     mode=None,
                                                +                                     hoveron='points+fills',
                                                +                                     fill='tozeroy',
                                                +                                     name=f'topic_{t}'))
                                                +
                                                +        fig.update_layout(
                                                +            title='Trending Topics Over Time',
                                                +            title_font_size=30,
                                                +            autosize=True,
                                                +            paper_bgcolor='LightSteelBlue'
                                                +        )
                                                +
                                                +        fig.update_xaxes(title_text='Time',
                                                +                         tickvals=np.arange(len(self.unique_time_labels))[::4],
                                                +                         ticktext=self.unique_time_labels[::4])
                                                +        fig.update_yaxes(title_text='Value')
                                                +        fig.show()
                                                +
                                                +    def view(self, topic_names=None):
                                                +        """
                                                +        Parameters
                                                +        ----------
                                                +        topic_names : list of str
                                                +            topics that user wants to see on plot
                                                +        """
                                                +        topics = list(map(lambda x: int(x.split('_')[1]), topic_names))
                                                +        self.plot(topics)
                                                +

                                                Ancestors

                                                • BaseViewer
                                                • @@ -64,6 +350,37 @@

                                                  Parameters

                                                  number_of_docs : int
                                                  number of documents in theta
                                                  +
                                                  + +Expand source code + +
                                                  def compute_nd(self, number_of_docs):
                                                  +    """
                                                  +    Compute number of tokens in each document from dataset.
                                                  +
                                                  +    Parameters
                                                  +    ----------
                                                  +    number_of_docs : int
                                                  +        number of documents in theta
                                                  +    """
                                                  +    batches_list = self.dataset.get_batch_vectorizer().batches_ids
                                                  +    nd = np.zeros(number_of_docs)
                                                  +
                                                  +    current_doc = 0
                                                  +    for batch_path in batches_list:
                                                  +        batch = artm.messages.Batch()
                                                  +
                                                  +        with open(batch_path, "rb") as f:
                                                  +            batch.ParseFromString(f.read())
                                                  +
                                                  +        for item in batch.item:
                                                  +            doc_number_of_words = 0
                                                  +            for (token_id, token_weight) in zip(item.token_id, item.token_weight):
                                                  +                doc_number_of_words += token_weight
                                                  +            nd[current_doc] = doc_number_of_words
                                                  +            current_doc += 1
                                                  +    return nd
                                                  +
                                                  def compute_top_tokens(self, model, modality) @@ -74,6 +391,27 @@

                                                  Parameters:

                                                  model : TopicModel modality : str modality for topic representation

                                                  +
                                                  + +Expand source code + +
                                                  def compute_top_tokens(self, model, modality):
                                                  +    """
                                                  +    Function for top tokens extraction.
                                                  +
                                                  +    Parameters:
                                                  +    ----------
                                                  +    model : TopicModel
                                                  +    modality : str
                                                  +        modality for topic representation
                                                  +    """
                                                  +    top_tokens_viewer = TopTokensViewer(model)
                                                  +    top_tokens_dict = top_tokens_viewer.view()
                                                  +    topic_tokens_str = {}
                                                  +    for topic, value in top_tokens_dict.items():
                                                  +        topic_tokens_str[topic] = '<br>'.join(value[modality].keys())
                                                  +    return topic_tokens_str
                                                  +
                                                  def plot(self, topics, significance_threshold=0.01) @@ -87,6 +425,50 @@

                                                  Parameters

                                                  significance_threshold : float
                                                  plot ignores values lower than threshold
                                                  +
                                                  + +Expand source code + +
                                                  def plot(self, topics, significance_threshold=1e-2):
                                                  +    """
                                                  +    Function for plotly graph building.
                                                  +
                                                  +    Parameters
                                                  +    ----------
                                                  +    topics : list of int
                                                  +        topics that need to be visualized
                                                  +    significance_threshold : float
                                                  +        plot ignores values lower than threshold
                                                  +    """
                                                  +    fig = go.Figure()
                                                  +
                                                  +    for t in topics:
                                                  +        fig.add_trace(go.Scatter(x=np.arange(len(self.unique_time_labels)),
                                                  +                                 y=[
                                                  +                                     value if value > significance_threshold
                                                  +                                     else None
                                                  +                                     for value in self.topic_values[t, :]
                                                  +                                 ],
                                                  +                                 text=self.topic_tokens_str[f'topic_{t}'],
                                                  +                                 hoverinfo='text',
                                                  +                                 mode=None,
                                                  +                                 hoveron='points+fills',
                                                  +                                 fill='tozeroy',
                                                  +                                 name=f'topic_{t}'))
                                                  +
                                                  +    fig.update_layout(
                                                  +        title='Trending Topics Over Time',
                                                  +        title_font_size=30,
                                                  +        autosize=True,
                                                  +        paper_bgcolor='LightSteelBlue'
                                                  +    )
                                                  +
                                                  +    fig.update_xaxes(title_text='Time',
                                                  +                     tickvals=np.arange(len(self.unique_time_labels))[::4],
                                                  +                     ticktext=self.unique_time_labels[::4])
                                                  +    fig.update_yaxes(title_text='Value')
                                                  +    fig.show()
                                                  +
                                                  def view(self, topic_names=None) @@ -97,6 +479,20 @@

                                                  Parameters

                                                  topic_names : list of str
                                                  topics that user wants to see on plot
                                                  +
                                                  + +Expand source code + +
                                                  def view(self, topic_names=None):
                                                  +    """
                                                  +    Parameters
                                                  +    ----------
                                                  +    topic_names : list of str
                                                  +        topics that user wants to see on plot
                                                  +    """
                                                  +    topics = list(map(lambda x: int(x.split('_')[1]), topic_names))
                                                  +    self.plot(topics)
                                                  +
                                                  @@ -131,7 +527,9 @@

                                                  -

                                                  Generated by pdoc 0.6.3.

                                                  +

                                                  Generated by pdoc 0.7.2.

                                                  + + \ No newline at end of file diff --git a/docs/viewers/topic_mapping.html b/docs/viewers/topic_mapping.html index 96639ba..281e9b7 100644 --- a/docs/viewers/topic_mapping.html +++ b/docs/viewers/topic_mapping.html @@ -3,12 +3,13 @@ - + topicnet.viewers.topic_mapping API documentation - + + @@ -19,6 +20,176 @@

                                                  Module topicnet.viewers.topic_mapping

                                                  +
                                                  + +Expand source code + +
                                                  import numpy as np
                                                  +from scipy import optimize
                                                  +from scipy.spatial import distance
                                                  +
                                                  +from .base_viewer import BaseViewer
                                                  +
                                                  +
                                                  +def compute_topic_mapping(matrix_left, matrix_right, metric='euclidean'):
                                                  +    """
                                                  +    This function provides mapping of topics
                                                  +    from one model to the topics of the other model
                                                  +    based on their simmularity defined by the metrics.
                                                  +
                                                  +    Parameters
                                                  +    ----------
                                                  +    matrix_left : np.array
                                                  +        a matrix of N1 topics x M tokens from the first model
                                                  +        each row is a cluster in M-dimensional feature space
                                                  +    matrix_right : np.array
                                                  +        a matrix of N2 topics x M tokens from the second model
                                                  +        each row is a cluster in M-dimensional feature space
                                                  +    metric : str or class
                                                  +        a string defining metric to use, or function that computes
                                                  +        pairwise distance between 2 matrices (Default value = 'euclidean')
                                                  +
                                                  +    Returns
                                                  +    -------
                                                  +    tuple of ndarrays
                                                  +        returns two ndarrays of indices, where each index
                                                  +        corresponds to a topic from respective models
                                                  +
                                                  +    """
                                                  +    if isinstance(metric, str):
                                                  +        costs = distance.cdist(matrix_left, matrix_right, metric=metric)
                                                  +    else:
                                                  +        costs = metric(matrix_left, matrix_right)
                                                  +
                                                  +    results = optimize.linear_sum_assignment(costs)
                                                  +    return results
                                                  +
                                                  +
                                                  +class TopicMapViewer(BaseViewer):
                                                  +    def __init__(
                                                  +        self,
                                                  +        model,
                                                  +        second_model,
                                                  +        mode='min',
                                                  +        metric='euclidean',
                                                  +        class_ids=None,
                                                  +    ):
                                                  +        """
                                                  +        Performs a mapping between topics of two model
                                                  +        matching two closest topics together based on
                                                  +        the Hungarian algorithm.
                                                  +
                                                  +        Parameters
                                                  +        ----------
                                                  +        model : TopicModel
                                                  +            first model to compare
                                                  +        second_model : TopicModel
                                                  +            second model to compare
                                                  +        mode : string
                                                  +            "min" or "max"  
                                                  +            "min" performs one to one mapping of 
                                                  +            min(n_topics_first_model, n_topics_second_model) length  
                                                  +            "max" performs mapping for
                                                  +            max(n_topics_first_model, n_topics_second_model), in that case
                                                  +            topics from model with minimal number will have a few topics mapped on it
                                                  +        metric : str or function
                                                  +            name of scipy metrics used in distance computation
                                                  +            or function that computes pairwise distance between 2 matrices
                                                  +            (Default value = "euclidean")
                                                  +
                                                  +        """  # noqa: W291
                                                  +        super().__init__(model=second_model)
                                                  +        self.second_model = self.model
                                                  +        super().__init__(model=model)
                                                  +        # TODO the default library method for get_phi
                                                  +        # returns  N x T matrix while we implemented T x N
                                                  +        self.metric = metric
                                                  +        self.mode = mode
                                                  +        self.class_ids = class_ids
                                                  +
                                                  +    def view(self, class_ids=None):
                                                  +        """
                                                  +        Returns pairs of close topics.
                                                  +        :param class_ids: list of str, default - None
                                                  +            parameter for model.get_phi method
                                                  +        :return: tuple of nd.arrays of strings:
                                                  +            two ordered arrays of topic name pairs
                                                  +
                                                  +        """
                                                  +        if class_ids is None:
                                                  +            class_ids = self.class_ids
                                                  +        model_phi = self.model.get_phi(class_ids=class_ids).T
                                                  +        second_model_phi = self.second_model.get_phi(class_ids=class_ids).T
                                                  +        num_topics_first = model_phi.values.shape[0]
                                                  +        num_topics_second = second_model_phi.values.shape[0]
                                                  +        if self.mode == 'min':
                                                  +            first_map_order, second_map_order = compute_topic_mapping(model_phi.values,
                                                  +                                                                      second_model_phi.values,
                                                  +                                                                      metric=self.metric)
                                                  +            first_model_order = (
                                                  +                model_phi
                                                  +                .iloc[first_map_order]
                                                  +                .index.values
                                                  +            )
                                                  +            second_model_order = (
                                                  +                second_model_phi
                                                  +                .iloc[second_map_order]
                                                  +                .index.values
                                                  +            )
                                                  +            return first_model_order, second_model_order
                                                  +
                                                  +        elif self.mode == 'max':
                                                  +            more_topics_second = num_topics_first <= num_topics_second
                                                  +
                                                  +            if more_topics_second:
                                                  +                iterate_phi_first = model_phi.values
                                                  +                iterate_phi_second = second_model_phi.values
                                                  +                phi_first_indexes = model_phi.index
                                                  +                phi_second_indexes = second_model_phi.index
                                                  +            else:
                                                  +                iterate_phi_first = second_model_phi.values
                                                  +                iterate_phi_second = model_phi.values
                                                  +                phi_first_indexes = second_model_phi.index
                                                  +                phi_second_indexes = model_phi.index
                                                  +
                                                  +            first_map_order = []
                                                  +            second_map_order = []
                                                  +            while iterate_phi_second.shape[0] > 0:
                                                  +                answer_batch = compute_topic_mapping(iterate_phi_first,
                                                  +                                                     iterate_phi_second,
                                                  +                                                     metric=self.metric)
                                                  +                first_map_order += list(phi_first_indexes[answer_batch[0]])
                                                  +                second_map_order += list(phi_second_indexes[answer_batch[1]])
                                                  +                iterate_phi_second = np.delete(iterate_phi_second, answer_batch[1], axis=0)
                                                  +                phi_second_indexes = np.delete(phi_second_indexes, answer_batch[1], axis=0)
                                                  +
                                                  +            if more_topics_second:
                                                  +                first_model_order = (
                                                  +                    model_phi
                                                  +                    .loc[first_map_order]
                                                  +                    .index.values
                                                  +                )
                                                  +                second_model_order = (
                                                  +                    second_model_phi
                                                  +                    .loc[second_map_order]
                                                  +                    .index.values
                                                  +                )
                                                  +                return first_model_order, second_model_order
                                                  +
                                                  +            second_model_order = (
                                                  +                second_model_phi
                                                  +                .loc[first_map_order]
                                                  +                .index.values
                                                  +            )
                                                  +            first_model_order = (
                                                  +                model_phi
                                                  +                .loc[second_map_order]
                                                  +                .index.values
                                                  +            )
                                                  +            return first_model_order, second_model_order
                                                  +        else:
                                                  +            raise TypeError('unknown self.mode value')
                                                  +
                                                  @@ -52,6 +223,43 @@

                                                  Returns

                                                  returns two ndarrays of indices, where each index corresponds to a topic from respective models
                                                  +
                                                  + +Expand source code + +
                                                  def compute_topic_mapping(matrix_left, matrix_right, metric='euclidean'):
                                                  +    """
                                                  +    This function provides mapping of topics
                                                  +    from one model to the topics of the other model
                                                  +    based on their simmularity defined by the metrics.
                                                  +
                                                  +    Parameters
                                                  +    ----------
                                                  +    matrix_left : np.array
                                                  +        a matrix of N1 topics x M tokens from the first model
                                                  +        each row is a cluster in M-dimensional feature space
                                                  +    matrix_right : np.array
                                                  +        a matrix of N2 topics x M tokens from the second model
                                                  +        each row is a cluster in M-dimensional feature space
                                                  +    metric : str or class
                                                  +        a string defining metric to use, or function that computes
                                                  +        pairwise distance between 2 matrices (Default value = 'euclidean')
                                                  +
                                                  +    Returns
                                                  +    -------
                                                  +    tuple of ndarrays
                                                  +        returns two ndarrays of indices, where each index
                                                  +        corresponds to a topic from respective models
                                                  +
                                                  +    """
                                                  +    if isinstance(metric, str):
                                                  +        costs = distance.cdist(matrix_left, matrix_right, metric=metric)
                                                  +    else:
                                                  +        costs = metric(matrix_left, matrix_right)
                                                  +
                                                  +    results = optimize.linear_sum_assignment(costs)
                                                  +    return results
                                                  +
                                                  @@ -84,6 +292,135 @@

                                                  Parameters

                                                  or function that computes pairwise distance between 2 matrices (Default value = "euclidean") +
                                                  + +Expand source code + +
                                                  class TopicMapViewer(BaseViewer):
                                                  +    def __init__(
                                                  +        self,
                                                  +        model,
                                                  +        second_model,
                                                  +        mode='min',
                                                  +        metric='euclidean',
                                                  +        class_ids=None,
                                                  +    ):
                                                  +        """
                                                  +        Performs a mapping between topics of two model
                                                  +        matching two closest topics together based on
                                                  +        the Hungarian algorithm.
                                                  +
                                                  +        Parameters
                                                  +        ----------
                                                  +        model : TopicModel
                                                  +            first model to compare
                                                  +        second_model : TopicModel
                                                  +            second model to compare
                                                  +        mode : string
                                                  +            "min" or "max"  
                                                  +            "min" performs one to one mapping of 
                                                  +            min(n_topics_first_model, n_topics_second_model) length  
                                                  +            "max" performs mapping for
                                                  +            max(n_topics_first_model, n_topics_second_model), in that case
                                                  +            topics from model with minimal number will have a few topics mapped on it
                                                  +        metric : str or function
                                                  +            name of scipy metrics used in distance computation
                                                  +            or function that computes pairwise distance between 2 matrices
                                                  +            (Default value = "euclidean")
                                                  +
                                                  +        """  # noqa: W291
                                                  +        super().__init__(model=second_model)
                                                  +        self.second_model = self.model
                                                  +        super().__init__(model=model)
                                                  +        # TODO the default library method for get_phi
                                                  +        # returns  N x T matrix while we implemented T x N
                                                  +        self.metric = metric
                                                  +        self.mode = mode
                                                  +        self.class_ids = class_ids
                                                  +
                                                  +    def view(self, class_ids=None):
                                                  +        """
                                                  +        Returns pairs of close topics.
                                                  +        :param class_ids: list of str, default - None
                                                  +            parameter for model.get_phi method
                                                  +        :return: tuple of nd.arrays of strings:
                                                  +            two ordered arrays of topic name pairs
                                                  +
                                                  +        """
                                                  +        if class_ids is None:
                                                  +            class_ids = self.class_ids
                                                  +        model_phi = self.model.get_phi(class_ids=class_ids).T
                                                  +        second_model_phi = self.second_model.get_phi(class_ids=class_ids).T
                                                  +        num_topics_first = model_phi.values.shape[0]
                                                  +        num_topics_second = second_model_phi.values.shape[0]
                                                  +        if self.mode == 'min':
                                                  +            first_map_order, second_map_order = compute_topic_mapping(model_phi.values,
                                                  +                                                                      second_model_phi.values,
                                                  +                                                                      metric=self.metric)
                                                  +            first_model_order = (
                                                  +                model_phi
                                                  +                .iloc[first_map_order]
                                                  +                .index.values
                                                  +            )
                                                  +            second_model_order = (
                                                  +                second_model_phi
                                                  +                .iloc[second_map_order]
                                                  +                .index.values
                                                  +            )
                                                  +            return first_model_order, second_model_order
                                                  +
                                                  +        elif self.mode == 'max':
                                                  +            more_topics_second = num_topics_first <= num_topics_second
                                                  +
                                                  +            if more_topics_second:
                                                  +                iterate_phi_first = model_phi.values
                                                  +                iterate_phi_second = second_model_phi.values
                                                  +                phi_first_indexes = model_phi.index
                                                  +                phi_second_indexes = second_model_phi.index
                                                  +            else:
                                                  +                iterate_phi_first = second_model_phi.values
                                                  +                iterate_phi_second = model_phi.values
                                                  +                phi_first_indexes = second_model_phi.index
                                                  +                phi_second_indexes = model_phi.index
                                                  +
                                                  +            first_map_order = []
                                                  +            second_map_order = []
                                                  +            while iterate_phi_second.shape[0] > 0:
                                                  +                answer_batch = compute_topic_mapping(iterate_phi_first,
                                                  +                                                     iterate_phi_second,
                                                  +                                                     metric=self.metric)
                                                  +                first_map_order += list(phi_first_indexes[answer_batch[0]])
                                                  +                second_map_order += list(phi_second_indexes[answer_batch[1]])
                                                  +                iterate_phi_second = np.delete(iterate_phi_second, answer_batch[1], axis=0)
                                                  +                phi_second_indexes = np.delete(phi_second_indexes, answer_batch[1], axis=0)
                                                  +
                                                  +            if more_topics_second:
                                                  +                first_model_order = (
                                                  +                    model_phi
                                                  +                    .loc[first_map_order]
                                                  +                    .index.values
                                                  +                )
                                                  +                second_model_order = (
                                                  +                    second_model_phi
                                                  +                    .loc[second_map_order]
                                                  +                    .index.values
                                                  +                )
                                                  +                return first_model_order, second_model_order
                                                  +
                                                  +            second_model_order = (
                                                  +                second_model_phi
                                                  +                .loc[first_map_order]
                                                  +                .index.values
                                                  +            )
                                                  +            first_model_order = (
                                                  +                model_phi
                                                  +                .loc[second_map_order]
                                                  +                .index.values
                                                  +            )
                                                  +            return first_model_order, second_model_order
                                                  +        else:
                                                  +            raise TypeError('unknown self.mode value')
                                                  +

                                                  Ancestors

                                                  • BaseViewer
                                                  • @@ -99,6 +436,93 @@

                                                    Methods

                                                    parameter for model.get_phi method :return: tuple of nd.arrays of strings: two ordered arrays of topic name pairs

                                                    +
                                                    + +Expand source code + +
                                                    def view(self, class_ids=None):
                                                    +    """
                                                    +    Returns pairs of close topics.
                                                    +    :param class_ids: list of str, default - None
                                                    +        parameter for model.get_phi method
                                                    +    :return: tuple of nd.arrays of strings:
                                                    +        two ordered arrays of topic name pairs
                                                    +
                                                    +    """
                                                    +    if class_ids is None:
                                                    +        class_ids = self.class_ids
                                                    +    model_phi = self.model.get_phi(class_ids=class_ids).T
                                                    +    second_model_phi = self.second_model.get_phi(class_ids=class_ids).T
                                                    +    num_topics_first = model_phi.values.shape[0]
                                                    +    num_topics_second = second_model_phi.values.shape[0]
                                                    +    if self.mode == 'min':
                                                    +        first_map_order, second_map_order = compute_topic_mapping(model_phi.values,
                                                    +                                                                  second_model_phi.values,
                                                    +                                                                  metric=self.metric)
                                                    +        first_model_order = (
                                                    +            model_phi
                                                    +            .iloc[first_map_order]
                                                    +            .index.values
                                                    +        )
                                                    +        second_model_order = (
                                                    +            second_model_phi
                                                    +            .iloc[second_map_order]
                                                    +            .index.values
                                                    +        )
                                                    +        return first_model_order, second_model_order
                                                    +
                                                    +    elif self.mode == 'max':
                                                    +        more_topics_second = num_topics_first <= num_topics_second
                                                    +
                                                    +        if more_topics_second:
                                                    +            iterate_phi_first = model_phi.values
                                                    +            iterate_phi_second = second_model_phi.values
                                                    +            phi_first_indexes = model_phi.index
                                                    +            phi_second_indexes = second_model_phi.index
                                                    +        else:
                                                    +            iterate_phi_first = second_model_phi.values
                                                    +            iterate_phi_second = model_phi.values
                                                    +            phi_first_indexes = second_model_phi.index
                                                    +            phi_second_indexes = model_phi.index
                                                    +
                                                    +        first_map_order = []
                                                    +        second_map_order = []
                                                    +        while iterate_phi_second.shape[0] > 0:
                                                    +            answer_batch = compute_topic_mapping(iterate_phi_first,
                                                    +                                                 iterate_phi_second,
                                                    +                                                 metric=self.metric)
                                                    +            first_map_order += list(phi_first_indexes[answer_batch[0]])
                                                    +            second_map_order += list(phi_second_indexes[answer_batch[1]])
                                                    +            iterate_phi_second = np.delete(iterate_phi_second, answer_batch[1], axis=0)
                                                    +            phi_second_indexes = np.delete(phi_second_indexes, answer_batch[1], axis=0)
                                                    +
                                                    +        if more_topics_second:
                                                    +            first_model_order = (
                                                    +                model_phi
                                                    +                .loc[first_map_order]
                                                    +                .index.values
                                                    +            )
                                                    +            second_model_order = (
                                                    +                second_model_phi
                                                    +                .loc[second_map_order]
                                                    +                .index.values
                                                    +            )
                                                    +            return first_model_order, second_model_order
                                                    +
                                                    +        second_model_order = (
                                                    +            second_model_phi
                                                    +            .loc[first_map_order]
                                                    +            .index.values
                                                    +        )
                                                    +        first_model_order = (
                                                    +            model_phi
                                                    +            .loc[second_map_order]
                                                    +            .index.values
                                                    +        )
                                                    +        return first_model_order, second_model_order
                                                    +    else:
                                                    +        raise TypeError('unknown self.mode value')
                                                    +
                                                    @@ -135,7 +559,9 @@

                                                    -

                                                    Generated by pdoc 0.6.3.

                                                    +

                                                    Generated by pdoc 0.7.2.

                                                    + + \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 31d22da..12ec243 100644 --- a/requirements.txt +++ b/requirements.txt @@ -19,5 +19,7 @@ typing ipython strictyaml numexpr +plotly +colorlover # artm diff --git a/setup.py b/setup.py index 2dcfecd..07469d8 100644 --- a/setup.py +++ b/setup.py @@ -2,13 +2,13 @@ setup( name = 'topicnet', # How you named your package folder (MyLib) packages = ['topicnet', 'topicnet.cooking_machine', 'topicnet.cooking_machine.models', 'topicnet.cooking_machine.cubes', 'topicnet.viewers'], # Chose the same as "name" - version = '0.4.1', # Start with a small number and increase it with every change you make + version = '0.5.0', # Start with a small number and increase it with every change you make license='MIT', # Chose a license from here: https://help.github.com/articles/licensing-a-repository description = 'TopicNet is a module for topic modelling using ARTM algorithm', # Give a short description about your library author = 'Machine Intelligence Laboratory', # Type in your name author_email = 'alex.goncharov@phystech.edu', # Type in your E-Mail url = 'https://github.com/machine-intelligence-laboratory/TopicNet', # Provide either the link to your github or to your website - download_url = 'https://github.com/machine-intelligence-laboratory/TopicNet/archive/v0.4.1.tar.gz', + download_url = 'https://github.com/machine-intelligence-laboratory/TopicNet/archive/v0.5.0.tar.gz', keywords = ['ARTM', 'topic', 'modelling', 'visualization'], # Keywords that define your package best install_requires=[ # I get to this in a second 'numpy', @@ -22,7 +22,9 @@ 'scikit_learn', 'typing', 'ipython', - 'strictyaml' + 'strictyaml', + 'plotly', + 'colorlover', ], classifiers=[ 'Development Status :: 4 - Beta', # Chose either "3 - Alpha", "4 - Beta" or "5 - Production/Stable" as the current state of your package diff --git a/topicnet/.flake8 b/topicnet/.flake8 index 7ec4565..b0d4de2 100644 --- a/topicnet/.flake8 +++ b/topicnet/.flake8 @@ -1,5 +1,4 @@ [flake8] max-complexity = 10 max-line-length = 100 -exclude = __init__.py - +exclude = __init__.py demos/* diff --git a/topicnet/__init__.py b/topicnet/__init__.py index e69de29..f540619 100644 --- a/topicnet/__init__.py +++ b/topicnet/__init__.py @@ -0,0 +1 @@ +__pdoc__ = {"tests": False} diff --git a/topicnet/bitbucket-pipelines.yml b/topicnet/bitbucket-pipelines.yml deleted file mode 100644 index 76adcc8..0000000 --- a/topicnet/bitbucket-pipelines.yml +++ /dev/null @@ -1,12 +0,0 @@ - -pipelines: - pull-requests: - '**': - - step: - name: Lint by Flake8 - image: python:3.6.0 - caches: - - pip - script: - - pip install flake8 mccabe - - flake8 --max-complexity=10 --max-line-length=100 . diff --git a/topicnet/cooking_machine/config_parser.py b/topicnet/cooking_machine/config_parser.py index 839abbd..7165c70 100644 --- a/topicnet/cooking_machine/config_parser.py +++ b/topicnet/cooking_machine/config_parser.py @@ -78,6 +78,10 @@ def __init__(self, num_iters: int = 5) "theta_name": Str() } +# change log style +lc = artm.messages.ConfigureLoggingArgs() +lc.minloglevel = 3 +lib = artm.wrapper.LibArtm(logging_config=lc) element = Any() base_schema = Map({ @@ -86,8 +90,9 @@ def __init__(self, num_iters: int = 5) 'stages': Seq(element), 'model': Map({ "dataset_path": Str(), - "modalities_to_use": Seq(Str()), - "main_modality": Str() + Optional("modalities_to_use"): Seq(Str()), + Optional("modalities_weights"): Any(), + "main_modality": Str(), }), 'topics': Map({ "background_topics": Seq(Str()) | Int() | EmptyList(), @@ -429,6 +434,30 @@ def _add_parsed_regularizers( return regularizers +def parse_modalities_data(parsed): + has_modalities_to_use = is_key_in_schema("modalities_to_use", parsed["model"]) + has_weights = is_key_in_schema("modalities_weights", parsed["model"]) + main_modality = parsed["model"]["main_modality"] + + # exactly one should be specified + if has_modalities_to_use == has_weights: + raise ValueError(f"Either 'modalities_to_use' or 'modalities_weights' should be specified") + + if has_weights: + modalities_to_use = list(parsed["model"]["modalities_weights"].data) + if main_modality not in modalities_to_use: + modalities_to_use.append(main_modality) + local_schema = Map({ + key: Float() for key in modalities_to_use + }) + parsed["model"]["modalities_weights"].revalidate(local_schema) + modalities_weights = parsed["model"]["modalities_weights"].data + else: + modalities_weights = None + modalities_to_use = parsed.data["model"]["modalities_to_use"] + return modalities_to_use, modalities_weights + + def parse(yaml_string, force_single_thread=False): """ Parameters @@ -458,7 +487,8 @@ def parse(yaml_string, force_single_thread=False): cube_settings = [] dataset = Dataset(parsed.data["model"]["dataset_path"]) - modalities_to_use = parsed.data["model"]["modalities_to_use"] + + modalities_to_use, modalities_weights = parse_modalities_data(parsed) data_stats = count_vocab_size(dataset.get_dictionary(), modalities_to_use) model = init_simple_default_model( @@ -467,6 +497,7 @@ def parse(yaml_string, force_single_thread=False): main_modality=parsed.data["model"]["main_modality"], specific_topics=parsed.data["topics"]["specific_topics"], background_topics=parsed.data["topics"]["background_topics"], + modalities_weights=modalities_weights ) regularizers = _add_parsed_regularizers( diff --git a/topicnet/cooking_machine/cubes/README.md b/topicnet/cooking_machine/cubes/README.md index ca0ab6e..11aa9d3 100644 --- a/topicnet/cooking_machine/cubes/README.md +++ b/topicnet/cooking_machine/cubes/README.md @@ -1,3 +1,4 @@ +<<<<<<< HEAD # Cubes and their Strategies Cube types: @@ -6,6 +7,7 @@ Cube types: * `RegularizersModifierCube` — cube that adds or alter model regularizers * `CubeCreator` — cube that allows to change model fundamental hyperparameters (topic number) * `RegularizationControllerCube` - cube that ties together a complicated usage of `RegularizersModifierCube`. This cube allows for change of regularization coefficients across the model training. This allows to obtain soemwhat unique results by combining contradictionary restrictions on the model. + --- Strategy types: @@ -13,6 +15,7 @@ Strategy types: * `BaseStrategy` — a parent class for all the Strategies * `PerplexityStrategy` — performs search in given hyperparameter space until certain score exceeds a boundary * `GreedyStrategy` — strategy that performes search in hyperparameter space consequently changing dimensions to perform a 1D search for a minimum + --- diff --git a/topicnet/cooking_machine/cubes/base_cube.py b/topicnet/cooking_machine/cubes/base_cube.py index 895ff68..bfb5a53 100644 --- a/topicnet/cooking_machine/cubes/base_cube.py +++ b/topicnet/cooking_machine/cubes/base_cube.py @@ -2,7 +2,8 @@ from tqdm import tqdm import warnings from multiprocessing import Queue, Process -from queue import Empty +# from queue import Empty +from artm.wrapper.exceptions import ArtmException from .strategy import BaseStrategy from ..models.base_model import padd_model_name @@ -45,14 +46,15 @@ def __call__(self, model): return model.scores[self.score_name][-1] -def get_from_queue_till_fail(queue, error_message='', fail_margin=1,): - fail_counter = 0 - while fail_counter < fail_margin: - try: - return queue.get(timeout=0.1) - except Empty: - fail_counter += 1 - raise Empty(error_message) +# exists for multiprocessing debug +def put_to_queue(queue, puttable): + queue.put(puttable) + + +# exists for multiprocessing debug +def get_from_queue_till_fail(queue, error_message='',): + while True: + return queue.get() class BaseCube: @@ -159,34 +161,43 @@ def _train_models(self, experiment, topic_model, dataset, search_space): new_model_id = padd_model_name("{0}{1:_>5}".format(candidate_name, model_index)) new_model_save_path = os.path.join(save_folder, new_model_id) - # alter the model according to cube parameters - new_model = self.apply(topic_model, search_point, dataset_dictionary, new_model_id) - model_cube = { "action": self.action, "num_iter": self.num_iter, "params": repr(search_point) } - # train new model for a number of iterations (might be zero) - new_model._fit( - dataset_trainable=dataset_trainable, - num_iterations=self.num_iter - ) + try: + # alter the model according to cube parameters + new_model = self.apply(topic_model, search_point, dataset_dictionary, new_model_id) + # train new model for a number of iterations (might be zero) + new_model._fit( + dataset_trainable=dataset_trainable, + num_iterations=self.num_iter + ) + except ArtmException as e: + error_message = repr(e) + raise ValueError( + f'Cannot alter and fit artm model with parameters {search_point}.\n' + "ARTM failed with following: " + error_message + + ) # add cube description to the model history new_model.add_cube(model_cube) new_model.experiment = experiment new_model.save() + assert os.path.exists(new_model.model_default_save_path) returned_paths.append(new_model.model_default_save_path) # some strategies depend on previous train results, therefore scores must be updated if self.tracked_score_function: current_score = self.tracked_score_function(new_model) - else: + self.strategy.update_scores(current_score) + # else: # we return number of iterations as a placeholder - current_score = len(returned_paths) - self.strategy.update_scores(current_score) + # current_score = len(returned_paths) + return returned_paths def _retrieve_results_from_process(self, queue, experiment): @@ -194,7 +205,8 @@ def _retrieve_results_from_process(self, queue, experiment): models_num = get_from_queue_till_fail(queue, NUM_MODELS_ERROR) topic_models = [] for _ in range(models_num): - path = get_from_queue_till_fail(queue, MODEL_RETRIEVE_ERROR.format(_, models_num)) + path = get_from_queue_till_fail(queue, + MODEL_RETRIEVE_ERROR.format(_, models_num)) topic_models.append(DummyTopicModel.load(path, experiment=experiment)) strategy_parameters = get_from_queue_till_fail(queue, STRATEGY_RETRIEVE_ERROR) @@ -204,6 +216,7 @@ def _retrieve_results_from_process(self, queue, experiment): for (warning_message, warning_class) in caught_warnings: # if issubclass(warning_class, UserWarning): warnings.warn(warning_message) + return topic_models def _train_models_and_report_results(self, queue, experiment, topic_model, dataset, @@ -216,18 +229,17 @@ def _train_models_and_report_results(self, queue, experiment, topic_model, datas """ with warnings.catch_warnings(record=True) as caught_warnings: returned_paths = self._train_models(experiment, topic_model, dataset, search_space) - - queue.put(len(returned_paths)) + put_to_queue(queue, len(returned_paths)) for path in returned_paths: - queue.put(path) + put_to_queue(queue, path) # to work with strategy we recover consistency by sending important parameters strategy_parameters = self.strategy._get_strategy_parameters(saveable_only=True) - queue.put(strategy_parameters) + put_to_queue(queue, strategy_parameters) caught_warnings = [(warning.message, warning.category) for warning in caught_warnings] - queue.put(caught_warnings) + put_to_queue(queue, caught_warnings) def _run_cube(self, topic_model, dataset): """ @@ -292,10 +304,10 @@ def _run_cube(self, topic_model, dataset): process = Process( target=self._train_models_and_report_results, args=(queue, experiment, topic_model, dataset, - search_space, search_length) + search_space, search_length), + daemon=True ) process.start() - process.join() topic_models = self._retrieve_results_from_process(queue, experiment) else: returned_paths = self._train_models(experiment, topic_model, dataset, search_space) diff --git a/topicnet/cooking_machine/cubes/controller_cube.py b/topicnet/cooking_machine/cubes/controller_cube.py index 684a850..7723638 100644 --- a/topicnet/cooking_machine/cubes/controller_cube.py +++ b/topicnet/cooking_machine/cubes/controller_cube.py @@ -20,28 +20,31 @@ to the last "safe" value and stop More formal definition of "sort of decreasing": if we divide a curve into two parts like so: - ##################################### - #. . . .. . . . .. . .. . . ... . # - #%. . . . . . . .. . . . . . . ..# - #:t . . . . . . . . . . . . . . . .# - # t: . . . . . . . . . . . . . . ...# - #. %. . . . . . . . . . . . . . . .# - #. :t. . . . . . . . . . . . . . .# - #.. ;; . . . . . . . . . . . . ..# - # ..t.. . . . . . . . . . . . . .# - #. . :t .. . . . . . . . . . . . ..# - #. .. t: . . . . . . . . . . . . . .# - #. ..S: . . . . . . . . . . . . ..# - #. . . .:;: . . . . . . . . . . . .# - #. . . . :;; . . . . . . . . . . .# - #. . . . .. :%. nmmMMmmn . .# - # . . . . .tt%.ztttt"' '""ttttttt# - #. . . . . . '"' . . . . . . . . # - ##################################### - | | | - | left part | | - global minimum | - | right part | + + + ##################################### + #. . . .. . . . .. . .. . . ... . # + #%. . . . . . . .. . . . . . . ..# + #:t . . . . . . . . . . . . . . . .# + # t: . . . . . . . . . . . . . . ...# + #. %. . . . . . . . . . . . . . . .# + #. :t. . . . . . . . . . . . . . .# + #.. ;; . . . . . . . . . . . . ..# + # ..t.. . . . . . . . . . . . . .# + #. . :t .. . . . . . . . . . . . ..# + #. .. t: . . . . . . . . . . . . . .# + #. ..S: . . . . . . . . . . . . ..# + #. . . .:;: . . . . . . . . . . . .# + #. . . . :;; . . . . . . . . . . .# + #. . . . .. :%. nmmMMmmn . .# + # . . . . .tt%.ztttt"' '""ttttttt# + #. . . . . . '"' . . . . . . . . # + ##################################### + | | | + | left part | | + global minimum | + | right part | + then the right part is no higher than 5% of global minimum (you can change 5% if you like by adjusting `fraction_threshold` in `is_score_out_of_control` function) @@ -52,43 +55,51 @@ tau_converter: str or callable Notably, def-style functions and lambda functions are allowed If it is function, then it should accept four arguments: - (initial_tau, prev_tau, cur_iter, user_value) + `(initial_tau, prev_tau, cur_iter, user_value)` For example: - >> lambda initial_tau, prev_tau, cur_iter, user_value: - >> initial_tau if cur_iter % 2 == 0 else 0 - (Note that experiment description might display lambda functions incorrectly; - Try to keep them to a single line or use def-style functions instead) + >> lambda initial_tau, prev_tau, cur_iter, user_value: + >> initial_tau if cur_iter % 2 == 0 else 0 - >> def func(initial_tau, prev_tau, cur_iter, user_value): - >> relu_grower = user_value * (cur_iter - 8) if cur_iter > 8 else 0 - >> return 0 if cur_iter % 2 else relu_grower + (Note that experiment description might display lambda functions incorrectly; + Try to keep them to a single line or use def-style functions instead) + + >> def func(initial_tau, prev_tau, cur_iter, user_value): + >> relu_grower = user_value * (cur_iter - 8) if cur_iter > 8 else 0 + >> return 0 if cur_iter % 2 else relu_grower If it is a string, then it should be an expression consisting of numbers, operations - and variables (four are allowed: initial_tau, prev_tau, cur_iter, user_value) + and variables (four are allowed: `initial_tau, prev_tau, cur_iter, user_value`) For example: - >> "initial_tau * ((cur_iter + 1) % 2)" + + `>> "initial_tau * ((cur_iter + 1) % 2)"` + or - >> "prev_tau * user_value" + + `>> "prev_tau * user_value"` user_value_grid: list of numeric Values for user_value variable When writing `tau_converter`, you can use user_value variable. For example: - >> tau_converter: "prev_tau * user_value" - >> user_value_grid: [1, 0.99, 0.95, 0.90, 0.80, 0.5] + + >> tau_converter: "prev_tau * user_value" + >> user_value_grid: [1, 0.99, 0.95, 0.90, 0.80, 0.5] + (I know that tau should decay exponentially, but I'm unsure of exact half-life) - >> tau_converter: "prev_tau + user_value" - >> user_value_grid: [50, 100, 150, 200, 250] + >> tau_converter: "prev_tau + user_value" + >> user_value_grid: [50, 100, 150, 200, 250] + (I know that tau should increase linearly, but I'm unsure of exact speed) - >> def func(initial_tau, prev_tau, cur_iter, user_value): - >> new_tau = 50 * (cur_iter - user_value) if cur_iter > user_value else 0 - >> return new_tau - >> tau_converter: func - >> user_value_grid: [10, 15, 20, 25, 30] + >> def func(initial_tau, prev_tau, cur_iter, user_value): + >> new_tau = 50 * (cur_iter - user_value) if cur_iter > user_value else 0 + >> return new_tau + >> tau_converter: func + >> user_value_grid: [10, 15, 20, 25, 30] + (Tau should start with zero, then increase linearly. I don't know when to start this process) max_iter: numeric @@ -96,7 +107,8 @@ Agent will stop changing tau after `max_iters` iterations `max_iters` could be `float("NaN")` and `float("inf")` values: that way agent will continue operating even outside this `RegularizationControllerCube` -""" +""" # noqa: W291 + from .base_cube import BaseCube from ..rel_toolbox_lite import count_vocab_size, handle_regularizer @@ -265,18 +277,22 @@ def __init__(self, num_iter: int, parameters, "user_value_grid" See top-level docstring for details. Examples: - >> {"regularizer": artm.regularizers.<...>, - >> "score_to_track": "PerplexityScore@all", - >> "tau_converter": "prev_tau * user_value", - >> "user_value_grid": [0.5, 1, 2]} - - >> {"reg_name": "decorrelator_for_ngramms", - >> "score_to_track": None, - >> "tau_converter": ( - >> lambda initial_tau, prev_tau, cur_iter, user_value: - >> initial_tau * (cur_iter % 2) + user_value - >> ) - >> "user_value_grid": [0, 1]} + + >> {"regularizer": artm.regularizers.<...>, + >> "score_to_track": "PerplexityScore@all", + >> "tau_converter": "prev_tau * user_value", + >> "user_value_grid": [0.5, 1, 2]} + + + ----------- + + >> {"reg_name": "decorrelator_for_ngramms", + >> "score_to_track": None, + >> "tau_converter": ( + >> lambda initial_tau, prev_tau, cur_iter, user_value: + >> initial_tau * (cur_iter % 2) + user_value + >> ) + >> "user_value_grid": [0, 1]} reg_search : str "grid", "pair", "add" or "mul". @@ -391,17 +407,19 @@ def apply(self, topic_model, one_model_parameter, dictionary=None, model_id=None def get_jsonable_from_parameters(self): """ """ jsonable_parameters = [] + for one_model_parameters in self.raw_parameters: one_jsonable = dict(one_model_parameters) converter = one_model_parameters['tau_converter'] - if isinstance(converter, str): - pass - else: + + if not isinstance(converter, str): try: # not always works, but this is not important one_jsonable["tau_converter"] = str(getsource(converter)) - except TypeError: + except (TypeError, OSError): + # OSError: may arise if working in Jupyter Notebook one_jsonable["tau_converter"] = "" + jsonable_parameters.append(one_jsonable) return jsonable_parameters diff --git a/topicnet/cooking_machine/cubes/regularizer_cube.py b/topicnet/cooking_machine/cubes/regularizer_cube.py index 15bf5b4..0dfa4f0 100644 --- a/topicnet/cooking_machine/cubes/regularizer_cube.py +++ b/topicnet/cooking_machine/cubes/regularizer_cube.py @@ -143,8 +143,8 @@ def apply(self, topic_model, one_model_parameter, dictionary=None, model_id=None regularizer, field_name, params = regularizer_data regularizer_type = str(type(regularizer)) if isinstance(regularizer, dict): - if regularizer['name'] in new_model.regularizers.data: - new_regularizer = deepcopy(new_model.regularizers[regularizer['name']]) + if regularizer['name'] in new_model.all_regularizers.keys(): + new_regularizer = deepcopy(new_model.all_regularizers[regularizer['name']]) new_regularizer._tau = params handle_regularizer( self._relative, diff --git a/topicnet/cooking_machine/dataset.py b/topicnet/cooking_machine/dataset.py index f8f3c23..2347975 100644 --- a/topicnet/cooking_machine/dataset.py +++ b/topicnet/cooking_machine/dataset.py @@ -1,9 +1,11 @@ -import pandas as pd import os -import warnings +import sys +import csv import artm import shutil +import warnings +import pandas as pd from glob import glob from .routine import blake2bchecksum @@ -13,6 +15,23 @@ DEFAULT_ARTM_MODALITY = '@default_class' # TODO: how to get this value from artm library? MODALITY_START_SYMBOL = '|' +# change log style +lc = artm.messages.ConfigureLoggingArgs() +lc.minloglevel = 3 +lib = artm.wrapper.LibArtm(logging_config=lc) + + +def _fix_max_string_size(): + maxInt = sys.maxsize + while True: + # decrease the maxInt value by factor 10 + # as long as the OverflowError occurs. + try: + csv.field_size_limit(maxInt) + break + except OverflowError: + maxInt = int(maxInt/10) + def get_modality_names(vw_string): """ @@ -111,6 +130,8 @@ def __init__(self, data_path, # set main data self._data_path = data_path self._small_data = keep_in_memory + # making document entry as big as possible + _fix_max_string_size() self._data_hash = None self._cached_dict = None if os.path.exists(data_path): @@ -267,7 +288,7 @@ def get_source_document(self, document_id): def write_vw(self, file_path): """ """ - with open(file_path, 'w') as f: + with open(file_path, 'w', encoding='utf-8') as f: for index, data in self._data.iterrows(): vw_string = data[VW_TEXT_COL] f.write(vw_string + '\n') diff --git a/topicnet/cooking_machine/experiment.py b/topicnet/cooking_machine/experiment.py index 7133b6f..c0742c2 100644 --- a/topicnet/cooking_machine/experiment.py +++ b/topicnet/cooking_machine/experiment.py @@ -222,7 +222,7 @@ def _recover_consistency(self, load_path): if "params.html" not in files: print("The file params.html was removed. Recover...", end=" ") html = get_html(self,) - with open(f"{experiment_save_path}/params.html", "w") as f: + with open(f"{experiment_save_path}/params.html", "w", encoding='utf-8') as f: f.write(html) print("Recovered.") for model_id in self.models_info: @@ -431,7 +431,7 @@ def save(self, window_size: int = 1500, mode: str = 'all'): default=transform_topic_model_description_to_jsonable) html = get_html(self, window_size) html_path = os.path.join(experiment_save_path, 'params.html') - with open(html_path, "w") as f: + with open(html_path, "w", encoding='utf-8') as f: f.write(html) @staticmethod diff --git a/topicnet/cooking_machine/model_constructor.py b/topicnet/cooking_machine/model_constructor.py index 6d019b7..28d3d36 100644 --- a/topicnet/cooking_machine/model_constructor.py +++ b/topicnet/cooking_machine/model_constructor.py @@ -49,7 +49,8 @@ def init_model(topic_names, seed=None, class_ids=None): """ model = artm.ARTM( topic_names=topic_names, - num_processors=3, + # Commented for performance uncomment if has zombie issues + # num_processors=3, theta_columns_naming='title', show_progress_bars=False, class_ids=class_ids, @@ -102,6 +103,7 @@ def create_default_topics(specific_topics, background_topics): def init_simple_default_model( dataset, modalities_to_use, main_modality, specific_topics, background_topics, + modalities_weights=None ): """ Creates simple artm model with standard scores. @@ -113,19 +115,27 @@ def init_simple_default_model( main_modality : str specific_topics : list or int background_topics : list or int + modalities_weights : dict or None Returns ------- model: artm.ARTM() instance """ + if modalities_weights is not None: + assert sorted(list(modalities_to_use)) == sorted(list(modalities_weights.keys())) + baseline_class_ids = {class_id: 1 for class_id in modalities_to_use} + specific_topic_names, background_topic_names = create_default_topics( specific_topics, background_topics ) dictionary = dataset.get_dictionary() - baseline_class_ids = {class_id: 1 for class_id in modalities_to_use} tokens_data = count_vocab_size(dictionary, modalities_to_use) - abs_weights = modality_weight_rel2abs(tokens_data, baseline_class_ids, main_modality) + abs_weights = modality_weight_rel2abs( + tokens_data, + modalities_weights if modalities_weights is not None else baseline_class_ids, + main_modality + ) model = init_model( topic_names=specific_topic_names + background_topic_names, diff --git a/topicnet/cooking_machine/models/README.md b/topicnet/cooking_machine/models/README.md index 00ee913..3ddc105 100644 --- a/topicnet/cooking_machine/models/README.md +++ b/topicnet/cooking_machine/models/README.md @@ -5,6 +5,7 @@ Availiable models: * `BaseModel` — Parent class for model creation * `TopicModel` — a wrapper class for bigartm topic model * `DummyTopicModel` — a fake model that contains training information but not actual artm model. Needed to save memory space during the training. + --- Availiable scores: @@ -13,6 +14,8 @@ Availiable scores: * `ExampleScore` — Example of minimal working example of custom score * `IntratextCoherenceScore` — score that calculates coherence as a measure of interpretability of the model using raw documents from dataset. Calculation-heavy score. Recommended to be used **after** model training * `BleiLaffertyScore` — An experimental light-weight score to estimate interpretability of the topics +* `SemanticRaduisScore` — An experimental score reflecting whether collection is adequately described by topics. Lower if better. Calculation-heavy score. + --- ## Internal model structure @@ -27,9 +30,14 @@ each list corresponds to the score value or list of values at certain training s * `custom_scores` — variable providing custom scores for the model +* `custom_regularizers` — variable providing custom regularizers for the model. +An example is provided in `topic_prior_regularizer.py`. + **main model methods**: * `_fit` — function performing model training. Takes the dataset and number of iterations. +Optionally, you can pass `custom_regularizers` here, if you wish to apply them to a single +iteration. **Important Notice!** We assume that the model training happens through Cube interface and this method, while diff --git a/topicnet/cooking_machine/models/base_model.py b/topicnet/cooking_machine/models/base_model.py index 2286690..735463d 100644 --- a/topicnet/cooking_machine/models/base_model.py +++ b/topicnet/cooking_machine/models/base_model.py @@ -62,6 +62,7 @@ def __init__(self, model_id=None, parent_model_id=None, experiment=None, *args, self._description = [] self._scores = dict() self._score_functions = dict() + self._custom_scores = [] def __str__(self): return f'id={self.model_id}, ' \ diff --git a/topicnet/cooking_machine/models/base_regularizer.py b/topicnet/cooking_machine/models/base_regularizer.py new file mode 100644 index 0000000..394f1a4 --- /dev/null +++ b/topicnet/cooking_machine/models/base_regularizer.py @@ -0,0 +1,22 @@ +class BaseRegularizer: + """ + Base regularizer class to construct custom regularizers. + + """ + def __init__(self, name, tau, gamma=None): + self.name = name + self.tau = tau + self.gamma = gamma + + def attach(self, model): + """ + + Parameters + ---------- + model : ARTM model + necessary to apply master component + """ + self._model = model + + def grad(self, pwt, nwt): + raise NotImplementedError('grad method should be overrided in an inherited class') diff --git a/topicnet/cooking_machine/models/dummy_topic_model.py b/topicnet/cooking_machine/models/dummy_topic_model.py index 3ad64b5..6867d7f 100644 --- a/topicnet/cooking_machine/models/dummy_topic_model.py +++ b/topicnet/cooking_machine/models/dummy_topic_model.py @@ -7,6 +7,11 @@ from ..dataset import Dataset from .topic_model import TopicModel +# change log style +lc = artm.messages.ConfigureLoggingArgs() +lc.minloglevel = 3 +lib = artm.wrapper.LibArtm(logging_config=lc) + class InvalidOperationError(RuntimeError): def __init__(self, message='Dummy model can\'t do this'): diff --git a/topicnet/cooking_machine/models/frozen_score.py b/topicnet/cooking_machine/models/frozen_score.py new file mode 100644 index 0000000..85ba6ba --- /dev/null +++ b/topicnet/cooking_machine/models/frozen_score.py @@ -0,0 +1,42 @@ +import warnings + +from .base_score import BaseScore + + +class FrozenScore(BaseScore): + """ + Custom scores can have anything inside. + So there is a probability that pickle will not be able to dump them. + Frozen score helps to store the value of the original score without its internal logic, + so as it can be saved. + """ + def __init__(self, value): + super().__init__() + + self.value = value + + def update(self, score): + """ + Update is not supposed to be applied to Frozen score. + It is not supposed to be changed. + Still, the situation with an endeavour to update can generally happen if one tries + to train the model further after loading. + """ + warnings.warn( + f'Trying to update Frozen score! Update value "{score}". ' + f'Frozen score is not supposed to be updated, ' + f'as there is no computation logic inside' + ) + + if score is not None: + # TODO: it shouldn't be possible to pass such score value to update() + # other than the one returned by self.call() + warnings.warn( + f'Can\'t update Frozen score with value other than None: "{score}"! ' + f'Saving None score' + ) + + self.value.append(None) + + def call(self, model, *args, **kwargs): + return None diff --git a/topicnet/cooking_machine/models/scores.py b/topicnet/cooking_machine/models/scores.py index 9b36844..5fab9ac 100644 --- a/topicnet/cooking_machine/models/scores.py +++ b/topicnet/cooking_machine/models/scores.py @@ -1,5 +1,6 @@ from .example_score import ScoreExample from .intratext_coherence_score import IntratextCoherenceScore from .blei_lafferty_score import BleiLaffertyScore +from .semantic_radius_score import SemanticRaduisScore -__all__ = ["ScoreExample", "IntratextCoherenceScore", "BleiLaffertyScore"] +__all__ = ["ScoreExample", "IntratextCoherenceScore", "BleiLaffertyScore", "SemanticRaduisScore"] diff --git a/topicnet/cooking_machine/models/semantic_radius_score.py b/topicnet/cooking_machine/models/semantic_radius_score.py new file mode 100644 index 0000000..bf2cbd0 --- /dev/null +++ b/topicnet/cooking_machine/models/semantic_radius_score.py @@ -0,0 +1,186 @@ +import artm +import pandas as pd +import numpy as np +from collections import Counter +from scipy.optimize import curve_fit +from .base_score import BaseScore + +# change log style +lc = artm.messages.ConfigureLoggingArgs() +lc.minloglevel = 3 +lib = artm.wrapper.LibArtm(logging_config=lc) + + +def calculate_n(model, batch_vectorizer): + """ + Calculate all necessary statistics from batch. This may take some time. + """ + tokens = [] + for batch_id in range(len(batch_vectorizer._batches_list)): + batch_name = batch_vectorizer._batches_list[batch_id]._filename + batch = artm.messages.Batch() + with open(batch_name, "rb") as f: + batch.ParseFromString(f.read()) + + for item_id in range(len(batch.item)): + item = batch.item[item_id] + for token_id in item.token_id: + tokens.append(batch.token[token_id]) + + ntdw = model.transform(batch_vectorizer=batch_vectorizer, theta_matrix_type='dense_ptdw') + docs = ntdw.columns + ntdw.columns = pd.MultiIndex.from_arrays([docs, tokens], names=('doc', 'token')) + + ntd = ntdw.groupby(level=0, axis=1).sum() + + nwt = ntdw.groupby(level=1, axis=1).sum().T + + nt = nwt.sum(axis=0) + + return ntdw, ntd, nwt, nt + + +def synthetic_doc_ntdw_and_ntd(doc_len, nwt): + """ + Create synthetic document from nwt with specific doc_len. + """ + pwt = np.float64(nwt) / np.sum(np.float64(nwt)).astype(float) + doc_idx = np.random.choice(len(pwt), doc_len, p=pwt) + doc_count = dict(Counter(doc_idx)) + + ntdw = np.empty((len(pwt))) + for word_idx in range(len(ntdw)): + ntdw[word_idx] = doc_count.get(word_idx, 0) + ntd = np.sum(ntdw) + + return ntdw, ntd + + +def cressie_reed_sampled(topic, ntdw_calc, ntd_calc, nwt, nt, gimel=-1/2): + """ + Calculate Cressie-Reed divergence for sampled pseudo-document. + """ + mul_part = ntd_calc * nwt.iloc[:, topic] + + if np.all(ntdw_calc == 0) or nt[topic] == 0 or np.all(mul_part == 0): + gimel_part = np.array([0]) + else: + gimel_part = 0 + for token_id, token in enumerate(nwt.index): + token_ntdw = ntdw_calc[token_id] + token_denom = mul_part.iloc[token_id] + if token_ntdw and token_denom: + gimel_part += token_ntdw * ( + np.power(token_ntdw * nt[topic] / token_denom, gimel) - 1 + ) + + cressie_reed_for_l = 2 / (gimel * (gimel + 1)) * np.sum(gimel_part) + + return cressie_reed_for_l + + +def third_degree(x, a, b, c, d): + return a + b * x + c * x ** 2 + d * x ** 3 + + +def radius_vs_ndt(topic, max_len, sample_step, sample_size, nwt, nt, alpha): + """ + Calculate third degree approximation for radius vs ndt dependency. + """ + crs_for_alpha = [] + ntds_sampled = [] + for doc_len in range(1, max_len, sample_step): + local_crs_for_alpha = [] + for _ in range(sample_size): + ntdw_sampled, ntd_sampled = synthetic_doc_ntdw_and_ntd(doc_len, nwt.iloc[:, topic]) + local_crs_for_alpha.append(cressie_reed_sampled( + topic, ntdw_sampled, ntd_sampled, nwt, nt + )) + + crs_for_alpha.append(np.quantile(local_crs_for_alpha, 1 - alpha)) + ntds_sampled.append(ntd_sampled) + + regression_coeff, cov = curve_fit(third_degree, ntds_sampled, crs_for_alpha) + return regression_coeff + + +def radii_vs_ntd(max_len, sample_step, sample_size, nwt, nt, alpha): + regression_coeffs = [] + for topic in range(len(nt)): + regression_coeffs.append(radius_vs_ndt( + topic, max_len, sample_step, sample_size, nwt, nt, alpha + )) + + return regression_coeffs + + +def radius_for_ntd(ntd, regression_coeff): + return third_degree(ntd, *regression_coeff) + + +def radii_for_ntd(ntd, regression_coeff): + return ntd.apply(lambda x: third_degree(x, *regression_coeff)) + + +class SemanticRaduisScore(BaseScore): + """ + This score implements cluster semantic radius, described in paper + 'Проверка гипотезы условной независимости + для оценивания качества тематической кластеризации' by Rogozina A. + At the core this score helps to discover topics uniformity. + The lower this score - better + """ # noqa: W291 + def __init__(self, batch_vectorizer): + """ + + Parameters + ---------- + batch_vectorizer + + """ + super().__init__() + self.batch_vectorizer = batch_vectorizer + + def update(self, score): + known_errors = (ValueError, TypeError) + try: + score = np.array(score, float) + except known_errors: + raise ValueError(f'Score call should return list of float but not {score}') + self.value.append(score) + + def call(self, model, max_sampled_document_len=None, sample_step=5, sample_size=3, alpha=0.1): + """ + + Parameters + ---------- + model : TopicModel + max_sampled_document_len : int + Maximum length of pseudo-document for quantile regression + (Default value = None) + sample_step : int + Grain for quantile regression + (Default value = 5) + sample_size : int + Size of every sample for quantile regression + (Default value = 3) + alpha : float + (1 - alpha) quantile level, must be <= 1 + (Default value = 0.1) + + """ # noqa: W291 + ntdw, ntd, nwt, nt = calculate_n(model._model, self.batch_vectorizer) + + if max_sampled_document_len is None: + max_sampled_document_len = int(np.max(ntd.values)) + + regression_coeffs = radii_vs_ntd( + max_sampled_document_len, sample_step, sample_size, nwt, nt, alpha + ) + radii = [ + radius_for_ntd(topic_ntd, coeff) + for topic_ntd, coeff + in zip(ntd.values.mean(axis=1), regression_coeffs) + ] + + return radii diff --git a/topicnet/cooking_machine/models/topic_model.py b/topicnet/cooking_machine/models/topic_model.py index 884e864..cd1b0de 100644 --- a/topicnet/cooking_machine/models/topic_model.py +++ b/topicnet/cooking_machine/models/topic_model.py @@ -1,11 +1,13 @@ from .base_model import BaseModel +from .frozen_score import FrozenScore from ..routine import transform_complex_entity_to_dict import os import json import glob +import dill +import pickle import shutil -import dill as pickle import pandas as pd import warnings import inspect @@ -18,6 +20,11 @@ from inspect import signature +# change log style +lc = artm.messages.ConfigureLoggingArgs() +lc.minloglevel = 3 +lib = artm.wrapper.LibArtm(logging_config=lc) + ARTM_NINE = artm.version().split(".")[1] == "9" SUPPORTED_SCORES_WITHOUT_VALUE_PROPERTY = ( @@ -27,11 +34,6 @@ ) -class EmptyScore: - def __init__(self): - self.value = [] - - class TopicModel(BaseModel): """ Topic Model contains artm model and all necessary information: scores, training pipeline, etc. @@ -41,7 +43,8 @@ def __init__(self, artm_model=None, model_id=None, parent_model_id=None, data_path=None, description=None, experiment=None, callbacks=list(), depth=0, scores=dict(), - custom_scores=dict(), *args, **kwargs): + custom_scores=dict(), custom_regularizers=dict(), + *args, **kwargs): """ Initialize stage, also used for loading previously saved experiments. @@ -65,10 +68,13 @@ def __init__(self, artm_model=None, model_id=None, custom_scores : dict dictionary with score names as keys and score classes as functions (score class with functionality like those of BaseScore) + custom_regularizers : dict + dictionary with regularizer names as keys and regularizer classes as values """ super().__init__(model_id=model_id, parent_model_id=parent_model_id, experiment=experiment, *args, **kwargs) + self.callbacks = list(callbacks) if artm_model is None: @@ -88,6 +94,7 @@ def __init__(self, artm_model=None, model_id=None, self.data_path = data_path self.custom_scores = custom_scores + self.custom_regularizers = custom_regularizers self._score_caches = None # returned by model.score, reset by model._fit @@ -104,7 +111,10 @@ def __getattr__(self, attr_name): def _get_all_scores(self): if len(self._model.score_tracker.items()) == 0: - yield from {key: EmptyScore() for key in self._model.scores.data.keys()}.items() + yield from { + key: FrozenScore(list()) + for key in self._model.scores.data.keys() + }.items() yield from self._model.score_tracker.items() if self.custom_scores is not None: # default is dict(), but maybe better to set None? @@ -140,11 +150,41 @@ def get_score_properties_and_values(score_name, score_object): return score_values - def _fit(self, dataset_trainable, num_iterations): + def _fit(self, dataset_trainable, num_iterations, custom_regularizers=dict()): + """ + + Parameters + ---------- + dataset_trainable : BatchVectorizer + Data for model fit + num_iterations : int + Amount of fit steps + custom_regularizers : dict of BaseRegularizer + Regularizers to apply to model + + """ + all_custom_regularizers = deepcopy(custom_regularizers) + all_custom_regularizers.update(self.custom_regularizers) + + if len(all_custom_regularizers) != 0: + for regularizer in all_custom_regularizers.values(): + regularizer.attach(self._model) + + base_regularizers_name = [regularizer.name + for regularizer in self._model.regularizers.data.values()] + base_regularizers_tau = [regularizer.tau + for regularizer in self._model.regularizers.data.values()] + for cur_iter in range(num_iterations): self._model.fit_offline(batch_vectorizer=dataset_trainable, num_collection_passes=1) + if len(all_custom_regularizers) != 0: + self._apply_custom_regularizers( + dataset_trainable, all_custom_regularizers, + base_regularizers_name, base_regularizers_tau + ) + for name, custom_score in self.custom_scores.items(): try: score = custom_score.call(self) @@ -159,6 +199,42 @@ def _fit(self, dataset_trainable, num_iterations): self._reset_score_caches() + def _apply_custom_regularizers(self, dataset_trainable, custom_regularizers, + base_regularizers_name, base_regularizers_tau): + """ + + Parameters + ---------- + dataset_trainable : BatchVectorizer + Data for model fit + custom_regularizers : dict of BaseRegularizer + Regularizers to apply to model + base_regularizers_name : list of str + List with all artm.regularizers names, applied to model + base_regularizers_tau : list of float + List with tau for all artm.regularizers, applied to model + + """ + pwt = self._model.get_phi(model_name=self._model.model_pwt) + nwt = self._model.get_phi(model_name=self._model.model_nwt) + rwt_name = 'rwt' + + self._model.master.regularize_model(pwt=self._model.model_pwt, + nwt=self._model.model_nwt, + rwt=rwt_name, + regularizer_name=base_regularizers_name, + regularizer_tau=base_regularizers_tau) + + (meta, nd_array) = self._model.master.attach_model(rwt_name) + attached_rwt = pd.DataFrame(data=nd_array, columns=meta.topic_name, index=meta.token) + + for regularizer in custom_regularizers.values(): + attached_rwt.values[:, :] += regularizer.grad(pwt, nwt) + + self._model.master.normalize_model(pwt=self._model.model_pwt, + nwt=self._model.model_nwt, + rwt=rwt_name) + def get_jsonable_from_parameters(self): """ Gets artm model params. @@ -181,8 +257,13 @@ def get_jsonable_from_parameters(self): except KeyError: pass regularizers[name] = [str(regularizer.config), tau, gamma] - parameters['regularizers'] = regularizers + for name, regularizer in iteritems(self.custom_regularizers): + tau = getattr(regularizer, 'tau', None) + gamma = getattr(regularizer, 'gamma', None) + config = str(getattr(regularizer, 'config', '')) + regularizers[name] = [config, tau, gamma] + parameters['regularizers'] = regularizers parameters['version'] = artm.version() return parameters @@ -198,6 +279,23 @@ def get_init_parameters(self, not_include=list()): filtered[parameter_name] = parameter_value return filtered + def save_custom_regularizers(self, model_save_path=None): + if model_save_path is None: + model_save_path = self.model_default_save_path + + for regularizer_name, regularizer_object in self.custom_regularizers.items(): + try: + save_path = os.path.join(model_save_path, regularizer_name + '.rd') + with open(save_path, 'wb') as reg_f: + dill.dump(regularizer_object, reg_f) + except (TypeError, AttributeError): + try: + save_path = os.path.join(model_save_path, regularizer_name + '.rp') + with open(save_path, 'wb') as reg_f: + pickle.dump(regularizer_object, reg_f) + except (TypeError, AttributeError): + warnings.warn(f'Cannot save {regularizer_name} regularizer.') + def save(self, model_save_path=None, phi=True, @@ -238,11 +336,24 @@ def save(self, for score_name, score_object in self.custom_scores.items(): save_path = os.path.join(model_save_path, score_name + '.p') - pickle.dump(score_object, open(save_path, 'wb')) + with open(save_path, 'wb') as score_f: + try: + dill.dump(score_object, score_f) + except pickle.PicklingError: + warnings.warn( + f'Failed to save custom score "{score_object}" correctly! ' + f'Freezing score (saving only its value)' + ) + + frozen_score_object = FrozenScore(score_object.value) + dill.dump(frozen_score_object, score_f) + + self.save_custom_regularizers(model_save_path) for i, agent in enumerate(self.callbacks): save_path = os.path.join(model_save_path, f"callback_{i}.pkl") - pickle.dump(agent, open(save_path, 'wb')) + with open(save_path, 'wb') as agent_f: + dill.dump(agent, agent_f) @staticmethod def load(path, experiment=None): @@ -266,24 +377,47 @@ def load(path, experiment=None): else: model = None print("There is no dumped model. You should train it again.") - params = json.load(open(f"{path}/params.json", "r")) + + with open(f"{path}/params.json", "r", encoding='utf-8') as params_f: + params = json.load(params_f) + topic_model = TopicModel(model, **params) topic_model.experiment = experiment custom_scores = {} + for score_path in glob.glob(os.path.join(path, '*.p')): score_name = os.path.basename(score_path).split('.')[0] - custom_scores[score_name] = pickle.load(open(score_path, 'rb')) + with open(score_path, 'rb') as score_f: + custom_scores[score_name] = dill.load(score_f) + topic_model.custom_scores = custom_scores + custom_regularizers = {} + + for regularizer_path in glob.glob(os.path.join(path, '*.rd')): + regularizer_name = os.path.basename(regularizer_path).split('.')[0] + with open(regularizer_path, 'rb') as reg_f: + custom_regularizers[regularizer_name] = dill.load(reg_f) + + for regularizer_path in glob.glob(os.path.join(path, '*.rp')): + regularizer_name = os.path.basename(regularizer_path).split('.')[0] + with open(regularizer_path, 'rb') as reg_f: + custom_regularizers[regularizer_name] = pickle.load(reg_f) + + topic_model.custom_regularizers = custom_regularizers + all_agents = glob.glob(os.path.join(path, 'callback*.pkl')) topic_model.callbacks = [None for _ in enumerate(all_agents)] + for agent_path in all_agents: filename = os.path.basename(agent_path).split('.')[0] original_index = int(filename.partition("_")[2]) - topic_model.callbacks[original_index] = pickle.load(open(agent_path, 'rb')) + with open(agent_path, 'rb') as agent_f: + topic_model.callbacks[original_index] = dill.load(agent_f) topic_model._reset_score_caches() + return topic_model def clone(self, model_id=None): @@ -305,6 +439,7 @@ def clone(self, model_id=None): parent_model_id=self.parent_model_id, description=deepcopy(self.description), custom_scores=deepcopy(self.custom_scores), + custom_regularizers=deepcopy(self.custom_regularizers), experiment=self.experiment) topic_model._score_functions = deepcopy(topic_model.score_functions) topic_model._scores = deepcopy(topic_model.scores) @@ -448,7 +583,7 @@ def get_theta(self, topic_names=None, """ # assuming particular case of BigARTM library that user can't get theta matrix # without cache_theta == True. This also covers theta_name == None case - if self._model._cache_theta: + if self._cache_theta: # TODO wrap sparse in pd.SparseDataFrame and check that viewers work with that output if sparse: return self._model.get_theta_sparse(topic_names, eps) @@ -567,9 +702,30 @@ def description(self): @property def regularizers(self): - """ """ + """ + Gets regularizers from model. + + """ return self._model.regularizers + @property + def all_regularizers(self): + """ + Gets all regularizers with custom regularizers. + + Returns + ------- + regularizers_dict : dict + dict with artm.regularizer and BaseRegularizer instances + + """ + regularizers_dict = dict() + for custom_regularizer_name, custom_regularizer in self.custom_regularizers.items(): + regularizers_dict[custom_regularizer_name] = custom_regularizer + regularizers_dict.update(self._model.regularizers.data) + + return regularizers_dict + @property def class_ids(self): """ """ @@ -586,5 +742,7 @@ def describe_regularizers(self): data = [] for reg_name, reg in self.regularizers._data.items(): data.append([self.model_id, reg_name, reg.tau, reg.gamma]) + for custom_reg_name, custom_reg in self.custom_regularizers.items(): + data.append([self.model_id, custom_reg_name, custom_reg.tau, custom_reg.gamma]) result = pd.DataFrame(columns=["model_id", "regularizer_name", "tau", "gamma"], data=data) return result.set_index(["model_id", "regularizer_name"]) diff --git a/topicnet/cooking_machine/models/topic_prior_regularizer.py b/topicnet/cooking_machine/models/topic_prior_regularizer.py new file mode 100644 index 0000000..5e182b2 --- /dev/null +++ b/topicnet/cooking_machine/models/topic_prior_regularizer.py @@ -0,0 +1,116 @@ +import numpy as np +import warnings +from .base_regularizer import BaseRegularizer + + +class TopicPriorRegularizer(BaseRegularizer): + """ + TopicPriorRegularizer adds prior beta_t to every column + in Phi matrix of ARTM model. Thus every phi_wt has + preassigned prior probability of being attached to topic t. + + If beta is balanced with respect to apriori collection balance, + topics become better and save n_t balance. + + """ # noqa: W291 + def __init__(self, name, tau, num_topics=None, beta=1): + """ + + Parameters + ---------- + name : str + Regularizer name + tau : float + Regularizer influence degree + num_topics : int + Number of topics for uniform sampling + beta : float or list or np.array + Prior for columns of Phi matrix (Default value = 1) + + """ + super().__init__(name, tau) + + beta_is_n_dim = isinstance(beta, (list, np.ndarray)) + if beta_is_n_dim and (num_topics is not None) and len(beta) != num_topics: + raise ValueError('Beta dimension doesn\'t equal num_topics.') + if num_topics is None and not beta_is_n_dim: + warnings.warn('Num topics set to 1.') + num_topics = 1 + + if beta_is_n_dim: + if np.sum(np.array(beta)) == 0: + raise ValueError('Incorrect input beta: at least one value must be greater zero.') + if np.min(np.array(beta)) < 0: + raise ValueError('Incorrect input beta: all values must be greater or equal zero.') + + self.beta = np.array(beta) + self.beta = self.beta / np.sum(self.beta) + else: + self.beta = np.ones(num_topics) + + def grad(self, pwt, nwt): + grad_array = np.repeat([self.beta * self.tau], pwt.shape[0], axis=0) + + return grad_array + + +class TopicPriorSampledRegularizer(BaseRegularizer): + """ + TopicPriorSampleRegularizer adds prior beta_t to every column + in Phi matrix of ARTM model. Thus every phi_wt has + preassigned prior probability of being attached to topic t. + + Beta vector is sampled from + Dirichlet distribution with parameter beta_prior. + By varying beta_prior one can apply different degrees of balance to model. + Beta_prior influence: + 1 - fully random balance + << 1 - uniform distribution of topics size + >> 1 - highly unbalanced distribution of topics size + + If beta is balanced with respect to apriori collection balance, + topics become better and save n_t balance. + + """ # noqa: W291 + def __init__(self, name, tau, num_topics=None, beta_prior=(), random_seed=42): + """ + + Parameters + ---------- + name : str + Regularizer name + tau : float + Regularizer influence degree + num_topics : int + Number of topics for uniform sampling + beta_prior : list or np.array + Prior for Dirichlet distribution to sample beta parameter + random_seed : int + Random seed for Dirichlet distribution (Default value = 42) + + """ + super().__init__(name, tau) + + if num_topics is None and len(beta_prior) == 0: + warnings.warn('Num topics set to 1.') + num_topics = 1 + + beta_prior_is_n_dim = isinstance(beta_prior, (list, np.ndarray)) + if len(beta_prior) != 0 and beta_prior_is_n_dim: + if np.sum(np.array(beta_prior)) == 0: + raise ValueError( + 'Incorrect input beta_prior: at least one value must be greater zero.' + ) + if np.min(np.array(beta_prior)) < 0: + raise ValueError( + 'Incorrect input beta_prior: all values must be greater or equal zero.' + ) + + self.beta = np.random.RandomState(random_seed).dirichlet(beta_prior) + else: + self.beta = np.random.RandomState(random_seed).dirichlet([1 for _ in range(num_topics)]) + + def grad(self, pwt, nwt): + grad_array = np.repeat([self.beta * self.tau], pwt.shape[0], axis=0) + + return grad_array diff --git a/topicnet/cooking_machine/recipes/ARTM_baseline.yml b/topicnet/cooking_machine/recipes/ARTM_baseline.yml deleted file mode 100644 index 57ae69b..0000000 --- a/topicnet/cooking_machine/recipes/ARTM_baseline.yml +++ /dev/null @@ -1,57 +0,0 @@ -# This config follows a strategy described by Murat Apishev -# one of the core programmers of BigARTM library in personal correspondence. -# According to his letter 'decent' topic model can be obtained by -# Decorrelating model topics simultaneously looking at retrieved TopTokens - - -# Use .format(modality_list=modality_list, main_modality=main_modality, dataset_path=dataset_path, -# specific_topics=specific_topics, background_topics=background_topics) -# when loading the recipe to adjust for your dataset - -topics: -# Describes number of model topics, better left to the user to define optimal topic number - specific_topics: {specific_topics} - background_topics: {background_topics} - -# Here is example of model with one modality -regularizers: - - DecorrelatorPhiRegularizer: - name: decorrelation_phi - topic_names: specific_topics - class_ids: {modality_list} - - SmoothSparsePhiRegularizer: - name: smooth_phi_bcg - topic_names: background_topics - class_ids: {modality_list} - tau: 0.1 - relative: true - - SmoothSparseThetaRegularizer: - name: smooth_theta_bcg - topic_names: background_topics - tau: 0.1 - relative: true -scores: - - BleiLaffertyScore: - num_top_tokens: 30 -model: - dataset_path: {dataset_path} - modalities_to_use: {modality_list} - main_modality: '{main_modality}' - -stages: -- RegularizersModifierCube: - num_iter: 20 - reg_search: add - regularizer_parameters: - name: decorrelation_phi - selection: - - PerplexityScore@all < 1.05 * MINIMUM(PerplexityScore@all) and BleiLaffertyScore -> max - strategy: PerplexityStrategy - # parameters of this strategy are intended for revision - strategy_params: - start_point: 0 - step: 0.01 - max_len: 50 - tracked_score_function: PerplexityScore@all - verbose: false - relative_coefficients: true diff --git a/topicnet/cooking_machine/recipes/exploratory_search.yml b/topicnet/cooking_machine/recipes/__init__.py similarity index 55% rename from topicnet/cooking_machine/recipes/exploratory_search.yml rename to topicnet/cooking_machine/recipes/__init__.py index b0fc770..e166cef 100644 --- a/topicnet/cooking_machine/recipes/exploratory_search.yml +++ b/topicnet/cooking_machine/recipes/__init__.py @@ -1,3 +1,65 @@ + +ARTM_baseline = ''' +# This config follows a strategy described by Murat Apishev +# one of the core programmers of BigARTM library in personal correspondence. +# According to his letter 'decent' topic model can be obtained by +# Decorrelating model topics simultaneously looking at retrieved TopTokens + + +# Use .format(modality_list=modality_list, main_modality=main_modality, dataset_path=dataset_path, +# specific_topics=specific_topics, background_topics=background_topics) +# when loading the recipe to adjust for your dataset + +topics: +# Describes number of model topics, better left to the user to define optimal topic number + specific_topics: {specific_topics} + background_topics: {background_topics} + +# Here is example of model with one modality +regularizers: + - DecorrelatorPhiRegularizer: + name: decorrelation_phi + topic_names: specific_topics + class_ids: {modality_list} + - SmoothSparsePhiRegularizer: + name: smooth_phi_bcg + topic_names: background_topics + class_ids: {modality_list} + tau: 0.1 + relative: true + - SmoothSparseThetaRegularizer: + name: smooth_theta_bcg + topic_names: background_topics + tau: 0.1 + relative: true +scores: + - BleiLaffertyScore: + num_top_tokens: 30 +model: + dataset_path: {dataset_path} + modalities_to_use: {modality_list} + main_modality: '{main_modality}' + +stages: +- RegularizersModifierCube: + num_iter: 20 + reg_search: add + regularizer_parameters: + name: decorrelation_phi + selection: + - PerplexityScore@all < 1.05 * MINIMUM(PerplexityScore@all) and BleiLaffertyScore -> max + strategy: PerplexityStrategy + # parameters of this strategy are intended for revision + strategy_params: + start_point: 0 + step: 0.01 + max_len: 50 + tracked_score_function: PerplexityScore@all + verbose: false + use_relative_coefficients: true +''' + +exploratory_search = ''' # This config follows a strategy described in the article # Multi-objective Topic Modeling for Exploratory Search in Tech News # by Anastasya Yanina, Lev Golitsyn and Konstantin Vorontsov, Jan 2018 @@ -49,7 +111,7 @@ max_len: 6 tracked_score_function: PerplexityScore@all verbose: false - relative_coefficients: false + use_relative_coefficients: false - RegularizersModifierCube: num_iter: 8 reg_search: add @@ -64,7 +126,7 @@ max_len: 6 tracked_score_function: PerplexityScore{modality} verbose: false - relative_coefficients: false + use_relative_coefficients: false #last cube is independent of modalities and can be used only once - RegularizersModifierCube: num_iter: 8 @@ -80,4 +142,6 @@ max_len: 6 tracked_score_function: PerplexityScore@all verbose: false - relative_coefficients: false \ No newline at end of file + use_relative_coefficients: false + +''' diff --git a/topicnet/cooking_machine/recipes/topic_number_search.yml b/topicnet/cooking_machine/recipes/topic_number_search.yml index f1c01cd..794661a 100644 --- a/topicnet/cooking_machine/recipes/topic_number_search.yml +++ b/topicnet/cooking_machine/recipes/topic_number_search.yml @@ -47,7 +47,7 @@ stages: max_len: 6 tracked_score_function: PerplexityScore{modality} verbose: false - relative_coefficients: false + use_relative_coefficients: false - RegularizersModifierCube: num_iter: 8 reg_search: add @@ -62,7 +62,7 @@ stages: max_len: 6 tracked_score_function: PerplexityScore@all verbose: false - relative_coefficients: false + use_relative_coefficients: false - RegularizersModifierCube: num_iter: 8 reg_search: add @@ -77,4 +77,4 @@ stages: max_len: 6 tracked_score_function: PerplexityScore@all verbose: false - relative_coefficients: false \ No newline at end of file + use_relative_coefficients: false \ No newline at end of file diff --git a/topicnet/cooking_machine/rel_toolbox_lite.py b/topicnet/cooking_machine/rel_toolbox_lite.py index 49eaade..d0567b2 100644 --- a/topicnet/cooking_machine/rel_toolbox_lite.py +++ b/topicnet/cooking_machine/rel_toolbox_lite.py @@ -8,7 +8,7 @@ def count_vocab_size(dictionary, modalities): dictionary.save_text(fname) modality_count = {name: 0 for name in modalities} modality_vocab_size = {name: 0 for name in modalities} - with open(fname) as f: + with open(fname, 'r', encoding='utf-8') as f: header = next(f) num_docs = int(header.partition("num_items: ")[2]) next(f) diff --git a/topicnet/cooking_machine/routine.py b/topicnet/cooking_machine/routine.py index c757010..bdec467 100644 --- a/topicnet/cooking_machine/routine.py +++ b/topicnet/cooking_machine/routine.py @@ -324,12 +324,14 @@ def extract_required_parameter(model, parameter): f'Model \"{model}\" doesn\'t have the score \"{parameter}\". ' f'Expected score name {parameter} or model.parameter {parameter}') - try: - return scores[-1] - - except IndexError: + if len(scores) == 0: raise ValueError(f'Empty score {parameter}.') + if scores[-1] is None: # FrozenScore + return value_to_return_as_none + + return scores[-1] + def is_acceptable(model, requirement_lesser, requirement_greater, requirement_equal): """ diff --git a/topicnet/demos/PScience-BuildingTopicModel.ipynb b/topicnet/demos/PScience-BuildingTopicModel.ipynb index cd5c4c6..ec11d50 100644 --- a/topicnet/demos/PScience-BuildingTopicModel.ipynb +++ b/topicnet/demos/PScience-BuildingTopicModel.ipynb @@ -4332,7 +4332,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.7" + "version": "3.6.8" } }, "nbformat": 4, diff --git a/topicnet/demos/data/lenta_1000_100_batches/vw.txt b/topicnet/demos/data/lenta_1000_100_batches/vw.txt new file mode 100644 index 0000000..9395932 --- /dev/null +++ b/topicnet/demos/data/lenta_1000_100_batches/vw.txt @@ -0,0 +1,1100 @@ +808 |text тысяча распечатать картон фотография американский певица минаж разложить ступень кафедральный собор хельсинки сообщать финский издание helsingin uutiset . акция стать частью промокампания музыкальный фестиваль summer пройти недалеко финский столица выступить исполнительница . снимка минаж запечатлеть нижний бельё натуральный величина . К задний сторона прикрепить приглашение фестиваль . организатор акция предложить желающий захватить картонка праздник удивить артист . отмечаться что певица посетить финляндия впервые . выйти сцена фестиваль summer . put thousands nicki minaj cardboard cutouts helsinki cathedral stairs finland . robert maraj put thousands nicki minaj cardboard cutouts helsinki cathedral stairs finland . минаж рэпер автор исполнитель . певица записать студийный альбом совместно исполнитель . минаж дважды номинироваться премия грэмми неоднократно выигрывать bet awards . |ngramms американский_певица_ стать_частью музыкальный_фестиваль организатор_акция что_певица выйти_на_сцена _минаж +124 |text старший дочь музыкант выйти замуж . избранник стать бармен . сообщать super . . дочь лидер группа ленинград учиться философский факультет спбгу . супруг окончить мгг имя М . А . жить где работать бармен местный заведение . пара жить гражданский брак . В таблоид писать что потерять ребёнок . выкидыш случиться ранний стадия беременность . шнур лидер ленинград активно сниматься кино работать качество ведущий разнообразный телепроект выставляться как художник . В состав ленинград записать альбом выпустить сольный пластинка . шнур известный многочисленный громкий скандальный высказывание . прочее отрицать наличие гражданский общество россия выступать поддержка гомосексуальный подросток год предложить запретить продажа алкоголь наркотический вещество лицо высокий образование . |ngramms старший_дочь музыкант__ _ _ лидер_группа санкт_петербург _шнур рок_группа В_состав сольный_пластинка выступать_в_поддержка предложить_запретить продажа_алкоголь высокий_образование +156 |text представитель концертный агентство мельница заниматься организация столичный концерт прокомментировать лента . обращение православный активист мэрия москва просьба запретить выступление шок рокер . слово обращение быть инициировать известный международный привлечение внимание фигура певец . слово генеральный директор агентство идея привлечь раскрутка концерт московский акционист эксплуатировать образ борец православие энтео группа божий воля оказаться невероятно удачный коммерческий ход . взрывной образ подняться продажа билет фестиваль park live где мэнсон выступить хедлайнер аншлаг . не_ожидать сокрушительный эффект оказывать заявление профессиональный активист прислушиваться чиновник высокий уровень . В очередь близкий энтео глава ассоциация православный эксперт апэ корпорация православный действие заведовать отдел русский православный церковь институт страна снг разговор корреспондент лента . выразить категорический несогласие предположение мочь сотрудничать компания промоутер . позиция продумать взвешенный поддерживать . называть добро добром зло зло . |ngramms концертный_агентство _ _ _ _ _ _ _ православный_активист запретить_выступление пиар_агентство генеральный_директор концерт_ продажа_билет park_live В_свой_очередь глава_ассоциация русский_православный страна_снг +322 |text американский рэпер ice cube объявить что возродить группа молодость nwa niggaz attitudes история прошлое год быть снятой фильм голос улица . как сообщать nme выступление группа состояться фестиваль калифорния год . Я постараться собрать участник nwa преподать небольшой урок история рэпер добавить что шоу быть сопровождаться необычный визуальный эффект . журналист предполагать что идти возможный появление покойный участник группа eazy E вид голограмма . nwa считаться основатель жанр гангст рэп . группа существовать год . помимо ice cube eazy E состав команда входить dr . dre mc ren участник . eazy E умереть год . фильм голос улица номинировать год категория хороший оригинальный сценарий . фестиваль воссоединение участник оригинальный состав группа guns roses вокалист экснуть роуза гитарист слэш басистый дафф не_играть год . |ngramms американский_рэпер быть_снятой голос_улица голос_улица как_сообщать_nme выступление_группа участник_группа считаться_основатель состав_группа +228 |text новый альбом выложить сеть сервис яндекс . музыка официальный релиз . заявить агент певица передавать новость . следующий выход альбом стартовать концертный тур поддержка . название альбом количество трек немой неизвестный . вероятно что войти выпустить певица песнь шанс деньга . гастроль поддержка альбом рассчитать месяц . охватить город россия украина латвия эстония . графика нет москва . концерт состояться томск . полноценный студийный альбом выпускать год . В минувший год впрочем выпустить саундтрек фильм сказка войти новый песнь . пятнадцатилетний карьер выпустить альбом простить любовь четырнадцать неделя тишина вендетта сборник Z sides войти песнь не_выпустить пластинка . |ngramms новый_альбом_ официальный_релиз певица__ передавать_риа_новость концертный_тур город_россия санкт_петербург студийный_альбом _ _ саундтрек_к_фильм новый_песнь +789 |text американский R B настоящее имя назначить чрезвычайный полномочный посол барбадос . сайт информационный служба правительство страна . любить родина отражаться благотворительный акция особенно сфера здравоохранение образование . демонстрировать патриотизм регулярно посещать страна ценить как дом отмечаться сообщение . барбадос моттлить заявить что певица внести весомый вклад популяризация островной государство рубеж . музыкальный талант показать дальновидность бизнес считать моттлить . назначение новый должность позволить сыграть важный роль изменение необходимый страна . что нетерпение ждать возможность поработать преобразить барбадос . певица родиться город барбадос год . В возраст год переехать сша подписать контракт студия звукозапись def jam . В год быть назначить культурный амбассадор государство обязанность входить популяризация туризм страна . |ngramms поп_исполнительница поп_исполнительница настоящее_имя _ правительство_страна благотворительный_акция регулярно_посещать отмечаться_в_сообщение премьер_министр премьер_министр что_певица сыграть_важный ждать_возможность певица_родиться сент_майкл В_возраст студия_звукозапись год_она_быть +225 |text американский певица актриса лопера осудить артистка мадонна высказывание время женский марш протест вашингтон . слово лопера приводить entertainment weekly . не_думать что пошлый польза . злоба хороший ясность человечность . крик невозможно изменить сознание напрягать человек певица . В качество положительный пример выступление привести актриса йоханссон . быть доходчиво красноречивый лопера . мадонна йоханссон женский марш протест новое президент сша трамп . певица изобиловать матерный выражение . поздний мадонна счесть нужный объяснить поведение заявить что хотеть приободрить женщина бросить произвол судьба человек не_отчаиваться сплотиться . акция трамп вступить должность президент пройти сша канада великобритания страна . президент отреагировать происходить twitter задаться вопрос почему участник протест не_голосовать выборы . |ngramms актриса_ актриса_ В_качество президент_сша _трамп что_хотеть должность_президент +45 |text фронтмена армяно американский system назвать кретин президент турция тайипа эрдогана . возмущение высказывание политика музыкант высказать страница facebook . недовольство артист вызвать заявление турецкий лидер что нагорный карабах принадлежать азербайджан . похоже эрдогать плохо учить история . нагорный карабах исторически быть армянский территория . отдать регион азербайджан . восточный турция однажды вернуться полноправный хозяин . эрдогать кретин что кто поддерживать выглядеть глупо написать . перемирие зона конфликт нагорный карабах быть нарушить ночь . сторона объявить прекращение огонь . нагорный карабах населить преимущественно этнический армянин провозгласить независимость азербайджан год . баку попытаться вернуть регион контроль военный путём потерпеть неудача . В год азербайджан армения непризнанный нагорный карабахский республика подписать посредничество россия бишкекский протокол перемирие . армяно американский группа system быть основать калифорния год . рокер выпустить альбом продажа сложность превысить миллион копия . В год коллектив удостоиться премия грэмми . |ngramms рок_группа __назвать написать_ быть_нарушить американский_группа миллион_копия +33 |text музыкальный сборник I группа zomba prison project состоять заключённый тюрьма зомба малави претендовать получение музыкальный премия грэмми категория хороший альбом жанр world music . сообщаться сайт американский академия звукозапись . как писать nyasa times песнь быть написать заключённый . название некоторый композиция носить глубоко личный характер give child вернуть ребёнок I world dying aids Я видеть мир умирать спид I kill Я большой не_убивать . отмечаться что малави входить список десять страна лидировать заразить спид . информация fusion . альбом доступный платный скачивание itunes amazon bandcamp . отмечаться что средство получить распространение автор потратить услуга юрист . часть композиция исполнить местный язык . В запись выпустить год диск человек исполнять композиция . сообщаться что продюсер группа супруга удаться договориться начальник тюрьма создание небольшой мобильный звукозапись год . В список претендент главный музыкальный премия грэмми год чаща фигурировать имя рэпер выдвинуть категория . награда номинировать российский пианист исполнение вариация категория хороший инструментальный соло классический музыка . грэмми престижный музыкальный премия мир . присуждаться американский академия звукозапись год . победитель определять член академия путём голосование . |ngramms музыкальный_премия музыкальный_премия музыкальный_премия хороший_альбом world_music академия_звукозапись академия_звукозапись как_писать быть_написать композиция_носить входить_в_список часть_композиция В_запись исполнять_композиция В_список рэпер__ _ классический_музыка член_академия путём_голосование +496 |text исландский певица выпустить youtube канал новый видеоклип снять формат виртуальный реальность . трек notget войти восемь студийный альбом исполнительница vulnicura релиз состояться год . режиссёр выступить дю пра warren du preez торнтон nick thornton jones . гудмундсдоттир полный имя артистка известный исландский певица . знаменитый необычный музыкальный ролик . клип нея снимать кинематографист как гондрить . |ngramms певица_ новый_видеоклип студийный_альбом выступить_ полный_имя музыкальный_ролик __и_ +437 |text американский певица предупреждение выпустить новый альбом доступный покупка пользователь itunes . счёт студийный сольный пластинка звезда R B носить имя beyonc содержимый трек . альбом характеризоваться как визуальный композиция снятой клип . В запись песня как коллега хип хоп муж джей зи дрейк оушный нигерийский писательница нгозить адичь . В купить beyonc itunes можно целиком включая трек видео бонус поздний композиция планировать начать продавать отдельность . предполагаться что студийный альбом выйти весной год пластинка задержаться . певица отказаться пятьдесят композиция быть подготовить альбом . сообщаться что пытаться определить стилистика новый работа . предыдущий альбом название выйти год . |ngramms американский_певица_ выпустить_новый_альбом сольный_пластинка снятой_клип В_запись коллега_ планировать_начать студийный_альбом новый_работа предыдущий_альбом _под_название +959 |text полицейский принести извинение лидер группа space юрист быть задержать основание заявление певец . сообщать интерфакс ссылка представитель адвокат . полицейский отпустить вернуться домой . полицейский принести имя извинение собеседница агентство . правоохранительный орган слово не_стать возбуждать уголовный основание заявление . В время как адвокат не_вернуть телефон документ . О что полиция вероятный не_стать возбуждать уголовный отношение сообщить источник правоохранительный орган ответить что окончательный решение быть процессуальный проверка . адвокат представлять интерес сообщить что отказаться дать показание отсутствие представитель консульство франция быть отпустить полиция . К следователь обязать прийти вечером . вслед лидер space быть освободить . адвокат добровинский заявить что повод проверка информация вымогательство деньга клиент послужить звонок пранкер вован лексуса предложить музыкант урегулировать претензия плагиат миллион евро . адвокат что сегодняшний не_общаться не_договариваться участвовать следственный эксперимент передача деньга француз . как сообщать kp.ru ссылка добровинский приехать встреча чемодан якобы находиться требовать сумма . столичный полиция опровергнуть факт задержание подтвердить что обратиться заявление вымогательство начать доследственный проверка . стать задержание москва лидер французский группа space представлять интерес юрист . защитница рассказать что быть произвести отделение сбербанк улица покровка . заявить что признать факт плагиат песня жестокий любовь готовый выплатить компенсация . адвокат певец опровергнуть слово . мосгорсуд вернуть группа space иск защита авторский право факт плагиат песня жестокий любовь исполнение . С заявление певец коллектив обратиться . иск что композиция жестокий любовь переработка произведение symphonic space dream . |ngramms принести_извинение лидер_группа _ _ _ _ певец__ адвокат__ адвокат__ _и_ _и_ полицейский_принести правоохранительный_орган правоохранительный_орган В_то_же_время окончательный_решение представлять_интерес отказаться_дать лидер_space быть_освободить адвокат___ послужить_звонок миллион_евро как_сообщать _приехать якобы_находиться полиция_опровергнуть факт_задержание лидер_французский группа_space группа_space интерес_юрист __рассказать отделение_сбербанк _заявить признать_факт жестокий_любовь жестокий_любовь жестокий_любовь выплатить_компенсация певец_опровергнуть авторский_право С_заявление коллектив_обратиться что_композиция +844 |text новый танцевальный альбом российский рэпер название стартовать строчка российский itunes . пластинка посвятить лёт певец представить . альбом джига хип хоп исполнитель джиган оказаться строчка . состоять трек некоторый записать совместно asti базилем jah khalib артист . год пластинка солнце аукцыон презентовать занять место рейтинг . неделя релиз музыкант выпустить одноимённый приложение app store . itunes стать доступный десять студийный музыкальный альбом шведский группа roxette название good karma . диск стартовать семь строчка включать песня английский язык . певица польша margaret попасть песенный предпоследний место трек cool . польский пресс сообщать что быть поехать евровидение выбор итог пасть шпак . официальный российский itunes неделя трек carla dreams pielea mea midi culture remix radio edit mahmut orhan feel feat . sena sener radio edit темников импульс timati где где feat . duke dumont ocean driveленинград В питер пить капкан margaret cool голос feat . гагарин альбом серебро сила баста баста часть джиган джига океан ельзить меж аукцыон солнце roxette good karmaбастый баста часть monatik звучать timati олимп |ngramms рэпер_ _российский_itunes _российский_itunes хоп_исполнитель строчка_ рок_группа место_в_рейтинг музыкант_выпустить стать_доступный десять_студийный музыкальный_альбом поп_рок семь_строчка английский_язык песенный_ radio_edit radio_edit _ _ В_питер _гагарин океан_ельзить +568 |text российский эстрадный певица орбакать прокомментировать отмена концерт украина быть запланировать . как подтвердить instagram выступление состояться осень . невозможность обеспечение безопасность коллектив зритель аншлаговый концерт украина преддверие проведение евровидение настояние организатор переноситься осень написать . кристинаорбакать kristinaorbakaite фото опубликовать национальный дворец искусство украина киев сообщить отмена концерт орбакать быть состояться . мероприятие перенести . слово организатор связать что киев находиться условие внешний военный агрессия возмущение общественность возникать возможный проведение концерт артист творческий деятельность связать страна агрессор российский федерация . киевский власть регулярно решение запрет посещение страна деятель российский культура . состояние начать год чёрный список числиться деятель культура мнение служба безопасность украина угрожать национальный безопасность страна . актёр певец . украина называть россия страна агрессор обвинять ведение действие донбасс . В москва опровергать утверждение указывать что россия не_являться стороной конфликт . |ngramms российский_эстрадный певица_ выступление_состояться обеспечение_безопасность концерт_на_украина фото_опубликовать_ пресс_служба дворец_искусство отмена_концерт что_киев внешний_военный возможный_проведение концерт_артист творческий_деятельность российский_федерация киевский_власть посещение_страна российский_культура деятель_культура служба_безопасность_украина национальный_безопасность актёр__ __и__ украина_называть _действие В_москва россия_не_являться +524 |text основатель американский jefferson airplane певец гитарист половина кантнер скончаться сообщать журнал rolling stone . причина смерть стать полиорганный недостаточность септический шок осложнение вызвать пережитое имя прошлое год инфаркт . музыкант быть год . как отмечать издание год кантнер чувствовать плохо находиться наблюдение врач . половина кантнер создать jefferson airplane вокалист год . выступление известный американский фестиваль монтерей вудсток алтамонт сделать коллектив высокооплачиваемый популярный год . международный признание музыкант принести альбом surrealistic pillow выпустить год . пластинка входить трек стать хит мир love white rabbit . кантнер jefferson airplane считаться пионер называть психоделический рок . |ngramms основатель_американский рок_группа сан_франциско сан_франциско сообщать_журнал rolling_stone причина_смерть прошлое_год музыкант_быть как_отмечать_издание _ международный_признание пластинка_входить стать_хит +834 |text британский певец бывший лидер группа smiths записать студийный альбом . сообщать nme . пластинка называться low high school . релиз информация издание состояться лейбл bmg . альбом стать новый веха музыка . счастливый приветствовать лейбл заявить представитель компания корд маршалл . диск быть записать студия la fabrique studios франция принадлежащий композитор моррикона forum studios рим . В сольный дискография студийный пластинка world peace business выйти год . музыкант выступать состав группа smiths год . |ngramms британский_певец лидер_группа _записать студийный_альбом сообщать_nme стать_новый представитель_компания композитор_ студийный_пластинка выступать_в_состав группа_the_smiths +75 |text К апу фестиваль primavera sound присоединиться британский артист skepta . сообщить организатор сайт событие . skepta выступить сцена парк дель форум . время выступление неизвестно . артист добавить список участник как шоу фестиваль отменить группа migos . член коллектив опоздать самолёт барселона skepta быть заменить главный сцена рейс задержать не_успеть . В заявить время выступить испанский группа los planetas . testing фото опубликовать В апе заявить артист arctic monkeys кейв генсбур tet fever ray лорд sparks tyler creator black madonna car seat headrest chvrches cigarettes sex slowdive . фестиваль ап ап многий фестиваль . И ап primavera sound звёздный всесторонний современный женский силой сделать специально фанат сайт событие . организатор обещать что выступление можно быть отлично потанцевать . В список участник российский исполнительница выступать псевдоним кедр ливанский . фестиваль проходить барселона . |ngramms время_выступление артист_добавить главный_сцена фото_опубликовать_ _кейв организатор_обещать можно_быть В_список российский_исполнительница _ +998 |text американский певица получить грэмми номинация хороший музыкальный видео клип композиция formation . сообщаться официальный сайт премия . В дать категория помимо нея быть номинировать видеоклип исполнитель бриджес дженять группа coldplay . композиция быть грэмми номинация песня год обойти formation love бибер years исполнение lukas graham A pill ibiza . альбом британский певица признать хороший год . В номинация быть представить канадский исполнитель бибер purpose австралийский певица sia acting американка гранд dangerous woman деметь confident . помимо получить грэмми хороший сольный композиция обойти hold бибер love представительница сша кларксон piece piece гранд dangerous woman . В сложность британка фигурировать номинация . премия категория хороший альтернативный альбом быть удостоить blackstar пластинка британский музыкант боуя умерший год . победа бороться radiohead A moon shaped pool поп pop depression пи джей hope demolition project фолк группа bon iver A million . боуя быть наградить грэмми номинация хороший композиция blackstar . В категория хороший метать исполнение победитель стать американский группа megadeth композиция dystopia . хороший год быть признанный I pretty американский cage elephant . обойти диск california blink magma музыкальный коллектив франция gojira death bachelor американец panic ! disco работа weezer одноимённый группа сша место проведение начаться церемония вручение престижный музыкальный премия грэмми стать штат калифорния сша . |ngramms американский_певица_ музыкальный_видео клип_на_композиция официальный_сайт дать_категория помимо_нея быть_номинировать исполнитель_ экс_экс песня_год _бибер _бибер _бибер _ певица_ признать_хороший поп_пластинка В_номинация быть_представить канадский_исполнитель певица_sia хороший_сольный поп_исполнение сша_ хороший_альтернативный быть_удостоить британский_музыкант_ _поп рок_исполнение В_категория победитель_стать американский_группа рок_альбом год_быть_признанный рок_группа панкандидат_группа музыкальный_коллектив место_проведение церемония_вручение музыкальный_премия лос_анджелес штат_калифорния +163 |text советский российский пианистка педагог профессор московский консерватория вера умереть год жизнь столичный больница . сообщить дочь кнорра . скончаться вечером . причина смерть не_уточняться . что неделя музыкант попасть реанимация . кнорра пояснить что как оказаться клиника мать вести активный образ жизнь продолжать заниматься педагогический общественный деятельность . вера родиться год москва семья пианистка инженер экономист . В восемь год поступить центральный музыкальный школа московский консерватория продолжить обучение консерватория . окончание аспирантура музыкант взяться преподавать сначала школьник студент . быть педагог часто организовывать концерт ученик различный город страна активно проводить мастер класс выступать . В год вести телевизионный передача открытый рояль . В год получить звание заслужить артистка рсфср народный . быть премия журнал огонёк хороший публицистический статья музыкальный тематика . В год пианистка возглавлять московский союз музыкант . |ngramms московский_консерватория московский_консерватория _умереть год_жизнь дочь_ _скончаться причина_смерть вести_активный образ_жизнь продолжать_заниматься общественный_деятельность _родиться музыкальный_школа продолжить_обучение _часто город_страна проводить_мастер получить_звание заслужить_артистка премия_журнал В_последний_год +452 |text прокуратура признать невозможный проведение экспертиза питерский концерт леди гага жалоба депутат заксобрание город милоновый . сообщать интерфакс ссылка прокуратура . отказ проверять концерт прокуратура объяснить отсутствие запись электронный носитель . видео концерт разместить youtube сотрудник надзорный ведомство не_устроить . региональный центр судебный экспертиза министерство юстиция рф куда прокуратура обратиться помощь заявить отсутствие методика мочь выявить признак пропаганда мужеложество лесбиянство трансгендерность бисексуализм выступление певица . заявление милоновый прокуратура обратиться экспертный мнение центр экспертиза государственный университет университет министерство внутренний российский федерация российский государственный педагогический университет имя ответ не_получить . прокурорский проверка запрос депутат милоновый быть начать год . депутат заочно обвинить леди гага что концерт иметь место призыв несовершеннолетний поддержать организация лесбиянка неправомерный использование флаг рф клевета адрес страна . ряд местный активист пытаться засудить певица мадонна как гага традиционно поддерживать лгбт движение суд отклонить иск адрес мадонна . концерт леди гага пройти год . билет иметь возрастной маркировка . В ход выступление гага критически упомянуть запрет гей пропаганда выразить благодарность заявить что отношение человек поддаваться регулирование закон . видеозапись концерт леди гага быть запретить youtube выложить непрофессиональный запись концерт зал . |ngramms санкт_петербург санкт_петербург леди_гага леди_гага леди_гага леди_гага город_ пресс_служба северо_западный региональный_центр выступление_певица санкт_петербургский санкт_петербургский государственный_университет российский_федерация российский_государственный имя_ запрос_депутат быть_начать иметь_место ряд_местный певица_мадонна отклонить_иск В_ход премьер_министр _ быть_запретить +842 |text православный активист обратиться мэрия новосибирск требование проконтролировать концерт ленинград наметить сообщать . что песнь группа мочь пропагандировать алкоголизм наркомания содержимый нецензурный брань как пример композиция В питер пить . мнение общественник клип В питер пить позорить страна целое . В ролик высмеиваться представитель полиция формироваться негативный отношение правоохранительный орган текст обращение . активист заявить что песня звучать открытый площадка . подпись поставить руководитель петербургский новосибирский отделение движение народный собор задоить . выход клип В питер пить конец год вызвать недовольство многий общественник представитель власть парламентарий . К пример депутат городской заксобрание призвать запретить деятельность ленинград прокуратура решить проверить ролик пропаганда алкоголизм . написание заметка клип собрать youtube миллион просмотр . |ngramms православный_активист песнь_группа В_питер В_питер В_питер санкт_петербург санкт_петербург В_ролик правоохранительный_орган __и_ выход_клип представитель_власть К_пример _ запретить_деятельность решить_проверить клип_собрать миллион_просмотр +949 |text В финал музыкальный конкурс евровидение пройти стокгольм победить певица представлять украина . исполнить песня получить итог голос . второе место певица австралия дэмить имя песня sound silence звук молчание получить голос . российский исполнитель песня единственный позиция получить голос . песня посвятить депортация крымский татарин время великий отечественный война стать предмет споровый задолго начало евровидение . признание вокалистка композиция тесно связать история семья . организатор не_найти песня политический подтекст некоторый российский политика выступить жёсткий критика выбор тема . К пример депутат петербургский заксобрание предложить направить евровидение россия польша артист спеть волынский резня год зампред комитет госдума информационный политика деньгин выражать надежда что организатор не_допустить песня конкурс . признаться российский пранкер лексуса вован связаться имя украинский министр культура нищука что песня иметься политический подтекст . точно не_попасть евровидение рассматриваться как политический акция . политический лозунг . есть безусловно . знать секрет . певица добавить что всеуслышание песня снять конкурс . надо быть мудрый аккуратный . пранкеры позвонить министр культура молдавия грузия просьба поддержать евровидение . выразить готовность помочь . голосование страна оказаться чей профессиональный жюри дать украина высокий балл . высокий оценка дать страна как босния герцеговина дания латвия израиль сербия македония польша словения . президент украина выразить благодарность имя страна . ! ! ! невероятный выступление победа ! украина сердечно благодарить ! написать twitter . лично поздравить победа . голос мир украинский народ . правда как победить ! вскоре добавить президент . победить украинск национальный отборочный тур . певица исполнять авторский музыка стык джаз world music ритм блюз электронный музыка госпеть . известность принести выступление международный конкурс молодая исполнитель новый волна юрмала где получить . |ngramms В_финал музыкальный_конкурс певица_ представлять_украина исполнить_песня исполнитель__ песня_ посвятить_депортация крымский_татарин отечественный_война стать_предмет песня_политический российский_политика жёсткий_критика выбор_тема К_пример депутат_петербургский __предложить информационный_политика что_организатор не_допустить_песня _признаться _ _ _ министр_культура министр_культура что_в_песня певица_добавить поддержать_ выразить_готовность профессиональный_жюри дать_украина высокий_оценка сан_марино украина__ исполнять_авторский world_music электронный_музыка известность_ выступление_на_международный молодая_исполнитель новый_волна +273 |text шведский диджей известный псевдоним avicii покончить . сообщать sun ссылка родственник артист . как пояснить издание семья молодая человек оставить прощальный записка . возлюбить быть искатель хрупкий артистический душа ищущий ответ экзистенциальный вопрос ... когда перестать гастролировать хотеть обрести душевный равновесие быть счастливый заниматься что любить большой музыка . бороться мысль смысл жизнь счастие . большой мочь продолжать рассказать родственник . В время поклонник обвинить смерть менеджер . как писать sun avicii неоднократно жаловаться напрячь график заявлять что член команда всячески противиться желание прекратить выступление заставлять ездить гастроль . Я что умереть . Я . И не_хотеть слышать что получать удовольствие мысль отыграть концерт приводить издание слово посвятить документальный фильм выйти прошлое год . уйти жизнь город маскат оман где навещать . быть год . год диджей страдать проблема здоровье алкоголь . признаваться что бросить пить . диджей avicii начинать карьер ремикс . прославиться год благодаря сингл feelings seek bromance blessed levels . В год журнал forbes назвать высокооплачиваемый мир . |ngramms шведский_диджей _ _ известный_под_псевдоним родственник_артист как_пояснить семья_ молодая_человек рассказать_родственник В_то_же_время смерть_ прекратить_выступление приводить_издание слово_ прошлое_год начинать_карьер год_благодаря журнал_forbes высокооплачиваемый_ +930 |text режиссёр председатель комитет госдума культура назвать мат новый клип группа ленинград явный нарушение закон сообщать радиостанция москва . небольшой что можно простить остроумие режиссёр добавить что клип понравиться . новый клип группа ленинград песня экспонат выйти стать хит социальный сеть . написание заметка ролик посмотреть большой миллион . организатор выставка ван . ожить полотно московский центр дизайн artplay объявить решение провести специальный акция мотив экспонат . предложить девушка каблук выше десять сантиметр посмотреть экспозиция бесплатно работа . объясняться что песня экспонат звучать слово водить выставка ван героиня клип надевать туфля шпилька подошва предварительно покрасить красный выглядеть как фирменный продукт дизайнер лубутена . фраза песнь ленинград процитировать голливудский актёр поздравлять российский студент днём . |ngramms режиссёр__ новый_клип новый_клип нарушение_закон сообщать_радиостанция стать_хит социальный_сеть ролик_посмотреть выше_десять что_в_песня выглядеть_как актёр__ +824 |text американский музыкант солист группа tokens митч марго скончаться год жизнь . сообщать los angeles times ссылка член семья . причина смерть не_указать сообщаться что умереть дом студио сити штат калифорния . дата время похороны быть объявить поздний . tokens американский вокальный группа основать год . изначально коллектив называться linc tones . артист исполнять музыка стиль ду воп поджанр ритм блюз стиль . музыкальный коллектив прославиться начало благодаря песня lion sleeps tonight поздний прозвучать мультфильм король левый . В год группа быть зал слава вокальный группа . В дискография tokens насчитываться альбом unscrewed появиться год . марго присоединиться коллектив спустя год основание . вокал заниматься продюсирование проект группа happenings chiffons . |ngramms американский_музыкант год_жизнь причина_смерть штат_калифорния время_похороны быть_объявить вокальный_группа вокальный_группа нью_йорк коллектив_называться исполнять_музыка поп_музыка музыкальный_коллектив год_группа В_дискография +750 |text фигурант панамский досье виолончелист рассказать как просить меценат деньга поддержка молодая талантливый музыкант . воскресение сообщать вести . . Я ходить клянчить кто мочь что инструмент стоять дорого . профессура мочь дать хороший совет . А хотеть быть хороший инструмент хороший профессор хороший зала рассказать панамский документ быть назвать миллиардер . однажды меценат предложить небольшой доля бизнес мочь иметь собственный доход поддержка российский культура . вести . отмечать что музыкант стать создатель река талант система поиск воспитание молодая дарование . являться художественный руководитель дом музыка . Я хотеть подарить инструмент образовательный центр детский центр сочи . восхитительный инструмент . рояль fazioli . перечисленный услышать специалист бешеный деньга рассказать виолончелист . президент сообщить что музыкант являться миноритарный акционер российский компания зарабатывать деньга . миллиард доллар . чушь нет ничто подобный . глава государство пояснить что заработать деньга виолончелист потратить покупка музыкальный инструмент граница привезти россия . Я гордиться что есть добавить . международный консорциум журналистский расследование icij обнародовать материал офшорный счёт ряд мировой политик общественный деятель . В расследование фигурировать семья российский чиновник мировой лидер называться владелец панамский офшор . часть материал посвятить близкий окружение публикация называть близкие российский президент . |ngramms __рассказать поддержка_молодая рассказать_ быть_назвать иметь_собственный поддержка_российский что_музыкант что_музыкант художественный_руководитель санкт_петербургский дом_музыка Я_хотеть президент__ миноритарный_акционер российский_компания миллиард_доллар нет_ничто глава_государство заработать_деньга музыкальный_инструмент добавить_ международный_консорциум общественный_деятель российский_чиновник мировой_лидер часть_материал называть_близкие +412 |text нейросеть создать сотрудник яндекс написать музыка стиль русский композитор . мелодия представить ролик опубликовать youtube канал компания . аранжировка сведение трек создать искусственный интеллект сделать эксперт творчество рассказывать директор маркетинг сервис яндекс себрант . как отмечать себрант музыка быть исполнить камерный оркестр глава правнук создатель терменвокс терменом . использовать инструмент терменвокс арфа струнный . композитор пианист представитель музыкальный символизм основоположник цветомузыка . |ngramms __и__ написать_музыка композитор__ опубликовать_на_youtube _ _ как_отмечать быть_исполнить представитель_музыкальный +499 |text C берег волга нижний новгород пройти фестиваль современный музыка технология alfa future people . год стать фестиваль юбилейный . организатор фестиваль озвучить главное цифра характеризовать событие . В стать что подготовка afp команда тратить год . В пиковый подготовка заниматься тысяча человек . С год фестиваль посетить тысяча человек . А год партия билет дата место быть полностью раскупить уйти часы . слово организатор разница дорогой бюджетный артист фестиваль . монтаж главный сцена длиться месяц . размер год составлять метр ширина метр высота . большой сцена восточный европа заявить организатор . распространить позиция артистический оказаться трус . год музыкант фестиваль быть купить пара трус . просьба музыкант разный год быть девушка костюм горилла расчесать артист уса постер фотография любимый актёр живой бамбуковый пальма носка средний жёсткость добавить организатор . участник фестиваль год анонсировать артист как steve aoki alesso tiesto afrojack kshmr aly fila aphrodite dvbbs gareth emery deeper kshmr swanky tunes vini vici yellow claw flux pavilion fonarev headhunterz krewella modestep noisecontrollers rudimental dj set slander slushii subfocus строгон volac zeskullz дельфин netsky . |ngramms нижний_новгород фестиваль_современный год_стать организатор_фестиваль тысяча_человек тысяча_человек быть_полностью главный_сцена год_составлять восточный_европа заявить_организатор быть_купить год_быть участник_фестиваль +804 |text дикинсон вокалист британский метать группа iron maiden излечиться рак сообщаться официальный сайт коллектив . музыкант пройти курс лучевой химиотерапия что магнитный резонансный томография мрт не_выявить признак опухоль . Я хотеть поблагодарить фантастический медицинский команда обеспечить удивительный исход . член семья болезнь быть многое тяжёлый имя поддержка терпение . И сердечный благодарность поклонник коллега слово пожелание заявить дикинсон . добавить что чувствовать отлично нетерпение ждать возможность вернуться работа . менеджер группа род смоллвуд пояснить что реабилитация занять некоторый время возобновить выступление iron maiden смочь следующий год . музыкант слово продолжать работать студийный альбом релиз состояться конец год . злокачественный опухоль спинка язык вокалист iron maiden быть обнаружить год . назначить терапия начать проходить курс лечение . концерт группа прийтись отменить . iron maiden образоваться год оказать значительный влияние развитие метать направление музыка как великобритания мир . группа основать бас гитарист написать большинство песня коллектив . музыкант продолжать активно выступать . год карьера выпустить альбом выйти год . iron maiden свыше миллион копия пластинка мир . |ngramms вокалист_британский официальный_сайт пройти_курс Я_хотеть ждать_возможность менеджер_группа некоторый_время следующий_год студийный_альбом релиз_который_состояться быть_обнаружить курс_лечение концерт_группа прийтись_отменить оказать_значительный влияние_на_развитие гитарист__ продолжать_активно год_карьера миллион_копия +68 |text российский певец композитор не_собираться обжаловать решение тверской суд москва постановить лишить водительский право полтора год отказ пройти медицинский освидетельствование состояние опьянение . лента . сообщить директор музыкант . ситуация произойти быть выступать качество оправдываться сторона не_хотеться . бесполезный пытаться доказать заявить представитель исполнитель . быть признанный виновный статья . кодекс административный правонарушение невыполнение водитель требование прохождение медицинский освидетельствование состояние опьянение . помимо лишение право управление транспортный средство наказание предусматривать штраф размер тысяча рубль . композитор остановить инспектор дпс начало . предложить подышать трубка пройти медицинский освидетельствование больница отказаться плохой самочувствие . член союз композитор россия . композиция одинокий волчица безнадёга . песня как упоительный россия исполнять группа белый орёл . написать музыка хит автор текст стать поэт пеленягрэ . |ngramms российский_певец обжаловать_решение суд_москва полтора_год пройти_медицинский пройти_медицинский сообщить_директор музыкант__ выступать_в_качество заявить_представитель быть_признанный лишение_право транспортный_средство штраф_в_размер тысяча_рубль _ член_союз композитор_россия написать_музыка поэт_ +640 |text певица прокомментировать появление собственный снимка обнажиться грудь twitter служба безопасность украина сбу . слово артистка приводить радиостанция москва . что фото обнаружить муж дико удивиться что снимка разместить сбу . первое что когда проснуться есть фотография грудь твой . Я честно посмотреть ! кто знать близко зритель мочь сравнить форма разный . добавить что украинский спецслужба вероятно нет занятие как бороться . что сила сбу огромный золотой сидеть умница талантище закончить школа высокий учебный заведение . сбу фотография показать мощь существование поздравлять подчеркнуть певица . В очередь супруг ридуса что мнение подобный действие сторона ведомство недопустимый . безобразие . политический разногласие страдать простой народ . страшный отчитаться что спецоперация провести не_пустить мать больной ребёнок заявить . снять поезд следующий украина . Я конотоп снять поезд мочь навестить ребёнок заболеть что запретить въезд украина . пересаживать поезд . посещение керчь год сообщить соцсеть . поздний служба безопасность украина twitter выложить фотография исполнительница частично обнажиться грудь . снимка содержимый надпись удача . слово госпогранслужба запретить въезд страна год . артистка родиться год город мукачево закарпатский область украинский сср детство юность пройти киев . В переехать москва . У нея единственный ребёнок брак цекать дочь родиться год . жить матерь украинский столица . |ngramms певица__ служба_безопасность_украина служба_безопасность_украина слово_артистка кто_знать подчеркнуть_певица В_свой_очередь _ супруг_ подобный_действие запретить_въезд пресс_секретарь въезд_в_страна год_в_город пройти_в_киев У_нея дочь_ украинский_столица +154 |text российский хип хоп исполнитель известный псевдоним попасть больница . телеканал рассказать музыкант . У артист достаточно жёсткий график организм подвергаться жёсткий нагрузка год артист лейбл black star . прима . лента . стараться проходить полный обследование вовремя мера восстановление организм заявить . добавить что рэпер здоровый продолжить работа ближний время . В официальный instagram появиться новый пост фотография исполнитель хэштег . фото опубликовать популярный хип хоп исполнитель владелец лейбл black star . рэпер принадлежать сеть закусочный black star burger . |ngramms российский_хип исполнитель__ известный_под_псевдоним попасть_в_больница пиар_менеджер музыкант__ достаточно_жёсткий _добавить продолжить_работа появиться_новый фото_опубликовать_ хоп_исполнитель принадлежать_сеть +192 |text харьковский группа nizza выпустить пластинка ку . сообщаться официальный сообщество дуэт вконтакте . радушный приветствие долгий отсутствие . возвращение взрослый детский площадка пост . пластинка ку войти композиция доступный платный прослушивание скачивание . ку студийный альбом дискография дуэт запорожец . предыдущий пластинка выйти год . музыкант образовать группа nizza начало нулевой . коллектив распасться выпустить время альбом . В год музыкант вновь объединиться . |ngramms выпустить_пластинка детский_площадка студийный_альбом дуэт_ предыдущий_пластинка год_музыкант +133 |text участник евровидение белоруссия ivan прострелить рука съёмка ролик презентация москва . новость рассказать продюсер дробыш . отмечаться что певец повредить кисть время стрельба лука . В растяжка тетива произойти сильный рывок стрела сорваться прямиком тыльный сторона ладонь . рана оказаться немногочисленный глубокий пояснить источник . съёмка прийтись остановить оказать артист помощь . добавить что перестараться хотеться сделать красиво достойно . финал евровидение пройти стокгольм . россия конкурс представить презентовать песня . выбор украинский композиция евровидение вызвать критика российский чиновник депутат . певица представить песня посвятить депортация крымский татарин . эксперт конкурс не_найти песня политический подтекст . депутат петербургский заксобрание предложить ответить киев совместный выступление россия польша крымский назвать трек пляска зампред комитет госдума информационный политика деньгин выразить надежда что композиция конкурс не_допустить . |ngramms _ _ съёмка_ролик пресс_служба продюсер_ что_певец пояснить_источник _добавить пройти_в_стокгольм россия_на_конкурс певица_ представить_песня посвятить_депортация крымский_татарин песня_политический депутат_петербургский __предложить совместный_выступление вице_премьер __назвать информационный_политика выразить_надежда что_композиция +625 |text лидер российский группа ночное снайпер интервью газета коммерсантъ сообщить что концерт коллектив запланировать мочь не_состояться решение власть город . что владимирский администрация внезапно отозвать площадка отвести выступление нужда город . причина певица видеть что год давать концерт киев . отмена владимирский выступление мочь сорваться турне регион . сообщение отмена юбилейный концерт ночное снайпер не_поступать . официальный сайт группа информация событие не_изменить . владимирский область сообщаться что патриотичный настроить общественник регион организовать кампания запрет концерт . активист движение быть время представитель ветеранский организация движение здоровый образ жизнь усмотреть поведение певица поддержка действующий украина власть направить письмо губернатор председатель общественный палата владимирский область директор дк где запланировать выступление . быть состояться акция суть время сбор подпись концерт . |ngramms лидер_российский рок_группа _ концерт_коллектив решение_власть концерт_в_киев сообщение_о_отмена концерт_ концерт_ активист_движение образ_жизнь направить_письмо общественный_палата запланировать_выступление +106 |text С сайт американский музыкант исчезнуть упоминание присуждение нобелевский премия литература . писать guardian . изначально фраза появиться страница текст песня . певец не_комментировать присуждение премия . неизвестно приехать музыкант церемония вручение награда . нобелевский премия создание новый поэтический выразительность рамка американский песенный традиция присудить . размер награда год составить восемь миллион шведский крона тысяча доллар сша . постоянный секретарь шведский академия понадеяться что эксперт не_быть упрекать решение сравнить . культовый фигура значимый популярный музыкант современность . год карьера получить девять грэмми золотой глобус . |ngramms сайт_американский музыкант__ писать_the_guardian появиться_на_страница текст_песня создание_новый американский_песенный _присудить год_составить восемь_миллион тысяча_доллар шведский_академия _ _ _и_ рок_музыка год_карьера +823 |text лидер группа ленинград шнур оштрафовать использование нецензурный выражение концерт белгород . С участник коллектив материться время шоу быть взыскать рубль . сообщать ссылка источник правоохранительный орган . В умвд регион агентство подтвердить что трое участник группа выступать город быть оштрафовать мелкий хулиганство статья . коап рф . слово сотрудник правоохранительный орган музыкант не_стать вступать конфликт полиция предоставить персональный дать . издание аргумент неделя писать что шнуровой быть оштрафовать солистка группа . концерт ленинград пройти белгородский дворец спорт космос . В шнур посвятить матерный стихотворение сгореть машина жена . машина нет место . А есть песнь произведение . bmw alpina шнуровой быть уничтожить огонь мариинский театр . |ngramms лидер_группа _шнур участник_коллектив пресс_служба агентство_подтвердить участник_группа быть_оштрафовать быть_оштрафовать правоохранительный_орган солистка_группа дворец_спорт шнур_посвятить санкт_петербург +435 |text лидер группа ленинград шнур написать стихотворение обман женщина . творение опубликовать instagram . двигаться вперёд хороший оглядка . женщина врать порядок . шнур разбавить стихотворение матерный выражение . женщина лгать порядок завершить . знакомый музыкант жена рассказать что мочь стать причина развод . слово источник инициатор стать шнур бросить супруг якобы решить измена . шнур объявить развод . поздний опубликовать соцсеть ряд стихотворение переживание . В заявить что больно раненый мочь убитый пожаловаться невозможность завязать узел шнур . В впервые высказаться причина расставание . |ngramms лидер_группа _шнур _шнур написать_стихотворение опубликовать_в_instagram _рассказать мочь_стать опубликовать_в_соцсеть +345 |text британский radiohead начало работа девять студийный альбом сообщать variety . вывод издание сделать основа запись twitter продюсер коллектив найджесть годрича . разместить фотография участник radiohead йорк гринвуд изобразить микшерный пульт . пластинка название king limbs музыкант выпустить год . как отмечать издание год гитарист группа гринвуд признаваться что официальный план выпуск новое альбом музыкант нет есть план запись новый песня . variety уточнять что участник radiohead заниматься индивидуальный проект оставаться неясный как коллектив быть выпускать новый материал . К пример год вокалист йорк выпустить сольный альбом . месяц пластинка анонсировать барабанщик селуэй . альбом king limbs восемь дискография группа быть представить год . коллектив не_выпускать новое материал выступать концерт прозвучать новый песня . radiohead быть основать год . альбом computer обеспечить группа мировой успех считаться наиболее значимый . В десятилетие группа выпустить альбом принести культовый статус . В год альбом rainbows быть выложить музыкант сеть свободный скачивание что стать прецедент музыкальный индустрия мнение эксперт шаг ознаменовать окончательный переход экономика музыкальный бизнес новый принцип работа . |ngramms рок_группа студийный_альбом продюсер_коллектив разместить_фотография участник_radiohead участник_radiohead как_отмечать_издание гитарист_группа новое_альбом новый_песня новый_песня быть_выпускать новый_материал К_пример сольный_альбом барабанщик_ новое_материал рок_альбом группа_выпустить быть_выложить музыкальный_индустрия музыкальный_бизнес принцип_работа +123 |text поместить фотография певец эстлить обложка переиздание сингл famous international playboys писать pitchfork . произойти как право публикация изображение бывший лидер smiths отказать боуя изначально планироваться что обложка украсить неизвестный фото боуя сделать год художница линдёр стерлинг . образ прибегнуть интернет называть розыгрыш когда жертва вместо ссылка что интересовать давать ссылка дебютный сверхуспешный клип эстлить gonna give совместный фотоизображение эстлить быть сделать год кулиса телешоу pops . причина размолвка боуя не_называться . артист ладить записывать год боуя спеть песня I gonna happen someday альбом black tie white noise бывший фронтмена smiths очередь год регулярно исполнять концерт песня drive saturday изначально войти альбом боуя aladdin sane год . В год песня стать би сайдом сингл . |ngramms _поместить певец_ бывший_лидер _боуя изначально_планироваться нью_йорк быть_сделать записывать_ спеть_песня бывший_фронтмена альбом_боуя +561 |text московский лефортовский районный суд постановить отправить принудительный лечение психиатрический больница основатель группа смысловой галлюцинация . сообщать . . музыкант заявить портал что попасть суд инцидент столичный супермаркет . идти магазин супруга вход пристать трое мужчина бывший спецназовец . кричать жена эй девчонка . начать приставать хватать рука . Я отбиться забежать магазин . думать отсидеться охрана есть . потерпевший зайти . причём пьяный подтвердить экспертиза . начать обзывать слово угрожать убийство расправа поведать . слово музыкант взять нож хозяйственный отдел нанести обидчик рана . как живот поцарапать начать кататься вопль рассказать исполнитель . мужчина результат произойти оказаться больница . приговор принудительный лечение объяснить что состоять учёт психбольница что отец не_хотеть отправлять сын армия . разгар быть война афганистан мочь туда отправить . музыкант выразить обеспокоенность что диагноз психический расстройство обусловить повреждение дисфункция головной мозг соматический болезнь лечение психбольница мочь стать пожизненный поскольку недуг не_лечиться больница класть излечение . как писать ura . быть зарегистрировать лефортовский районный суд год . постановление бессрочный принудительный лечение быть вынести защита подать апелляционный жалоба не_быть рассмотреть . быть участник смысловой галлюцинация год основание группа . исполнять некоторый вокальный партия играть гитара ударный участвовать написание текст песня . |ngramms _ музыкант_заявить музыкант_выразить головной_мозг мочь_стать как_писать быть_зарегистрировать быть_вынести апелляционный_жалоба быть_участник вокальный_партия текст_песня +298 |text бывший гитарист группа kiss эйс фрейли быть госпитализировать американский город уилкс барра штат пенсильвания . как сообщаться страница музыкант facebook диагностировать обезвоживание переутомление . консультация врач фрейли согласиться отменить концерт город поукипзь штат билет распродать сообщение . отмечаться что выступление музыкант быть состояться . В итог концерт перенести конец точный дата стать известный поздний . выписка клиника фрейли отправиться домой калифорния . быть находиться полный восстановление . половина фрейли эйс фрейли играть группа kiss основание год год . начать сольный карьер вернуться группа . сотрудничать коллектив год . |ngramms гитарист_группа американский_город сообщаться_на_страница музыкант_в_facebook нью_йорк что_выступление В_итог концерт_перенести точный_дата стать_известный половина_ играть_в_группа начать_сольный_карьер +752 |text украина мочь отказаться следующий евровидение год победа одержать россиянин . facebook сообщить генеральный директор национальный вещатель страна . вынужденный думать альтернатива . победитель стать человек имя думать следующий год вновь отказаться конкурс . добавить что порадоваться украинский участница независимо какой место занять . букмекер основный борьба нынешний евровидение развернуться россия украина . страна победитель получить возможность провести конкурс следующий год . финал год пройти стокгольм . немой выступить исполнитель . выйти сцена номер . песня стать предмет споровый задолго начало евровидение . композиция посвятить депортация крымский татарин признание вокалистка тесно связать история семья . организатор не_найти песня политический подтекст некоторый российский политика выступить жёсткий критика выбор тема . К пример депутат петербургский заксобрание предложить направить евровидение россия польша артист спеть волынский резня год зампред комитет госдума информационный политика деньгин выражать надежда что организатор не_допустить песня конкурс . украина отказываться евровидение год . национальный вещатель объяснить что ситуация страна не_позволять отправить исполнитель конкурс . |ngramms украина_мочь _ _ facebook_сообщить генеральный_директор победитель_стать имя_ основный_борьба россия_и_украина получить_возможность провести_конкурс пройти_в_стокгольм выйти_на_сцена песня_ стать_предмет посвятить_депортация крымский_татарин песня_политический российский_политика жёсткий_критика выбор_тема К_пример депутат_петербургский __предложить информационный_политика что_организатор не_допустить_песня ситуация_в_страна финансово_экономический отправить_исполнитель +614 |text группа big выступить московский adrenaline stadium композиция новое альбом antipositive . сообщаться поступить редакция лента . . половина пластинка выйти . концерт запланировать музыкант big представить альбом целиком . antipositive лихой микс панк рейва рэп прочитать сильный издевательский русский акцент . новый альбом большой протест агрессивный музыка некоторый трек появиться электрогитара вносить картина необходимый живой напор организатор концерт . big выпустить клип трек skibidi собрать десять миллион просмотр . билет концерт big можно приобрести сайт клуб adrenaline stadium . |ngramms новое_альбом пресс_релиз поступить_в_редакция пластинка_выйти представить_альбом новый_альбом некоторый_трек организатор_концерт миллион_просмотр билет_на_концерт можно_приобрести +826 |text российский музыкант . бывший лидер группа ва банкъ глава самопровозгласить донецкий народный республика днр попасть обстрел район промзона город авдеевка ясиноватая недалеко донецк сообщать интерфакс . боевой крещение быть передовой попасть обстрел . выезжать передовой раздавать диск ребята служить . засечь кортеж начаться стрельба крупнокалиберный автоматический оружие рассказать . время обстрел не_пострадать . . год . С год возглавлять ва банкъ записать альбом как жизнь колесо кухня нижний тундра игрок шпион . В выпустить совместный альбом боцман бродяга . В цыганский ролл брат жемчужный бразильский крейсер . странный песнь А . Н . богушевский . В год присвоить звание заслужить артист российский федерация . |ngramms музыкант__ лидер_группа народный_республика _ _ _ _ рассказать_ год_возглавлять рок_группа выпустить_совместный заслужить_артист российский_федерация +973 |text генеральмузикдиректор музыкальный руководитель дирижёр венский опера вельзер место потерять сознание время выступление . сообщать газета die presse . В сообщение уточняться что начало исполнение вельзер место почувствовать острый боль поясница . продолжить дирижировать конец первое действие потерять сознание упасть дирижёрский пульт . дирижёр доставить больница место антракт занять ассистент . мнение врач причина потеря сознание стать сосудистый коллапс . здоровье вельзер место ничто не_угрожать . осмотр больница добраться дом . постановка опера альбана оркестр быть руководить запасный дирижёр . мнение корреспондент телерадиокомпания orf инцидент мочь стать следствие напрячь график вельзер место . дирижёр быть выступление постановка . продолжительность опера составлять часы считаться тяжёлый музыкант . вельзер место стать дирижёр как получить автокатастрофа травма заставить бросить занятие скрипка . возглавлять лондонский филармонический оркестр работать оперный театр цюрих . В настоящее время являться музыкальный руководитель венский опера возглавлять кливлендский оркестр . В год журнал musical america признать вельзер место дирижёр год . |ngramms музыкальный_руководитель музыкальный_руководитель опера_ сообщать_газета В_сообщение _ конец_первое доставить_в_больница оркестр_быть мочь_стать стать_дирижёр оперный_театр В_настоящее_время год_журнал +669 |text депутат госдума предложить сократить использование песня иностранный язык тело радиоэфир . мнение депутат достаточно отвести имя процент эфирный время . исключение проект допускаться язык страна снг сообщать известие . подготовить соответствующий дополнение закон О средство массовый информация . пояснять что принятие мера позитивно сказаться популяризация российский музыка ограничить влияние западный культура . когда центральный канал слышаться исполнение иностранный язык непонятно страна тысячелетний культура сырьевой придаток запад ? музыкальный культура богатый разный жанр романс опера русский народный песнь . неприятный справедливый поговорка победить город играть музыка победитель . складываться впечатление что проигрывать информационный культурный война отмечать . В очередь представитель думский комитет культура депутат скептически отнестись предложение . пример обратиться кино . минкультуры оплачивать фильм мочь выйти прокат низкий качество какой квотирование мочь идти . патриотический любовь родина . нужно целенаправленно методично идти направление повышение качество квота не_понадобиться подчеркнуть . представитель российский эстрада поддержать инициатива . певица вика пример рассказать что победитель телепроект голос труд смочь уйти медиапокровитель откровенно выполнять западный заказ . прийтись расплачиваться выйти лапа американский проект . А нужно кормить семь патриотически настроить человек хотеть петь страна родной язык нет возможность пояснить . |ngramms депутат_госдума __предложить иностранный_язык иностранный_язык страна_снг средство_массовый разный_жанр русский_народный играть_музыка В_свой_очередь _ _ повышение_качество представитель_российский поддержать_инициатива пояснить_ +685 |text шотландский музыкант создатель басистый bay city rollers скончаться возраст год . сообщать . умереть больница эдинбург . слово родственник причина смерть стать атаковать жизненно важный орган вирус подхватить время отдых мексика . музыкант вернуться курорт середина быть госпитализировать . подробность не_раскрываться . стать участник коллектив bay city rollers сформироваться год . группа выпустить девять студийный альбом середина приобрести мировой известность . помимо бас играть группа акустический гитара синтезатор . bay city rollers распалиться год . группа частично воссоединиться . стать смерть лидер группа мажор снять рейс португалия невыносимый вонь вызвать некроз ткань . музыкант оказаться реанимация средство закончиться страховка . |ngramms музыкант__ поп_группа скончаться_в_возраст _умереть причина_смерть быть_госпитализировать _ _ участник_коллектив группа_выпустить студийный_альбом мировой_известность играть_в_группа лидер_группа +783 |text американский певица дель рей выпустить новый песнь . ролик опубликовать youtube канал исполнительница . трек название summer bummer записать совместно рэпер ap rocky playboi carti создание композиция groupie love . песнь войти предстоящий альбом дель рей релиз наметить . пластинка быть называться lust life . певица выпустить сингл диск love lust life показать обложка будущее альбом . дискография певица студийный пластинка . honeymoon дель рей выпустить . |ngramms американский_певица_ дель_рей дель_рей новый_песнь опубликовать_на_youtube канал_исполнительница совместно_с_рэпер предстоящий_альбом быть_называться будущее_альбом _дель_рей +893 |text леди гага окунуться ледяной вода озеро мичиган город чикаго привлечь средство общественный организация special olympics организовать спортивный соревнование человек умственный отклонение . сообщать chicago tribune . слово организатор появление певица удивить не_предупредить . молодая человек актёр кинний искупаться ледяной вода . В благотворительный акция порядок тысяча человек быть собрать миллион доллар . температура вода озеро не_превышать градус . |ngramms леди_гага привлечь_средство общественный_организация молодая_человек поп_звезда актёр_ благотворительный_акция тысяча_человек миллион_доллар +896 |text певец данилко сердючка стать член жюри национальный украинский отбор евровидение . присоединиться продюсер . кастинг быть транслироваться прямой эфир сообщать канал стб . музыкант приступить отбор . победитель назвать . мнение состав жюри правильный как исполнитель успешно выступать евровидение год занять первое место песня wild dances данилко год взять серебро композиция dancing тумбай . интересный музыкант высокий профессионал представлять разный жанр что важный оценка участник отбор пояснить продюсер . В прошлое сезон украина отказаться участвовать евровидение . решение слово власть быть сложный ситуация страна необходимость экономить . музыкальный конкурс год пройти стокгольм . полуфинал финал . россия евровидение представить . |ngramms певец_ член_жюри продюсер__ сообщать_канал состав_жюри год_занять первое_место разный_жанр В_прошлое ситуация_в_страна музыкальный_конкурс пройти_в_стокгольм _ +158 |text американский музыкант прислать шведский академия текст нобелевский . сообщаться twitter аккаунт премия . быть прочитать нобелевский банкет . быть присутствовать лично не_сообщаться . комитет заявить что церемония вручение выступить американский певица поэтесса . исполнить песня A hard rain A gonna fall . музыкант сообщить шведский академия что не_смочь приехать вручение нобелевский премия литература сослаться занятость обязательство договорённость быть достигнуть объявление лауреат . выразить сожаление подчеркнуть что награда являться честь . шведский академия присудить нобелевский премия литература формулировка создание новый поэтический выразительность рамка американский песенный традиция . поздний сообщаться что представитель комитет не_смочь связаться лично поскольку спасть концерт . |ngramms музыкант__ шведский_академия шведский_академия шведский_академия _ _ исполнить_песня музыкант_сообщить не_смочь_приехать присудить_ создание_новый американский_песенный представитель_комитет +199 |text бывший участница группа виа гра седокова поведать унизительный выступление корпоративный вечеринка нея возникнуть желание помыться . певица пожаловаться instagram неблагодарный слушатель . что быть плохой концерт жизнь . лежать реветь номер час . хотеться помыться смыть адский привкус признаться седокова . человек зал сидеть есть шашлык смотреть как клоун . развлекать устать посидеть . А профессионал . человек радость счастие твой выступление получить . эдак пошутить спеть песня понимать что кто зал имя наплевать возмутиться артистка . объяснить что выступление частное вечеринка нея значительный часть заработок мочь отказаться . седокова украинский певица . выступать группа виа гра год . В настоящее время заниматься сольный карьера . |ngramms бывший_участница певица_пожаловаться значительный_часть украинский_певица выступать_в_группа В_настоящее_время сольный_карьера +455 |text бывший бойфренд дочь американский певица уитня хьюстон заплатить миллион доллар семья возлюбить возможный причастность смерть . как сообщать usa today решение вынести судья округа фултон штат джорджия сша бедфорд . как обвинять адвокат дважды не_явиться слушание судья признать виновный неуважение суд ответчик автоматически проиграть . адвокат родные заявить что семья вердикт удовлетворить год приятель найти дом сознание ванна вода . девушка доставить больница атлант штат джорджия сша где ввести искусственный кома подключить аппарат вентиляция лёгкое . несмотря старание медик умереть . патологоанатом установить что наркотик алкоголь успокоительный умереть вследствие интоксикация утопление не_суметь однозначно быть смерть насильственный . родные дочь уитня хьюстон обвинить что иметь отношение смерть поскольку слово дать токсичный смесь стать причина смерть . родственник что быть кома бойфренд снимать деньга банковский счёт украсть принадлежать ценный вещий . подать суд потребовать заплатить миллион доллар . уголовный обвинение убийство ник предъявить не_быть . |ngramms _ _ _ _ _ _ американский_певица миллион_доллар миллион_доллар как_сообщать _заявить доставить_в_больница причина_смерть банковский_счёт предъявить_не_быть +724 |text новый альбом российский оркестр название игра классика занять строчка российский itunes релиз . В работа пластинка струнный квинтет состав скрипач виолончелист альтист . получиться интересный креативный музыкальный решение . музыка причём разноплановый . начинать цыганщина заканчивать ирландский напев . проскакивать музыкальный тема капулетти балет опера богатый queen бах . пластинка надо улыбка воспринимать прокомментировать лидер группа певица интервью радио . русский рэп расположиться позиция как альбомный песенный рейтинг . L пластинка одинокий вселенная удерживать лидерство неделя . верхушка сингловый трио centr трек вираж . хип хоп исполнитель баста смока мо попасть строчка песенный itunes композиция каменный выступление большой ледовый дворец . новый сборник песня modern talking название приурочить группа выйти подняться семь строчка альбомный хит парад . лента . публиковать официальный российский itunes альбом L одинокий вселенная оркестр игра классика deluxe sia forms лепс bestslipknot . gray chapter special edition ленинград ленинград хороший ! modern talking olderac dc rock bustсплин резонанс . часть трек centr вираж sia chandelierzhu faded radio edit lilly wood prick robin schulz prayer C robin schulz radio edit баста смока мо каменный feat . ваенга джиган любить большой нечего feat . kiesza hideawayimany ivan spell daniel magre radio mix деруло wiggle feat . snoop dogg |ngramms новый_альбом рок_группа _российский_itunes _российский_itunes _и_ лидер_группа певица__ русский_рэп песенный_рейтинг хоп_исполнитель песенный_ санкт_петербург новый_сборник семь_строчка альбомный_хит публиковать_официальный альбом_L _лепс _ _ _ radio_edit radio_edit любить_большой +538 |text рэпер изрыгать страшный проклятие когда использовать мат произведение . С заявление выступить член комитет госдума культура драпёкий передавать радиостанция москва . мат древний часть славянский язык . У выражение есть смысл . проклятие причём проклятие страшный . когда распространять уровень нейролингвистика воздействовать сознание кто слышать . быть запретить дом церковь пояснить драпёкий . чиновница подчеркнуть что рота открывать рэпер подумать что призывать что произойти . что смысл бранный оказаться утратить . сообщаться что депутат госдума попросить министр внутренний россия проверить творчество рэпер . чиновник не_понравиться угрожать образ артист куртка плотный вязаный шапочка джинса . |ngramms культура_ передавать_радиостанция быть_запретить что_произойти депутат_госдума _ попросить_министр россия__ рэпер_ образ_артист +904 |text американский актёр спеть сцена впервые год . церемония вручение премия latin grammy awards представить новый композиция fiesta колумбийский группа bomba estereo сообщать music times . артист исполнить рэп английский испанский язык . участник коллектив bomba estereo признаться что удивиться желание записать песня . Я мочь поверить . возможность работать мечтать . волшебство пояснить основатель группа . актёр неоднократно возвращение музыка . Я долгий время быть вдалеке делать вещий . ребёнок . начало отмечать год комментировать музыкальный карьер . пообещать выпустить уточнить что записать десяток композиция . известность принести dj jazzy jeff fresh prince выиграть грэмми год . актёрский карьер начаться ситкома принц беверлить хиллзти выходить протяжение сезон . джаззь записать . сольный карьер собственный имя начать год выпустить сложность пластинка выйти . С год выступать рэп телевидение москва передача вечерний ургант год старое песнь . большой концертный тур провести сша год джаззь . прославиться работа кино фильм как человек чёрный независимость враг государство Я робот Я легенда хэнкок . |ngramms актёр__ лас_вегас новый_композиция артист_исполнить участник_коллектив основатель_группа _ _ долгий_время музыкальный_карьер рэп_альбом рэп_альбом известность_ рэп_дуэт сольный_карьер старое_песнь концертный_тур _прославиться человек_в_чёрный +570 |text бывший солист А студио батырхан шукеновый похоронить родина казахстан передавать интерфакс . прощание похороны состояться . В проститься москва уточнять . О смерть шукеновый стать . предварительный певец умереть сердечный приступ . подробность произойти неизвестный . батырхан родиться год казахстан . музыкальный карьер начать работа саксофонист певица роза . В совместно создать группа А студио стать солист фронтмен . ансамбль прославиться хит солдат любовь тёплый летний нелюбимый . артист покинуть группа ради сольный карьера год выпустить диск песнь . |ngramms бывший_солист алма_ата поп_исполнитель О_смерть подробность_произойти музыкальный_карьер создать_группа покинуть_группа сольный_карьера +295 |text британский музыкальный проект gorillaz решить продвигать гонка формула E компания jaguar . участник проект художник дженять создать видео вымышленный гитаристка группа нудлзти ставить рекорд скорость электрический болид . нудлзти объявить мировой посланник гонка jaguar . мнение представитель компания ход помочь привлечь молодая талантливый инженер разработка новый модель электрический болид . gorillaz проект лидер группа blur албарн . разрабатывать визуальный часть . коллектив готовить выпуск новый альбом . |ngramms британский_музыкальный участник_проект представитель_компания помочь_привлечь новый_модель лидер_группа _албарн новый_альбом +278 |text борт разбиться район сочи артист ансамбль песнь пляска имя александров быть бывший бэк вокалист группа . воскресение рассказать новость руководитель центр имя лукиновый . борт самолёт быть артист ансамбль александров бывший бэк вокалист группа работать группа начало год . выражать глубокий соболезнование родной близкие женить лукиновый . слово собеседник агентство хором имя александров группа часто записывать песнь . коллектив сотрудничать записать гимн сухопутный войско . самолёт лётный отряд минобороны бортовый номер ra пропасть экран радар мск вылет сочи где пройти заправка . воздушный судно направляться сирийский латакия упасть вскоре взлёт . борт находиться человек артист ансамбль песнь пляска имя александров включая дирижёр халиловый российский журналист . вода поднять тело погибший . операция район авиакатастрофа быть продолжаться круглосуточно . |ngramms ансамбль_песнь ансамбль_песнь вокалист_группа вокалист_группа имя__ самолёт_быть артист_ансамбль _ собеседник_агентство воздушный_судно борт_находиться дирижёр_ быть_продолжаться +588 |text обвинение убийство рэпер xxxtentacion предъявить четверо подозревать . сообщать . ульямс трейвона ньюсом подозревать убийство степень вооружённый ограбление . версия следствие ньюс вступить конфликт жертва что завязаться перестрелка . О гибель xxxtentacion настоящее имя стать . умереть больница тяжёлый ранение впасть кома . незадолго смерть xxxtentacion подписать контракт музыкальный лейбл empire миллион доллар . дебютный альбом рэпер выйти год занять место billboard . журнал xxl внести рэпер список главный молодая исполнитель год . В посмертный клип рэпер xxxtentacion подраться собственный похороны . . |ngramms рэпер_xxxtentacion рэпер_xxxtentacion _ _ _ настоящее_имя музыкальный_лейбл миллион_доллар дебютный_альбом _billboard молодая_исполнитель +389 |text режиссёр йена форсайт завершить съёмка документальный фильм ник кейв название тысяча земля days earth . сообщить телеканал планироваться показ фильм . картина монтироваться выход назначить год . В фильм быть показать жизнь музыкант процесс работа песнь интервью газета guardian кейв . музыкант известный закрытость журналист что ранний пускать документалист хороший случай финальный стадия запись альбом время как фильм форсайт планироваться показать кейв протяжение процесс сочинение материал . помимо кейв фильм появиться родственник знакомый певица кайлить минога . О что форсайт снимать фильм кейв стать . режиссёр музыкант не_распространяться съёмка как слово не_знать что получиться совместный работа . сообщаться что съёмка картина начаться выход альбом push sky увидеть свет год . название фильм выбрать что ник кейв подсчёт исполниться тысяча процесс запись альбом . британский автор форсайт работать кейв . совместный работа быть аудиокнига кейв смерть зайчик монро год дуэт постановщик сделать объёмный звук . форсайт сделать серия короткометражка любить как любить посвятить альбом кейв . режиссёрский дуэт снимать клип песнь альбом ник кейв bad seeds dig lazarus dig ! ! ! год . |ngramms быть_показать газета_the_guardian что_ранний запись_альбом запись_альбом совместный_работа совместный_работа что_съёмка увидеть_свет название_фильм британский_автор +708 |text гитарист radiohead national гринвуд издать совместный диск классический музыка . сообщаться сайт лейбл deutsche grammophon выпустить пластинка universal classics . альбом сплит выйти год быть оркестровый вещий десснера st . carolyn sea lachrimae raphael шестичастный сюита написать гринвуд фильм полый нефть . В запись копенгагенский филармонический оркестр дирижировать де риддёр работать классический джазовый популярный музыкант мультипликационный группа албарн gorillaz . произведение st . carolyn sea исполнить де риддёр брат близнец играть national гитара клавишный . гринвуд выступать год фестиваль голландия амстердам . выступление быть написать вещь lachrimae . пластинка гитарист композитор решить объединить специфичёска американский произведение как природный простор зудеть ностальгия . выпускать классический музыка знаменитый струнный квартет kronos сотрудничать композитор гласс исполнять произведение . гринвуд писать произведение оркестр би би си выпустить совместный альбом польский композитор пендерецкий . |ngramms рок_группа классический_музыка классический_музыка _ _ В_запись популярный_музыкант _албарн быть_написать решить_объединить композитор_ композитор_ выпустить_совместный +700 |text девочка слово начинаться клип heal world стать вдовый ветеран война ирак . писать contactmusic ссылка звукорежиссер . Я записать детский рассуждение мир задание когда заговорить понять что надо . родственница жена рассказать издание . добавить что спустя год выход клип мир фарреть перевернуться нога голова потерять муж эван эшкрафт время военный действие ирак . супруг быть отряд американский войско убить сын . являться ребёнок сняться ролик heal world год подросток выходить король сцена пасаден время супербоуть год . произнести фраза подумать как сделать мир хороший ребёнок ребёнок ребёнок . |ngramms _ _ _ _ _ поп_король что_надо _добавить год_после_выход военный_действие поп_музыка +985 |text концерт группа детектор ложь московский кафе китайский лётчик джао быть сорвать анонимный сообщение заложить заведение бомба . писать агентство городской новость москва ссылка источник правоохранительный орган . слово собеседник агентство вечером администратор заведение позвонить неизвестный рассказать готовиться покушение участник детектор ложь музыкант . следственно оперативный группа прибыть место эвакуировать посетитель персонал китайский лётчик . информация угроза взрыв не_подтвердиться . обследование помещение прилегать территория человек вернуться кафе выступление группа оказаться сорвать подчеркнуть источник . что факт произойти проводиться проверка . как сообщать телеканал рен тв кафе быть эвакуировать человек . российский коллектив детектор ложь название lie detector быть образовать год . группа исполнять песнь как русский английский язык . |ngramms концерт_группа быть_сорвать городской_новость собеседник_агентство музыкант__ группа_оказаться что_по_факт проводиться_проверка как_сообщать российский_коллектив исполнять_песнь английский_язык +730 |text В москва фестиваль усадьба jazz выступить группа американский певец power generation . сообщаться поступить редакция лента . . коллектив выступить программа celebrating prince посвятить артист скончаться год . музыкант исполнить хит как purple rain compares . фестиваль пройти территория усадьба архангельский . В апе усадьба jazz исполнитель как певица ёлка французский группа aywa австралийский певица peruquois . хэдлайнер стать группа аукцыон . программа заявить бывший солист группа nizza sunsay басистый richard bona архиповский mark eliyahu donny mccaslin . |ngramms В_москва выступить_группа певец_ пресс_релиз поступить_в_редакция музыкант_исполнить фестиваль_пройти французский_группа австралийский_певица заявить_бывший солист_группа +173 |text рэпер джей зи стать лидер номинация музыкальный премия грэмми год сообщаться сайт оргкомитет премия . джей зи претендовать победа девять номинация . тимберлейк дуэт macklemore ryan lewis выдвинуть соискание семь награда . джей зи являться абсолютный лидер номинация мочь рассчитывать награда жанровый категория считаться грэмми престижный . В основный номинация запись год песня год альбом год джей зи соискание грэмми не_выдвинуть . не_представить престижный номинация тимберлейк . В отличие джей зи тимберлейка семь номинация дуэт macklemore ryan lewis есть наиболее престижный . love macklemore ryan lewis претендовать звание песнь год работа heist грэмми альбом год . композиция запись быть бороться звание запись год . очередь претендовать звание хороший новое артист работа good kid M . A . A . D city выдвинуть категория альбом год . церемония вручение премия грэмми пройти год . премия считаться престижный область музыка присуждаться американский академия звукозапись год . лауреат премия определять член академия звукозапись путём голосование . |ngramms джей_зи джей_зи джей_зи джей_зи джей_зи музыкальный_премия сообщаться_на_сайт _ _ _ _ запись_год запись_год песня_год семь_номинация звание_хороший церемония_вручение лос_анджелес академия_звукозапись академия_звукозапись лауреат_премия путём_голосование +593 |text музыкальный фестиваль английский дорсет обнаружить тело женщина . сообщать guardian . труп найти час ночь лесистый местность . расследование обстоятельство смерть место происшествие прибыть полиция . подозрение убийство быть задержать житель дорсет . В допрашивать полиция . отмечаться что погибший приехать фестиваль лондон . как заявить старший детектив инспектор семья женщина поставить известность близкие погибший работать офицер . быть провести посмертный вскрытие помочь установить причина смерть добавить . обратиться участник фестиваль просьба связаться полиция есть дополнительный информация случиться . сообщаться что мужчина скончаться как прыгнуть гореть деревянный скульптура человек фестиваль burning man штат невад . |ngramms обнаружить_тело сообщать_the_guardian час_ночь расследование_обстоятельство прибыть_полиция быть_задержать как_заявить _ быть_провести причина_смерть участник_фестиваль что_мужчина +465 |text В год быть опубликовать дебютный запись итальянский тенор паваротти год храниться личный архив . как сообщаться блог artsbeat вдова певец мантовани найти запись первое телевизионный выступление сделать год смерть певец . паваротти появиться популярный английский телевизионный шоу sunday night london palladium где исполнить ария che gelida manina ! опера богема . В время быть год не_быть известный . дебют британский театральный сцена состояться месяц белфаст молодая тенор выступить постановка опера мадам баттерфляй . запись выступление паваротти год оставаться неизвестный публика . издать британский лейбл decca records оперный певец работать протяжение карьера . войти сборник избранный произведение исполнить певец быть опубликовать cd . ария сборник включить дуэт паваротить боно клэптон . паваротти выдающийся тенор xx век дебютировать оперный сцена партия театр реджио . партия стать знаковый творчество год исполнить венский опера ковента гарден . паваротти скончаться год рак поджелудочный железа . |ngramms год_быть_опубликовать певец_ популярный_английский В_то_время опера_ запись_выступление оставаться_неизвестный британский_лейбл оперный_певец работать_на_протяжение _ +77 |text российский певец бывший солист группа парк идти поправка операция удаление тромб шейный отдел . написать страница вконтакте . назло недоброжелатель злопыхатель заявлять Я живой скоро быть здоровый готовый вновь радовать слушатель новый песнь планировать записать ближний будущее ! ссобщить . исполнитель добавить что постепенно восстанавливаться двигательный функция . благодаря усилие врач помощь дорогой человек ! обратиться артист поклонник . О госпитализация стать . артист поступить отделение тяжёлый состояние специалист удаться стабилизировать заявлять представитель музыкант . пятикратный обладатель премия золотой граммофон . быть участник коллектив москва парк выпустить сольный альбом . пластинка название выйти год . |ngramms российский_певец солист_группа парк_ парк_ _ _ Я_живой новый_песнь исполнитель_добавить специалист_удаться представитель_музыкант обладатель_премия участник_коллектив сольный_альбом +234 |text прокурор крым объяснить запрет проведение фестиваль электронный музыка бифуз befooz что организатор нарушить норма антитеррористический противопожарный безопасность . сообщать новость . главный причина нарушение норма федеральный законодательство . добавить что прокуратура не_быть делать исключение льгота . слово здание площадка фестиваль не_оборудовать установка автоматический пожарный сигнализация газовый баллон использоваться нарушение эксплуатационный условие деревянный конструкция кровля не_обработать огнезащитный состав акватория пляж не_обследовать . прокурор что ведомство поступить обращение житель село поповка запад крым где быть состояться фестиваль просьба не_допустить проведение . рассказать что территория бифуза быть найти шприц коричневый жидкость задержать девушка подозрение подготовка сбыт наркотик особо крупный размер . прокурор признаться что не_быть фестиваль электронный музыка преемник являться бифуз уверить что проведение быть благодаря коррупция круг прежний крымский власть . заявить что музыкальный мероприятие пропагандировать нравственный здоровый образ жизнь . прокуратура крым запретить проведение фестиваль бифуз . ведомство обосновать что организация событие допустить нарушение . бифуз быть начаться завершиться . проведение согласовать местный сельский власть . проводиться крым год поповка . В прошлое год ситуация украина фестиваль решить перенести грузия идея оказаться провальный вместо ожидать тысяча гость мероприятие приехать тысяча . вслед kazaнтип попробовать провести камбоджа местный власть отменить фестиваль неделя начало . |ngramms _ запрет_на_проведение электронный_музыка электронный_музыка что_организатор санитарно_эпидемиологический главный_причина федеральный_законодательство что_прокуратура ведомство_поступить _рассказать быть_найти крупный_размер _заявить образ_жизнь проведение_фестиваль В_прошлое_год ситуация_на_украина решить_перенести вместо_ожидать тысяча_гость местный_власть +310 |text представитель американский рэпер эминемой подать суд руководство правящий национальный партия новый зеландия . повод стать незаконный мнение истец использование песнь lose предвыборный кампания сообщать sky . адвокат музыкант заявить что право песня принадлежать компания mile style . lose драгоценный камень корона музыкальный каталог эминемой . подчеркнуть что mile style крайне редко позволять использовать трек реклама не_разрешать перезаписывать автор . мелодия быть наложить агитационный ролик выпустить рамка избирательный кампания год парламентский выбор . партия набрать большинство голос стать правящий . В ролик опубликовать youtube житель призывать выбрать правильный путь страна голосовать национальный партия . настоящее имя маршалл iii американский хип хоп исполнитель стать лауреат премия хороший песня фильм . композиция lose быть записать год войти саундтрек фильм миля где сыграть главный роль . песня возглавить billboard hot занять позиция список великий песня время версия журнал rolling stone . |ngramms американский_рэпер национальный_партия национальный_партия использование_песнь музыкант___заявить _подчеркнуть В_ролик опубликовать_на_youtube настоящее_имя _ американский_хип рэп_артист лауреат_премия саундтрек_к_фильм главный_роль billboard_hot великий_песня rolling_stone +139 |text певица прокомментировать заявление что большой не_быть ездить тур . запись появиться instagram аккаунт посвятить нынешний турне артистка . фраза тур означать ровно что означать тур . формат тур отныне исчерпать тяжело хлопотный нервно . Я подсчитать вчера тур ! вдуматься . В время отказаться телеэфир альбом форма . как мочь отказаться писать песнь писаться ? поделиться . певица добавить что нужно списывать счёт что дать концерт захотеться . концерт нижний новгород объявить что нынешний тур . турне название маленький человек стартовать омск . выступить новосибирск хабаровск владивосток екатеринбург челябинск . певица выступить сочи . тур завершиться концерт московский комплекс олимпийский . |ngramms певица_ большой_не_быть появиться_в_instagram нынешний_турне что_означать мочь_отказаться писать_песнь певица_добавить дать_концерт нижний_новгород _объявить нынешний_тур маленький_человек выступить_в_новосибирск выступить_в_сочи тур_завершиться концерт_в_московский +631 |text новый альбом российский рэпер noize mc название hard reboot стать доступный сервис яндекс . музыка сообщаться официальный сайт музыкант . официально пластинка выйти . релиз включать трек совместный запись поэтесса вера полозковый трек абв эюя кацуба песня М американский astronautalis . полный список трек альбом выглядеть ? фарыфурыговорить головыхозяин лесасгораюсохранить речьcome ome allабть эюястарое rebootsafe mode выступать псевдоним noize mc являться популярный российский . В начало карьера артист регулярно московский фристайл баттл клубный сетевой хип хоп соревнование . песнь музыкант выдыхать окно получить широкий распространение интернет . всеобщий известность noize mc приобрести благодаря песнь социальный тематика мерседес курить бамбук москва резиновый движение героин фесть сутки . |ngramms новый_альбом российский_рэпер стать_доступный официальный_сайт пластинка_выйти совместный_запись рэп_артист полный_список _ популярный_российский рэп_исполнитель В_начало песнь_музыкант получить_широкий приобрести_благодаря +486 |text петербуржец победить всероссийский конкурс молодая исполнитель звезда пройти ялта . получить право представить россия международный конкурс интервидение сочи год . победа конкурс звезда бороться участник финал выйти четверо мауголь группа radio kamerger волгоград королева краснодар . конкурсант оценивать мастер эстрадный вокал музыкальный продюсер дробыш . приз пресса получить группа . награда конкурс быть вручить альтернативный жюри . В состав войти актёр телеведущий дюжеть максим поэтесса певица министр информация массовый коммуникация крым . версия победитель стать волгоградский группа radio kamerger . конкурс звезда зародиться проводиться ежегодно год . В быть решение расширить география возродить россия международный конкурс интервидение год польша . конкурс провести закрыть недостаток финансирование . В год вновь возродить сочи . В немой быть участвовать молодая певец певица страна снг прибалтика китай . |ngramms _ _ _ _ _ _ _ _ всероссийский_конкурс молодая_исполнитель получить_право представить_россия санкт_петербург группа_radio группа_radio музыкальный_продюсер __и_ конкурс_быть максим_ певица_ массовый_коммуникация победитель_стать проводиться_ежегодно быть_принять_решение международный_конкурс В_немой быть_участвовать страна_снг +912 |text европейский вещательный союз european broadcasting union ebu организатор владелец евровидение готовый рассмотреть петиция сайт change.org призыв пересмотреть результат прошедшее стокгольм финал музыкальный конкурс . сообщать новость . знать петиция вопрос быть обсудить ответ ebu быть опубликовать поздний заявить ebu половина . считать маловероятный что результат быть пересмотреть . написание новость петиция опубликовать подписать тысяча пользователь . В качество автор обращение указанный житель ереван arthur hovhannisyan . понимать что выбирать эмоционально трудный подписать петиция показывать как человек уверить что год победитель конкурс стать кто быть выиграть текст петиция . финал евровидение пройти стокгольм . итог голосование национальный жюри зритель победить украинский певица песня рассказывать депортация крымский татарин время великий отечественный война . стать россиянин телезритель отдать первое место . страна победитель получать возможность провести следующий евровидение город . В россия рубеж усомниться что украина найти средство организация конкурс . киев заявить что надеяться помощь иностранный инвестор тратить событие бюджетный деньга власть не_намерить . В время российский замминистра финансы подчеркнуть что москва не_выдать киев кредит евровидение . |ngramms европейский_вещательный_союз готовый_рассмотреть музыкальный_конкурс вопрос_быть быть_опубликовать пресс_секретарь половина_ написание_новость В_качество автор_обращение победитель_конкурс пройти_в_стокгольм национальный_жюри украинский_певица_ крымский_татарин отечественный_война _ первое_место получать_возможность что_украина киев_заявить иностранный_инвестор бюджетный_деньга В_то_же_время __подчеркнуть +140 |text солистка группа серебро серябкина госпитализировать . певица рассказать instagram . артистка опубликовать фотография лежать капельница . внезапно сольник ... подписать серябкина пост . неизвестно быть перенести концерт . серябкина российский певица автор песня поэтесса солистка женский serebro . известный творческий псевдоним molly . |ngramms солистка_группа певица_рассказать опубликовать_фотография перенести_концерт российский_певица автор_песня поп_группа +911 |text российский рэпер децть сделать комедийный римейк хит вечеринка . клип быть показать вечером эфир передача вечерний ургант . сюжет новый песнь децть собирать герой песнь значительно повзрослеть имя далеко тридцать децлу толмацкий год коллега вечеринка играть шарада мафия расходиться девять . оригинальный песня децть звать гость как дача уехать родитель римейк город отправиться жена ребёнок . В песня упоминаться купить ипотека вторичка шикарный ремонт салат . оригинальный вечеринка выйти год когда певец быть год стать хит реклама песня взять компания pepsi . текст музыка децлу помочь написать шеff . песня вечеринка присутствовать первое альбом децла кто ? . поздний децть выпустить альбом уличный боец что перейти псевдоним le truk . В рэпер выпустить альбом mosvegas . В децть собираться выпустить альбом . |ngramms российский_рэпер новый_песнь герой_песнь _толмацкий певец_быть стать_хит _ выпустить_альбом выпустить_альбом собираться_выпустить +786 |text третьяковский галерея представить facebook серия видеоролик эффект воздействие создать студент московский школа кино . В сняться лидер ленинград шнур видео музыкант окунать лицо полотно чёрный квадрат разглядывать . серия посвятить искусство xx век . видео оживлять картина яркий солнце новый москва . произведение экспонироваться третьяковка крымский вал . |ngramms _шнур _ _ +128 |text британский muse представить песня psycho готовиться выход семь студийный альбом название drones . клип композиция опубликовать официальный канал коллектив youtube . журнал nme уточнять что сингл альбом стать композиция dead inside релиз состояться . пластинка включить трек поступить продажа . лидер muse бел пояснить что название новое альбом связать активный развитие робототехника . мир находиться власть превращать робот . пластинка исследовать человек одиночество потерянный надежда зомбирование система превращать человек возможный бегство угнетатель прокомментировать . muse образоваться год . группа состоять постоянный участник вокалист гитарист уолстенхолма ударник доминика . В копилка музыкант большой международный награда mtv europe music awards nme awards грэмми . muse мир большой миллион пластинка . год карьера коллектив выпустить альбом . песнь группа использоваться фильм сериал лента пароль рыба меч доктор кто сверхъестественный война мир Z . |ngramms рок_группа представить_песня студийный_альбом клип_на_композиция опубликовать_на_официальный канал_коллектив журнал_nme альбом_стать релиз_который_состояться поступить_в_продажа новое_альбом активный_развитие рок_коллектив постоянный_участник __и_ международный_награда music_awards nme_awards год_карьера песнь_группа доктор_кто мир_Z +635 |text выступление фестиваль primavera sound можно быть посмотреть онлайн помощь проект relive primavera доступный ссылка . сайт доступный трансляция шоу артист как belle sebastian wolf parade yung beef поздний появиться запись концерт певица лорд группа warpaint . В апе заявить артист arctic monkeys кейв генсбур tet fever ray лорд sparks tyler creator black madonna car seat headrest chvrches cigarettes sex slowdive . фестиваль ап ап многий фестиваль . И ап primavera sound звёздный всесторонний современный женский силой сделать специально фанат сайт событие . организатор обещать что выступление можно быть отлично потанцевать . В список участник российский исполнительница выступать псевдоним кедр ливанский . фестиваль проходить барселона . |ngramms можно_быть можно_быть концерт_певица _кейв организатор_обещать В_список российский_исполнительница _ +431 |text выпускница российский фабрика звезда участница евровидение россия призвать снести памятник советский эпоха город донбасс донецкий монумент посвятить народный артист ссср . певица написать instagram . как олицетворение человеконенависнический эпоха место украина вид . кстати творчество . слышать что предложить написать гимн несуществующий новороссия . логично . учитывать количество новый хит единственный шанс взлететь гребень дешовый скандал обратиться социальный сеть орфография пунктуация автор сохранить прима . лента . . В середина нелестно отозваться интервью комсомольский правда украинский певица представлять россия музыкальный конкурс евровидение . Я вспоминать отвращение кулиса юрмальский фестиваль новый волна когда материться как уличный девка . злобный заявление россия россиянин абсолютно не_удивлять . певица instagram что не_участвовать новый волна . В неизвестный раскрасить бронзовый памятник донецк украинский флаг . житель днепропетровск собрать подпись лишение певец статус почётный гражданин город . В ответ заявить что не_хотеть иметь ничто нацист радикал государственный гимн украина назвать нацистский . памятник работа скульптор быть установленный донецкий дворец молодёжь юность год . повод послужить певец совпасть днём город . |ngramms фабрика_звезда россия__ народный_артист _ _ _ певица_написать учитывать_количество социальный_сеть автор_сохранить В_середина _в_интервью певица__ представлять_россия новый_волна новый_волна памятник_ _заявить что_не_хотеть гимн_украина быть_установленный повод_послужить +962 |text британский певица тамильский происхождение арулпрагас известный псевдоним M . I . A . выпустить клип трек P . O . W . A . режиссёр ролик выступить исполнительница . артистка выложить twitter текст композиция M . I . A . поднимать проблема расовый неравенство сила человек . В песня присутствовать строка сложить оружие хватить драма поднимать рука лама . В певица отстранить фестиваль afropunk полемика мусульманин . |ngramms британский_певица происхождение_ известный_под_псевдоним режиссёр_ролик текст_композиция +302 |text английский маэстро сэр рэттл покинуть пост музыкальный руководитель берлинский филармонический оркестр год когда истечь срок контракт . дирижёр руководящий крупный симфонический оркестр германия год заявить сообщаться блог artsbeat издание york times . слово дирижёр объявить уход год оркестр быть время найти подходящий руководитель . директор оркестр что уход рэттлый коллектив расширить репертуар произведение начать играть большой современный композитор печальный новость как музыкант город . как писать independent качество возможный причина уход рэттлый называться хороший отношение музыкант . дирижёр признаваться что подопечный дикий тигр работать нелегко . сэр рэттл стать главное дирижёр берлинский филармонический оркестр год . как окончательно перебраться берлин руководить бирмингемский симфонический оркестр . В берлин пост музыкальный руководитель оркестр сменить аббадый . главный задача рэттлый пост музыкальный руководитель быть популяризация симфонический музыка молодая аудитория . берлинский оркестр иногда выступать школа играть ученик . дирижёр хотеть сделать классический музыка доступный год оркестр начать транслировать выступление интернет . В год маэстро исполниться год . намеренный заняться работа берлин не_сообщаться . никакой официальный комментарий кто мочь занять пост не_поступать . берлинский филармонический оркестр быть основать год . В разный год имя руководить выдающийся дирижёр фон бюлов фон . |ngramms покинуть_пост музыкальный_руководитель музыкальный_руководитель музыкальный_руководитель симфонический_оркестр симфонический_оркестр оркестр_быть _ что_уход возможный_причина стать_главное главный_задача молодая_аудитория хотеть_сделать классический_музыка официальный_комментарий В_разный дирижёр_ __и_ +324 |text комиссия монументальный искусство мосгордума заседание единогласно отклонить предложение установка памятник лидер группа beatles . сообщать интерфакс . представитель департамент культура столица заседание что инициатор не_предоставить необходимый документ не_предложить конкретный место где мочь быть поставить монумент . глава комиссия левый очередь назвать инициатива дань мода . год уламывать согласиться установка памятник . В конец конец уломать согласиться . есть памятник ? нет . мода пройти . ряд член комиссия входить депутат эксперт область культура посчитать идея установка памятник шутка . инициатор увековечение москва память музыкант голубеть заявить заседание комиссия что идея установка памятник поддерживать творческий интеллигенция музыкальный общественность . памятник есть десятка город мир родной ливерпуль лондон гавана территория особа экономический зона бирюзовый катунь алтайский край . основатель beatles быть застрелить год дом . убийца музыкант марка чэпмена приговорить пожизненный заключение отбывать тюрьма город . |ngramms установка_памятник установка_памятник установка_памятник лидер_группа _ _ _ _ мочь_быть глава_комиссия левый_ В_конец есть_памятник член_комиссия идея_установка памятник_ памятник_ музыкант_ город_мир нью_йорк нью_йорк экономический_зона +5 |text дания завоевать первое место музыкальный конкурс евровидение состояться шведский город мальмё . номер датский певица эммиля де teardrops быть объявить победитель окончание голосование что произойти впервые время проведение конкурс . лента . вести онлайн трансляция конкурс . представительница дания набрать голосование балл . высокий оценка балл поставить голосовать страна . участница конкурс россия песня занять финал конкурс место набрать балл . высокий оценка балл поставить страна латвия эстония . место достаться азербайджан . третье место занять злато огневич представлять украина . место балл занять ирландия . финал конкурс пройти представитель венгрия грузия румыния норвегия исландия армения финляндия мальта греция молдавия литва ирландия эстония белоруссия бельгия нидерланды . конкурс финал пройти представитель страна учредитель конкурс германия испания великобритания франция италия участник швеция год являться хозяйка конкурс . |ngramms первое_место шведский_город быть_объявить что_произойти проведение_конкурс вести_онлайн высокий_оценка высокий_оценка участница_конкурс россия__ _ третье_место_занять представлять_украина конкурс_пройти пройти_представитель +520 |text группа trubetskoy создать бывший участник коллектив ляпис отправиться тур белоруссия . концерт состояться минск гомель витебск сообщать белапать . как отмечать издание музыкант исполнить старое песнь ляпис новое композиция . везде гордость представлять страна логотип город минск что особа радость готовиться встреча белорусский публика . гарантировать хороший песня ролл вокалист булатник . В состав группа trubetskoy войти гитарист владыкий ударник сторожук . поздний примкнуть бас гитарист мышкевич . коллектив выступать россия украина записать сингл ласточка ёлка . как пояснять белапать год группа ляпис фактически мочь выступать родина резкий высказывание лидер коллектив михалка адрес белорусский власть . прокуратура белоруссия провести проверка отношение музыкант уголовный не_возбудить . В год быть отменный концерт михалка минск инициатива православный активист что пропагандировать насилие русофобия антихристианский убеждение творчество . ляпис официально объявить роспуск . солист объяснить решение что уважать группа жить . создать проект brutto остальной участник объединиться название trubetskoy . белорусский группа ляпис быть образовать год . название коллектив являться отсылка персонаж роман ильф стул поэт ляпис . группа выпустить студийный альбом . матрёшка быть представить год . |ngramms бывший_участник_коллектив ляпис_ ляпис_ ляпис_ ляпис_ ляпис_ как_отмечать_издание музыкант_исполнить старое_песнь новое_композиция хороший_песня вокалист_ состав_группа гитарист_ гитарист_ выступать_в_россия мини_альбом как_пояснять резкий_высказывание лидер_коллектив белорусский_власть _ _ провести_проверка год_быть отменный_концерт православный_активист остальной_участник панкандидат_рок быть_образовать коллектив_являться поэт_ группа_выпустить студийный_альбом быть_представить +849 |text цыганский композитор певец попасть авария . сообщать фонтанка . дтп произойти . В белый mercedes музыкант припарковать большой московский улица врезаться фургон . быть руль автомобиль время инцидент . отмечаться что несмотря авария певец успеть концерт летний шансон . прийтись воспользоваться машина . основатель коллектив цепь год группа называться кабриолет . |ngramms певец__ санкт_петербург _ год_группа +479 |text ирландский певица шинейд О коннора положить больница как опубликовать facebook видео пожаловаться депрессия суицидальный мысль . сообщать independent . артистка находиться лечебница американский штат . публикация социальный сеть резонанс мотель где жить стать собираться поклонник желающий помочь кумир . запись facebook появиться . артистка диагностировать биполярный расстройство слеза глаз признаться что чувствовать абсолютно одинокий что семья относиться как дерьмо . жить мотель ... окраина нью джерси . У нет доктор психиатр хороший человек земля что герой . единственный чертовый вещь заставлять жить исполнительница . когда О коннора желание покончить . В год сообщить facebook что смертельный доза некий лекарство . певица обвинять муж ребёнок ужасающий жестокость кошмарный вереница предательство отношение . предпринимать попытка самоубийство возраст год . шинейд О коннора выпустить альбом сингл . мировой известность исполнительница принести песня compares U написать принсом . альбом I I haven О коннора получить год премия грэмми . быть замужем нея четверо ребёнок . решение суд лишить опека младший сын . |ngramms ирландский_певица опубликовать_в_facebook американский_штат нью_джерси хороший_человек сообщить_в_facebook некий_лекарство попытка_самоубийство мировой_известность исполнительница_принести альбом_I коннора_получить решение_суд +545 |text канадский бибер запретить посещать китай . власть кнр посчитать поведение артист неприемлемый писать guardian . министерство культура страна заявить что решение закрыть въезд страна правонарушение регулярно совершать исполнитель . бибер одарённый певец весьма неоднозначный молодая зарубежный исполнитель . насколько известный плохой поведение как общественный жизнь время гастроль китай что вызывать недовольство публика указать ведомство . В министерство выразить надежда что бибер способный исправить поведение когда повзрослеть . газета напомнить что год певец посетить великий китайский стен . скандал разразиться что архитектурный памятник музыкант рука внести телохранитель . В канадский исполнитель подать суд избиение человек инцидент произойти кливленд . В год бибер ударить поклонник лицо . |ngramms поп_певец _бибер _бибер поведение_артист писать_the_guardian министерство_культура что_решение въезд_в_страна В_министерство выразить_надежда год_певец памятник_музыкант канадский_исполнитель подать_в_суд +28 |text неизвестный выстрелить американский рэпер дуэйный известный как xxxtentacion . музыкант получить тяжёлый ранение впасть кома больница сообщать tmz . рэпер напасть когда выходить мотосалон южный флорида . злоумышленник подбежать выстрелить забрать сумка louis vuitton скрыться . полиция выяснять обстоятельство случиться . как отмечать издание музыкант находиться домашний арест ждать суд обвинение домашний насилие правонарушение . поздний стать что рэпер скончаться больница . дебютный альбом рэпер выйти год занять место billboard . альбом быть выпустить . трек sad ! достигнуть семь строчка bilboard hot . |ngramms американский_рэпер_ музыкант_получить сообщать_tmz как_отмечать_издание домашний_арест скончаться_в_больница дебютный_альбом _billboard быть_выпустить достигнуть_семь строчка_в_ +731 |text В мосгордума готовый рассмотреть потенциальный проект стена память фронтмена linkin park честер беннингтон . агентство городской новость москва рассказать председатель комиссия столичный парламент культура массовый коммуникация . У дума есть комиссия рассматривать есть цех деятель культура комиссия непосредственно граффити заниматься как человек зарекомендовать граффити сообщить . добавить что граффити стать популярно надо учитывать насколько предложить проект быть интересный быть соответствовать художественный образ архитектурный решение выбрать место . мочь быть быть стена ресторан иметь отношение культура . многочисленный обращение надо посмотреть где . улица тверская рассматривать не_быть . зависеть где предлагать заявить председатель комиссия . отмечаться что создать москва стен память монументальный фреска изображать исполнитель предложить сообщество фанат певец . честер беннингтон быть найти мёртвый дом . медэкспертиза подтвердить что исполнитель покончить . |ngramms готовый_рассмотреть рок_группа городской_новость председатель_комиссия массовый_коммуникация _ деятель_культура _добавить надо_учитывать проект_быть быть_соответствовать мочь_быть заявить_председатель быть_найти +873 |text датский художник вытатуировать тело удалённый твит бывший лидер группа oasis лиама галлахер российский фанат пользователь twitter признать гомофобский . сообщать sun . татуировка стать частью проект tweettoo ход покрывать наколка текст удалённый твит различный знаменитость . бывать оскорбительный жалеть . делать интернет оставаться навсегда как татуировка пояснить художник . что миллион читатель ситуация легко мочь выйти контроль . тело есть цитата твит тимберлейка бибер дель рей снуп догга . галлахер прокомментировать twitter столкновение британский российский болельщик евро . использовать ямайский сленговый выражение batty boy дословно чокнутый парень считаться грубый ругательство адрес . пользователь twitter обвинить артист гомофобия напомнить случиться трагедия американский орландо где вооружённый мужчина убить посетитель ночное гей клуб pulse . галлахер извиниться удалить пост . |ngramms _ лидер_группа пользователь_twitter пользователь_twitter стать_частью мочь_выйти тело_ _бибер _дель_рей вооружённый_мужчина +289 |text организация объединить нация составлять плейлист счастие международный счастие писать guardian . В помощь музыка универсальный язык хотеть показать солидарность миллион человек мир страдать нищета ущемление право гуманитарный кризис влияние ухудшение окружающий смена климат объяснить генсек оон пан ги мун . В состав плейлист войти песнь ширан ледженд блант . генсек оон предложить включить список композиция стивить уандёр signed sealed delivered . кампания отвечать кодить предложить фанат выкладывать вариант список twitter хештег happysoundslike . выбрать предложить песня включить официальный список . Я счастливый участвовать прекрасный программа повышать осведомлённость человек международный счастие . надеяться поделиться песня делать счастливый . международный счастие стать отмечать год поддержать идея поиск счастие как основный жизненный цель . |ngramms писать_the_guardian миллион_человек В_состав песнь_ _ включить_в_список поп_исполнитель +170 |text обнаружить запись песнь A world love исполнение автор полый маккартень сообщать rolling stone . запись архив найти входить дуэт peter gordon уоллер . маккартень написать A world love год когда встречаться сестра жить крыша . слово битло песня не_понравиться не_войти репертуар группа . макккартень предлагать A world love битый певец билль отвергнуть . автор песнь спеть эшер записать исполнение домашний условие . считаться что запись исполнение маккартень не_существовать . вскоре стать выступать дуэт уоллер попросить маккартень отдать имя песня . радость согласиться уговор эшер дописать бридж . A world love стать дебютный сингл возглавить сша великобритания . традиция автор песнь указываться маккартень несомненно что написать самостоятельно . не_планировать издавать запись маккартень можно услышать концерт американский тур . плёнка записать спальня дом эшер присутствовать трек песня I ll follow sun маккартень исполнить быстрый темп впоследствии записать beatles . |ngramms A_world A_world A_world A_world полый_маккартень rolling_stone _ _ _ _и_ _и_ автор_песнь автор_песнь стать_выступать дебютный_сингл возглавить_ можно_услышать американский_тур быстрый_темп +532 |text фронтмена американский foo fighters грол высмеять часть поклонник концерт состояться город уичито штат канзас . видеозапись произойти опубликовать youtube слушатель выступление . грол обратиться фанат сидеть ложа концертный зал эй богатый ублюдок ! посмотреть ! владеть автосалон прочить . Я знать кто хозяин клининговый компания ! ... . мочь сидеть есть куриный палочка задница ублюдок ! лидер foo fighters выступать загипсовать нога сломать время концерт шведский гетеборг год травма вернуться сцена . грол собрать foo fighters год смерть распад группа nirvana где играть качество барабанщик . foo fighters выпустить восемь студийный альбом . пластинка wasting light музыкант получить премия грэмми . |ngramms фронтмена_американский рок_группа foo_fighters foo_fighters foo_fighters foo_fighters _грол опубликовать_на_youtube концертный_зал Я_знать грол_собрать группа_nirvana играть_в_качество выпустить_восемь студийный_альбом музыкант_получить +351 |text представитель европейский вещательный союз евс заявить sputnik что организация не_планировать санкция отношение украина . слово пресс неверный интерпретировать высказывание гендиректор евс . цитата интервью швейцарский издание blick прима . лента . верный остальной додумать журналист заявить представитель союз . пояснить что согласно основный правило евс случай нарушение сторона участник быть разбираться окончание конкурс . быть что вещательный союз не_сталкиваться ситуация оказаться россия . позиция евс вопрос неизменный . быть прилагать усилие обеспечить представитель страна чиновник . издание blick опубликовать материал основание слово утверждаться что евс мочь наказать украина временной запрет евровидение . организатор пообещать защитить право россия конкурс . служба безопасность украина запретить российский участница евровидение въезд территория страна срок год . решение быть связать посещение певица крым год . запрет исполнительница не_смочь приехать евровидение пройти киев . певица комментарий национальный служба новость нсн назвать решение киев относительно бесчеловечный циничный . ранний думать что евровидение музыкальный конкурс быть огромный событие музыкальный мир куда стремиться страна . хотеться оставаться музыкальный политический подоплёка добавить артистка . полуфинал евровидение состояться финал . |ngramms европейский_вещательный_союз _ _ _ _ заявить_представитель случай_нарушение вещательный_союз что_евс служба_безопасность_украина российский_участница посещение_певица запрет_исполнительница не_смочь_приехать пройти_в_киев певица__ национальный_служба_новость решение_киев музыкальный_конкурс +574 |text европейский вещательный союз евс организовывать музыкальный конкурс евровидение пересматривать регламент соревнование ежегодно вносить необходимый корректировка . представитель организация сообщить новость . делаться беспрепятственный проведение конкурс оставаться справедливый участвовать вещательный компания доставлять радость миллион зритель мир заявить организатор . стать что евс внести ряд изменение действующий правило евровидение серия скандал случиться время подготовка проведение конкурс украина год . неприятный быть связать запрет въезд страна представитель россия . громкий последовать решение россия проигнорировать мероприятие евс год быть требовать страна делегация не_быть кома запретить въезжать территория государство вещательный союз . канал изменение регламент конкурс комментировать отказаться . |ngramms европейский_вещательный_союз музыкальный_конкурс представитель_организация проведение_конкурс проведение_конкурс вещательный_компания миллион_зритель заявить_организатор что_евс внести_ряд серия_скандал въезд_в_страна россия__ мероприятие_евс год_быть кома_запретить вещательный_союз комментировать_отказаться +277 |text канадский бибер руль пикап сбить фотограф . сообщать портал tmz . отмечаться что музыкант выходить театр беверлить хиллзти штат калифорния где проходить церковный служба . возле заведение ожидать папарацци . бибер сесть пикап случайно задеть чернокожий фотограф выезжать дорога . певец оставаться пострадавший приезд медик полиция . сотрудник правоохранительный орган опросить бибер отпустить . получить фотограф травма угроза жизнь не_представлять . |ngramms поп_певец _бибер портал_tmz что_музыкант штат_калифорния где_проходить правоохранительный_орган +152 |text британский группа blur записать новый материал . заявить лидер албарн время выступление гонконг передавать nme . слово недельный простой вызвать перенос запланировать японский концерт группа появиться время записать новое песнь сочинённый blur год . полноценный альбом группа tank выйти год . группа продолжить выходить новое песнь . В год участник blur сочинить новое композиция westway puritan . поздний продюсер орбита заявить что группа работать новый материал . участник группа гитарист коксон твиттер осень год опровергнуть слух . blur основатель главный группа бритпоп распасться год воссоединиться серия концерт . В год выступление гайда парка рамка торжество повод закрытие олимпиада группа быть намерить прекратить существование албарн заявить что перерыв концертный деятельность не_означать конец группа . В конец год быть объявить новый турне . blur выступить москва как хэдлайнер фестиваль пикник афиша . |ngramms британский_группа новый_материал новый_материал _албарн _албарн передавать_nme новое_песнь новое_песнь альбом_группа продюсер_ участник_группа гитарист_ серия_концерт прекратить_существование концертный_деятельность В_конец год_быть_объявить выступить_в_москва +1000 |text американский лизинговый группа air leasing corporation alc заказать европейский авиастроительный концерн airbus самолёт совокупный стоимость каталожный цена оцениваться девять миллиард доллар . сообщаться официальный airbus . условие заказ alc получить лайнер . компания располагать опция покупка дополнительный самолёт . лайнер являться новый разработка airbus . поставка самолёт заказчик начаться конец год . что составить конкуренция лайнер американский компания boeing boeing boeing dreamliner лайнер мечта . полёт лайнер мечта середина приостановить мир . авиарегулятор решение серия чп dreamliner произойти начало год . ряд инцидент как выясниться быть связать неисправный работа литий ионный аккумулятор установленный лайнер мечта . власть сша япония вести расследование призвать установить причина неисправность батарея . |ngramms концерн_airbus миллиард_доллар пресс_релиз новый_разработка американский_компания лайнер_мечта лайнер_мечта лайнер_мечта как_выясниться установить_причина +1001 |text новый президент зао гражданский самолёт сухой гсс производитель самолёт sukhoi superjet ssj назначить калиновский . официальный гсс . калиновский приступить выполнение обязанность текущий год . пост президент сменить перейти работа оао компания сухой . должность президент гсс покинуть истечение срок трудовой договор . быть избранный новый председатель совет директор гсс . имя стать . являться президент председатель правление объединить авиастроительный корпорация . как пояснить гсс новое назначение связать план увеличение темп производство ssj . калиновский год являться производство гсс директор филиал . руководство быть наладить конвейерный сборка ssj . ssj являться новый разработка российский авиапром . У гсс иметься контракт поставка двести лайнер superjet учёт опцион триста . самолёт получить стартовый заказчик армянский российский аэрофлот . |ngramms новый_президент гражданский_самолёт_сухой производитель_самолёт sukhoi_superjet назначить_ пресс_релиз текущий_год _ _ должность_президент _покинуть избранный_новый председатель_совет_директор председатель_правление объединить_авиастроительный_корпорация новое_назначение вице_президент комсомольск_на_амуре комсомольск_на_амуре новый_разработка гсс_иметься контракт_на_поставка стартовый_заказчик +1002 |text новое магазин икеа мег год россия открываться не_быть сообщить лента . представитель ikea shopping centers russia русакова . ведомость писать что икеа намерить возобновить строительство торговый центр россия год . компания начало строительство новый объект не_сообщать . ближний открытие новое магазин официально сообщать икеа запланировать год . К срок подмосковный мытищи построить крупный европа торговый центр мег магазин икеа . площадь составить тысяча квадратный метр что позволить миллион посетитель год . В ikea открывать новое торговый центр год уфа самар . В представитель компания официально заявить открытие ближний год магазин икеа мег москва подмосковье воронеж красноярск пермь . как сообщить русакова стадия детальный планирование находиться проект расширение площадь мег адыгея кубань . включать развитие инфраструктура создание существующий торговый центр парковый прогулочный зона детский площадка открытый воздух . стоимость новое инвестиционный проект икеа составлять миллиард рубль сайт правительство республика адыгея . завершение работа наметить год . долгосрочный план икеа развитие российский сеть включать строительство торговый центр саратов волгоград челябинск тюмень . вестись поиск площадка строительство . сообщать генеральный директор ikea shopping centres russia . икеа год планировать начать закрывать каток торговый центр мег освободить пространство зона общественный питание развлечение . зона ближний год увеличиться примерно втрое . В очередь новый концепция переделать магазин мег тёплый стан мег химки . |ngramms магазин_икеа магазин_икеа магазин_икеа год_в_россия представитель_ikea намерить_возобновить торговый_центр торговый_центр торговый_центр торговый_центр торговый_центр торговый_центр пресс_служба строительство_новый новое_магазин тысяча_квадратный_метр что_позволить миллион_посетитель представитель_компания санкт_петербург как_сообщить развитие_инфраструктура мини_город детский_площадка инвестиционный_проект миллиард_рубль завершение_работа долгосрочный_план российский_сеть поиск_площадка генеральный_директор _ планировать_начать увеличиться_примерно В_один_очередь +1003 |text основатель facebook потерять позиция рейтинг богатый человек мир версия агентство bloomberg . опуститься строчка потерять миллиард доллар фон резкий обвал стоимость акция компания . состояние предприниматель оцениваться миллиард доллар составлять миллиард . В список богатый человек уступить американский инвестор президент французский группа компания louis vuitton mo hennessy арно основатель испанский фирма inditex ортег . акция facebook рухнуть публикация квартальный отчёт даваться негативный прогноз аналитик . потеря компания составлять миллиард доллар . В отчёт что квартальный выручка facebook составить миллиард доллар что оказаться запланировать показатель . пользователь заходить соцсеть увеличиться миллиард человек вместо ожидать миллиард . обвал акция процент спровоцировать негативный показатель темп рост прибыть . |ngramms основатель_facebook _ _ богатый_человек богатый_человек мир_по_версия агентство_bloomberg миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар стоимость_акция состояние_предприниматель В_список американский_инвестор французский_группа акция_facebook негативный_прогноз потеря_компания В_отчёт вместо_ожидать темп_рост +1004 |text british american tobacco bat крупный мир табачный компания направить американский reynolds american . предложение . сайт bat . британский корпорация владеть процентный пакет акция reynolds american готовый выкупить остаться процент миллиард доллар . сумма миллиард bat предлагать оплатить наличный остальной акция . британский бизнесмен готовый приобрести акция reynolds american процентный премия текущий рыночный цена состояние закрытие биржевой торг . стоимость компания reynolds american . оцениваться миллиард доллар . исполнительный директор bat дурант что предлагать слияние являться логический продолжение отношение предоставить акционер возможность получить доля сильный глобальный табачный компания следующий поколение . быть акционер reynolds создание год извлечь выгода рост американский рынок . приобретение компания lorillard год укрепить позиция reynolds сделка стоимость миллиард доллар быть закрытый прошлое год прима . лента . добавить . отмечаться что предметный переговоры bat менеджмент reynolds american не_проводиться официальный объявление сделать жёсткий требование закон сша ценный бумага . british american tobacco крупный мир холдинг выпуск сигарета контролировать процент мировой рынок . компания принадлежать марка включая dunhill kent pall mall vogue ява . В год bat собственный миллиард сигарета изготовить завод страна . штат насчитывать тысяча человек . оборот группа год составить миллиард фунт стерлинг миллиард доллар текущий курс выручка миллиард фунт миллиард доллар . reynolds american величина табачный компания сша занимать четверть рынок страна . владеть бренд camel pall mall производить электронный сигарета vuse . |ngramms пресс_релиз пакет_акция готовый_выкупить миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар рыночный_цена исполнительный_директор возможность_получить американский_рынок быть_закрытый прошлое_год официальный_объявление жёсткий_требование закон_сша ценный_бумага мировой_рынок компания_принадлежать тысяча_человек оборот_группа год_составить фунт_стерлинг текущий_курс миллиард_фунт компания_сша рынок_страна владеть_бренд электронный_сигарета +1005 |text строительство мост керченский пролив начаться сооружение тело фарватерный опора автодорожный железнодорожный часть сооружение . сообщать сайт информационный центр крымский мост . фарватерный опора конструкция свайный фундамент ростверк тело опора состоять стойка ригель . арочный пролёт крымский мост . проект близкий тамань близкий керчь . строительство свайный фундамент фарватерный опора завершиться . потребоваться километр труба тысяча кубометр бетон тысяча тонна металл арматура тысяча квадратный метр антикоррозийный покрытие . следующий этап сооружение ростверк называть верхний часть фундамент распределять нагрузка . В настоящее время ростверк автодорожный часть мост полностью выполнить . сооружение ростверк железнодорожный часть опора продолжаться . быть метровый конструкция вес тонна . образовать стальной каркас опора одеть армокаркас забетонировать . опора быть готовый арка крымский мост конец год . В начало глава минтранс максим доложить президент что строительство крымский мост идти опережение график . мост соединить крым краснодарский край . длина сооружение составить километр быть протяжённый россия . автомобильный движение планироваться открыть год железнодорожный . |ngramms железнодорожный_часть железнодорожный_часть сообщать_сайт крымский_мост крымский_мост крымский_мост крымский_мост километр_труба тысяча_кубометр тысяча_тонна тысяча_квадратный_метр следующий_этап В_настоящее_время часть_мост быть_готовый В_начало максим_ президент__ мост_соединить краснодарский_край +1006 |text газпром решить приостановить расширение система газопровод планироваться использовать рамка проект турецкий поток сообщать рбk ссылка письмо член правление газовый холдинг . В документ направить дочерний структура компания газпром инвест газпром центрремонт газпром комплектация просить особый разрешение приостановить инвестпроект расширение система трубопровод южный коридор строительство начаться год . программа расширение газотранспортный сеть южный коридор предусматривать строительство компрессорный станция нитка газопровод западный восточный маршрут протяжённость тысяча километр совокупность способный пропускать миллиард кубометр газа год . южный коридор пройти территория восемь регион россия нижегородский область краснодарский край . позволить направить дополнительный объём газа центральный южный часть страна обеспечить подача топливо газопровод турецкий поток . В приложение письмо указываться участок южный коридор компания решить достроить восточный маршрут компрессорный станция починка нижегородский область станция русский краснодарский край . западный маршрут воронежский область русский протяжённость километр построить . образ газпром собираться заморозить строительство километр подсчитать рбк . замгендиректор фонд национальный энергетический безопасность гривач заявить издание что заморозка строительство связать необходимость оптимизировать затрата газпром есть приоритетный проект . турция выдать первое официальный разрешение проект турецкий поток . анкара согласовать инженерный изыскание морской участок газопровод быть состоять нитка миллиард кубометр газа . документ предусматривать проведение исследование нитка газопровод исключительный экономический зона территориальный вод турция . газопровод пройти километр старый коридор закрытый проект южный поток километр новый коридор направление европейский часть турция . В год россия отказаться строительство газопровод южный поток обход украина сопротивление еврокомиссия . ход визит турция президент москва анкара договориться прокладка дно чёрный море газопровод турецкий поток протяжённость километр пропускной способность миллиард кубометр газа год . газпром намеренный транспортировать топливо страна европа . предполагаться что турецкий греческий граница создать газовый хаб страна ес быть самостоятельно строить инфраструктура приём топливо территория . |ngramms решить_приостановить расширение_система турецкий_поток турецкий_поток турецкий_поток турецкий_поток член_правление газовый_холдинг _ В_документ дочерний_структура топ_менеджер южный_коридор южный_коридор южный_коридор южный_коридор предусматривать_строительство восточный_маршрут тысяча_километр миллиард_кубометр миллиард_кубометр газа_в_год газа_в_год регион_россия краснодарский_край краснодарский_край дополнительный_объём южный_часть В_приложение фонд_национальный энергетический_безопасность заявить_издание турция_выдать морской_участок миллиард_кубометр_газа документ_предусматривать проведение_исследование нитка_газопровод экономический_зона газопровод_пройти старый_коридор закрытый_проект южный_поток южный_поток километр_в_новый европейский_часть строительство_газопровод президент__ чёрный_море топливо_в_страна юго_восточный греческий_граница создать_газовый страна_ес самостоятельно_строить приём_топливо +1007 |text правительство кредитор мечело рассматривать новый план реструктуризация долг металлургический компания сообщать газета коммерсантъ . согласно актив выкупаться группа инвестор состоять помимо внешэкономбанк госбанк кредитор мечело . выручить деньга компания смочь покрыть долг сумма миллиард доллар . чистый долг составлять миллиард доллар . предполагаться что база актив мечело металлургический холдинг евраз компания амурметалл принадлежащий вэб быть создать консорциум . структура деньга участник госбанк вэб выкупить актив мечело американский bluestone западносибирский металлургический комбинат зсмк распадский железорудный проект тимиро евраз . В консорциум войти акционер порт ванино . неофициальный информация основный владелец порт как мечело являться процент принадлежать структура ржд . мечело получить новый консорциум процент . госбанк приходиться треть кредит мечело исполнять поручение президент спасение мечело разработать новый схема поддержка компания . газпромбанк втб сбербанк мочь выделить мечело миллиард доллар миллиард доллар пойти выкуп допэмиссия конвертировать облигация . В конечный итог состав акционер консорциум выглядеть российский иностранный инвестор быть процент мечело владелец порт ванино процент судьба процент неизвестный . состав инвестор неизвестный предполагаться что идти основный акционер евраз . |ngramms новый_план реструктуризация_долг металлургический_компания сообщать_газета выручить_деньга компания_смочь миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар чистый_долг металлургический_холдинг быть_создать металлургический_комбинат основный_владелец являться__ процент_принадлежать президент__ разработать_новый схема_поддержка состав_акционер иностранный_инвестор основный_акционер _ __и__ +1008 |text агентство гражданский авиация ага грузия сократить регулярный рейс тбилиси российский авиакомпания . как писать коммерсантъ соответствующий требование ага обратиться национальный авиаперевозчик georgian airways . информация газета количество рейс аэрофлот авиакомпания сибирь москва тбилиси быть сократить неделя . перевозчик трансаэро глобус дочерний компания сибирь быть отказать получение постоянный лицензия регулярный полёт . неделя georgian airways обвинить аэрофлот искусственный занижение цена авиабилет москва тбилиси результат что загрузка рейс грузинский компания сократиться процент . гендиректор georgian airways ияс грозиться прекратить полёт направление . источник издание тбилиси решение проблема польза грузинский перевозчик быть подключить всевозможный депутатский круг патриархия . В аэрофлот подтвердить получение телеграмма грузия указание сократить количество частота сибирь росавиация отказаться комментировать информация . минтранс заявить что готовый переговоры . В трансаэро начало продавать билет рейс москва тбилиси заявить что позиция авиакомпания не_измениться пассажир оформить билет финансовый не_пострадать . газета грузия разрешить перевозчик осуществить рейс билет чартерный основа дальнейший схема работа быть вырабатываться отдельный порядок . регулярный авиасообщение россия грузия быть прервать инициатива российский сторона год вооружённый конфликт южный осетия . В сибирь уральский авиалиния georgian airways возобновить чартерный рейс . В середина текущий год росавиация разрешить возобновить регулярный авиасообщение страна . допуск выполнение полёт выдать авиакомпания аэрофлот вим глобус сибирь трансаэро уральский авиалиния ютэйр . шестилетний перерыв аэрофлот совершить полёт москва тбилиси . |ngramms гражданский_авиация российский_авиакомпания как_писать соответствующий_требование национальный_авиаперевозчик быть_сократить дочерний_компания регулярный_полёт прекратить_полёт источник_издание решение_проблема перевозчик_быть подтвердить_получение сократить_количество отказаться_комментировать что_готовый начало_продавать билет_на_рейс грузия_быть российский_сторона уральский_авиалиния уральский_авиалиния В_середина текущий_год росавиация_разрешить возобновить_регулярный полёт_выдать +1009 |text В лоукостер доброгод произойти кадровый перестановка . новый главый компания назначить отстранить год должность первое заместитель гендиректор аэрофлот уголовный . приступать исполнение обязанность сообщать коммерсантъ . нынешний глава компания остаться добролето должность первое заместитель гендиректор . источник газета отмечать что следственный орган назначение . закрытый что ставить сомнение возвращение аэрофлот . А амбициозный задача создавать лоукостёр . справиться фактически реабилитировать считать источник . В год занимать пост заместитель генеральный директор коммерция аэрофлот быть возбудить уголовный признак преступление предусмотренный частью статья уголовный кодекс рф злоупотребление полномочие . как считать следователь заключение договор аэрофлот туроператор тур группа тур предоставить организация явный преимущество . В год крупный россия авиакомпания заключить договор реализация блочный перевозка тур группа . В рамка контракт предполагаться реализация тысяча место маршрут москва москва стоимость продажа место экономкласс составить доллар . В время компания теза тур предлагать купить аэрофлот тысяча место экономкласс дать маршрут доллар . В результат подписание договор тур группа недополученный аэрофлот прибыль составить миллион доллар свыше миллион рубль . подсчёт эчлбипакк аудит ущерб государство как основный акционер аэрофлот составить итог миллион рубль . компания тур группа тур оказаться связать близкие родственник . итог проверка счётный палата когда ведомство отследить деятельность аэрофлот год квартал выясниться что тур группа период заключение контракт перевозчик принадлежать эссет менеджмент . учредитель компания являться супруг мать . |ngramms топ_менеджмент главый_компания _ _ заместитель_гендиректор заместитель_гендиректор исполнение_обязанность глава_компания источник_газета что_следственный назначение_ занимать_пост генеральный_директор быть_возбудить кодекс_рф злоупотребление_полномочие как_считать заключение_договор тур_группа тур_группа тур_группа тур_группа тур_группа крупный_в_россия В_рамка маршрут_москва В_то_же_время В_результат миллион_доллар миллион_рубль миллион_рубль ущерб_государство основный_акционер компания_являться +1010 |text дочерний структура итальянский нефтегазовый концерн eni компания saipem не_заработать миллиард евро отмена проект южный поток сообщать ссылка финансовый отчёт saipem . портфель невыполненный заказ включать эффект отмена контракт южный поток размер миллиард евро уведомление прекращение контракт отмечаться документ . отмена контракт строительство южный поток падение цена нефть saipem вынудить сократить тысяча сотрудник год писать deutsche welle . образ ближний год быть уволить семь сотрудник компания численность составлять тысяча человек . издание отмечать что saipem необходимый сэкономить миллиард евро полностью вернуть конкурентоспособность основной сфера деятельность неизвестно когда начать поступать новое заказ клиент свет негативный тенденция нефтяной рынок . saipem итог первое полугодие списать миллион евро итог год ожидать чистый убыток размер миллион евро . закрытие проект южный поток компания прогнозировать прибыль год размер миллион евро . компания являться подрядчик строительство газопровод южный поток . контракт south stream transport B . V . дочерний структура газпром заключённый год предусматривать строительство нитка морской участок газопровод . глубоководный укладка нитка быть осуществлять швейцарский компания allseas group saipem оказывать услуга обеспечение строительство . как россия решить отказаться строительство южный поток польза альтернативный проект газопровод турецкий поток контракт saipem быть расторгнуть . изначально предполагаться что итальянец быть участвовать реализация турецкий поток поскольку маршрут морской участок практически совпадать южный поток . сторона не_смочь договориться многий рабочий коммерческий вопрос . В результат год south stream transport B . V . сообщить расторжение контракт saipem . В год россия отказаться строительство газопровод южный поток обход украина сопротивление еврокомиссия . ход визит турция президент москва анкара договориться прокладка дно чёрный море газопровод пропускной способность миллиард кубометр газа год . газпром намеренный транспортировать газопровод протяжённость километр быть состоять нитка голубой топливо страна европа греция . предполагаться что турецкий греческий граница быть создать газовый хаб страна ес смочь самостоятельно строить инфраструктура приём топливо территория . |ngramms дочерний_структура дочерний_структура нефтегазовый_концерн миллиард_евро миллиард_евро миллиард_евро южный_поток южный_поток южный_поток южный_поток южный_поток южный_поток южный_поток южный_поток финансовый_отчёт отмена_контракт цена_на_нефть тысяча_сотрудник быть_уволить сотрудник_компания тысяча_человек издание_отмечать сфера_деятельность начать_поступать нефтяной_рынок первое_полугодие миллион_евро миллион_евро миллион_евро убыток_в_размер закрытие_проект компания_прогнозировать год_в_размер компания_являться предусматривать_строительство морской_участок морской_участок швейцарский_компания россия_решить турецкий_поток турецкий_поток изначально_предполагаться коммерческий_вопрос В_результат строительство_газопровод президент__ чёрный_море миллиард_кубометр газа_в_год топливо_в_страна юго_восточный греческий_граница быть_создать страна_ес самостоятельно_строить приём_топливо +1011 |text нафтогаз украина отказаться платить газпром миллиард доллар недобор газа . письмо отказ признавать счёт отправить сообщать компания . газпром конец потребовать нафтогаза заплатить невыбранный год объём газа . мнение украинский сторона требование основываться положение брать платить давно не_являться рыночный практика вид как настаивать российский газовый монополист . В киев ссылаться что договор нафтогаз газпром содержимый механизм практический реализация положение . нафтогаз украина направить газпром предарбитражный нота предложение урегулировать спорный вопрос договор купля продажа природный газа заключённый переговоры год . требование пересмотр касаться основный положение договор ключевой вопрос являться пересмотр цена газ . идти как цена газ предложить украинский сторона год уровень цена нафтогаз быть вынужденный платить прошлое . В киев настаивать что автоматически ставить сомнение обоснованность размер задолженность потребить прошлое период газ погашение требовать газпром . нафтогаз предложить газпром урегулировать разногласие путём переговоры сторона не_прийти согласие сутки спорый быть вынести рассмотрение арбитражный институт стокгольм . предварительный газпром задолженность украина российский газ составлять миллиард доллар . сумма включать заявка нафтогаза объём газпром поставить месяц . долг нафтогаза украина российский газ учёт мартовский поставка оцениваться миллиард доллар . зампредседатель правление газпром заявлять что газпром выставить нафтогаза счёт невыборка газа год размер миллиард доллар . суммарный долг нафтогаза невыборка газа контракт условие брать платить составлять миллиард доллар . В конец стать что правительство украина решение подать суд газпром . исполнять обязанность украина яценюк выразить готовность погасить накопиться российский газовый монополист долг миллиард доллар импортировать газ условие что газпром вернуть цена первое квартал . украина неоднократно высказывать недовольство установленный газпром цена составлять доллар тысяча кубометр . договорённость газа согласно вестись поставка газпром украина быть достигнуть год . соглашение подписать тогдашний страна . |ngramms нафтогаз_украина нафтогаз_украина отказаться_платить объём_газа украинский_сторона украинский_сторона российский_газовый российский_газовый В_киев В_киев природный_газа ключевой_вопрос цена_на_газ цена_на_газ уровень_цена быть_вынужденный быть_вынести российский_газ российский_газ миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар нафтогаза_украина _ год_в_размер В_конец что_правительство исполнять_обязанность премьер_министр премьер_министр украина_ выразить_готовность первое_квартал тысяча_кубометр быть_достигнуть соглашение_подписать __и__ +1012 |text итальянский газета corrierre della sera сообщить арест собственность аркадия страна . издание арест быть наложить вилла бизнесмен сардиния элитный отель рим недвижимость регион лацио . мера коснуться акция банковский счёт . В список опечатать недвижимость издание отель рим входить квартира кальярь вилла город вилласимиус вилла вилла . арестовать актив имущество сумма миллион евро издание арест собственность бизнесмен быть наложить решение евросоюз санкция россия соответствие мера предусмотренный предотвращение сдерживание пресечение финансирование терроризм деятельность страна угрожать международный мир безопасность . власть италия уведомить происходить компания olpon investment limited зарегистрировать кипр aurora принадлежать отель berg luxury рим . В время сообщать что гостиница berg luxury рим открытый продолжать работа . гостиница открытый портье агентство добавить что дирекция отель нет . очередь назвать арест недвижимость италия абсурдный нелегитимный шагом . Я месяц находиться санкция ничто не_удивлять . удивлять что дать случай недвижимость санкция не_подпадать . объявить санкция подпадать счёт актив италия нет рассказать бизнесмен интерфакс . В конец сообщаться что брат не_смочь купить итальянский футбольный клуб бари экономический санкция . пакет санкция ес россия украина вступить сила год как крым севастополь итог референдум проводиться полуостров войти состав российский федерация . поздний перечень неоднократно расширяться . санкция предполагать ограничение въезд заморозка счёт . В отношение ряд физический юридический лицо россия украина действовать санкция сша япония австралия канада . |ngramms итальянский_газета аркадия_ банковский_счёт В_список арестовать_актив миллион_евро быть_наложить В_то_же_время продолжать_работа дать_случай что_брат _и__ футбольный_клуб экономический_санкция пакет_санкция россия_и_украина россия_и_украина вступить_в_сила войти_в_состав российский_федерация В_отношение юридический_лицо санкция_сша +1013 |text роснефть keppel offshore marine mh wirth учредить совместный предприятие сп создание россия центр проектирование морской установка . роснефть поступить редакция лента . . основный задача центр роснефть keppel offshore marine принадлежать процент уставный капитал mh wirth процент стать технический проектирование установка работа шельф инженерный коммерческий деятельность . подписать сторона соглашение предполагать разработка инженерный коммерческий деятельность центр рамка проект судостроительный комплекс звезда владивосток привлечение заказ российский международный компания . центр быть заниматься обучение вопрос проектирование . предполагаться что новый центр проектирование инжиниринг быть способствовать увеличение потенциал роснефть область проектирование шельфовый оборудование мировой класс . проект являться пример как опыт технология лидер мировой рынок мочь быть использовать решение глобальный задача освоение нефтегазоносный шельф заявить председатель правление роснефть сечин . keppel offshore marine дочерний структура сингапурский keppel corporation являться крупный международный компания специализироваться проектирование строительство ремонт морской установка специализировать судостроение . компания объединять использовать экспертиза опыт судостроительный верфь офис мир . mh wirth норвежский компания ведущий мировой поставщик услуга решение . |ngramms совместный_предприятие инженерно_технический инженерно_технический _установка _установка _установка пресс_релиз поступить_в_редакция уставный_капитал коммерческий_деятельность коммерческий_деятельность сторона_соглашение что_новый быть_способствовать мировой_рынок мочь_быть председатель_правление _сечин дочерний_структура являться_крупный международный_компания ведущий_мировой +1014 |text новый лоукостёр аэрофлот бюджетный перевозчик создать взамен попасть антироссийский санкция добролето официально подать росавиация заявка получение сертификат . сообщать ссылка источник группа аэрофлот . источник сообщить что бюджетный перевозчик планировать выполнять полёт восемь маршрут москва тюмень белгород екатеринбург казань сургут волгоград самар уфа самолёт boeing . слово маршрутный сеть определить период конец год . В росавиация подтвердить факт подача бюджетный перевозчик заявка сертификат . быть получить заявление намерение авиакомпания получить сертификат . быть рассмотреть выдать положительный заключение . позволить авиакомпания подать официальный заявка получение сертификат эксплуатант сообщить агентство росавиация . В ведомство что согласно регламент росавиация подача заявление решение выдача сертификат мочь пройти рабочий срок мочь быть сократить . юридический лицо новый авиакомпания ооо бюджетный перевозчик процентный аэрофлот быть зарегистрировать текущий год . главый компания стать генеральный директор добролето . новое ооо фактически стать замена добролето подать федеральный агентство воздушный транспорт заявка получение сертификат эксплуатант . международный аэропорт шереметьево предоставить ооо бюджетный перевозчик возможность выполнять полёт терминал В год включительно . С авиакомпания доброгод приостановить полёт санкция . ряд европейский контрагент сообщить отказ выполнять обязательство российский лоукостер аннулировать действие договор лизинг технический обслуживание страхование воздушный судно предоставление аэронавигационный информация . |ngramms бюджетный_перевозчик бюджетный_перевозчик бюджетный_перевозчик бюджетный_перевозчик бюджетный_перевозчик заявка_на_получение заявка_на_получение заявка_на_получение выполнять_полёт выполнять_полёт восемь_маршрут самолёт_boeing маршрутный_сеть В_росавиация факт_подача быть_получить получить_сертификат положительный_заключение сертификат_эксплуатант сертификат_эксплуатант сообщить_агентство пресс_служба В_ведомство выдача_сертификат мочь_пройти мочь_быть юридический_лицо новый_авиакомпания быть_зарегистрировать текущий_год главый_компания _ генеральный_директор федеральный_агентство воздушный_транспорт международный_аэропорт ряд_европейский аннулировать_действие договор_лизинг технический_обслуживание воздушный_судно +1015 |text госкорпорация роснефтегаз контролировать роснефть выкупить компания росатом процент акция интер рао . номер писать газета коммерсантъ ссылка неназванный источник . атомэнергопром подконтрольный росатом объявить выход капитал интер рао не_сообщить название компания покупатель бумага . сумма сделка не_раскрываться . стоимость пакет росатом номинал составлять миллиард рубль . итог торг принадлежащий атомный компания бумага стоить московский биржа гораздо маленький миллиард рубль . сообщаться что роснефтегаз планировать выкупить принадлежащий государство пакет интер рао размер процент . информация коммерсант переговоры вопрос вестись . владелец роснефть выражать готовность купить бумага интер рао принадлежащий дочка интер рао капитал процент . акционер энергетический компания являться федеральный сетевой компания вэб русгидро норникель . О план роснефтегаз выкупить доля собственник ничто . покупка роснефтегаз акция интер рао являться запланировать . участник рынок ждать вхождение госкорпорация энергетический компания весна год когда вновь избранный президент указ разрешить роснефтегаз покупать актив топливный энергетический комплекс . время предвыборный кампания заявлять что компания тэк быть поэтапно приватизировать . инаугурация год глава государство подписать ряд закон не_согласоваться обещание приватизация . В быть разрешить передать пакет компания тэк государственный роснефтегаз . крупный сетевой компания предполагаться частное инвестор быть включить перечень стратегический актив предусмотреть особый порядок приватизация . |ngramms процент_акция писать_газета сумма_сделка стоимость_пакет миллиард_рубль миллиард_рубль планировать_выкупить принадлежащий_государство компания_являться О_план выкупить_доля участник_рынок энергетический_компания президент__ что_компания глава_государство подписать_ряд быть_разрешить пакет_в_компания частное_инвестор перечень_стратегический предусмотреть_особый +1016 |text убыток компания природный техногенный катастрофа год сократиться миллиард доллар сравнение миллиард год . предварительный оценка содержаться исследование швейцарский страховой компания swiss опубликовать . ущерб стихийный бедствие техногенный авария год составить миллиард доллар . миллиард доллар маленький год . сумма компенсация миллиард доллар миллиард доллар быть направить пострадавший природный катастрофа миллиард ликвидация последствие техногенный авария . наиболее дорогостоящий стихийный бедствие компания стать июньский наводнение центральный восточный европа . совокупный ущерб составить миллиард доллар страховой компания возместить миллиард . перестраховщик что итог год страховой институт быть вынудить потратить миллиард доллар ликвидация последствие стихийный бедствие миллиард направить жертва техногенный катастрофа . образ ущерб авария человеческий страховщик не_меняться год подряд . В результат различный стихийный бедствие авария год мир погибнуть тысяча человек . наибольший количество жертва быть где тайфун хаять унести жизнь семь тысяча человек . В год жертва авария катастрофа стать тысяча человек . |ngramms год_сократиться миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар предварительный_оценка страховой_компания страховой_компания год_составить быть_направить восточный_европа что_по_итог быть_вынудить В_результат тысяча_человек тысяча_человек тысяча_человек наибольший_количество катастрофа_стать +1017 |text союз организация ритуальный похоронный обслуживание столица выступить приватизация похоронный бюро объявить московский мэрия . как писать газета коммерсантъ союз считать распродажа актив незаконный как закон О погребение похоронный москва что имущество находиться собственность город использовать погребение не_подлежать приватизация . В мэрия очередь считать что мочь принадлежащий имя доля похоронный бюро поскольку приватизация подлежать имущество ценный бумага цель погребение не_использоваться . москва рамка распродажа непрофильный актив объявить продажа акция похоронный бюро иметь статус специализировать служба обязать предоставлять услуга фиксировать цена . В мэрия готовый расстаться процент акция стикс С процент акция ритуал горбрус занимать основный доля рынок . доля похоронный бюро москва намерить выручить миллион рубль . московский правительство проводить распродажа непрофильный актив год двигаться медленный планироваться изначально . год ведомость писать что мэрия определиться перечень государственный унитарный предприятие компания дирекция единый заказчик подлежать приоритетный акционирование приватизация . В войти бюро похоронный услуга ритуал управлять принадлежащий москва кладбище . не_акционировать пора . |ngramms как_писать_газета находиться_в_собственность принадлежащий_имя ценный_бумага москва_в_рамка продажа_акция иметь_статус обязать_предоставлять процент_акция процент_акция доля_рынок москва_намерить миллион_рубль правительство_проводить планироваться_изначально +1018 |text президент газпром нефть назвать необходимость полный приватизация нефтегазовый сектор спорный как государственный компания мочь быть эффективный частное . заявить ход пмэф передавать корреспондент лента . . добавить что есть частное структура индустрия работать худой государственный . ответить глава центр стратегический разработка заявить необходимость приватизировать госкомпания нефтяной сектор семь восемь год . нужно понять руководствоваться когда приватизация полный какой видеть цель . лозунг что частное актив заведомо эффективный весьма спорный . стать что правительство россия утвердить прогнозный план приватизация федеральный имущество год . план предусматриваться приватизация находиться федеральный собственность акция акционерный общество фгуп доля государство десять ооо тысяча объект имущество государственный казна . |ngramms газпром_нефть __назвать полный_приватизация нефтегазовый_сектор государственный_компания мочь_быть заявить_в_ход передавать_корреспондент что_есть стратегический_разработка _ _ нефтяной_сектор восемь_год правительство_россия план_приватизация федеральный_имущество акционерный_общество +1019 |text ржд рассматривать возможность строительство самарский область двухпутный железнодорожный мост волга стоимость миллиард рубль . сообщить начальник служба технический политика приволжский железный дорога филиал ржд передавать новость . слово проект получить положительный заключение главгосэкспертиза . решаться вопрос финансирование проект заявить . что цель проект являться увеличение грузооборот тяжеловесный поезд тысяча тонна следовать транспортный коридор север юг . строительство слово мочь занять семь год точный срок реализация проект не_определить . приволжский железный дорога охватывать территория саратовский волгоградский астраханский область станция находиться ростовский самарский область . ржд железнодорожный госкомпания владеть железнодорожный инфраструктура пользование россия подавлять частью локомотивный парк . чистый прибыль компания год составить миллиард рубль миллиард рубль убыток . |ngramms рассматривать_возможность миллиард_рубль миллиард_рубль миллиард_рубль начальник_служба железный_дорога железный_дорога _ _ передавать_риа_новость положительный_заключение тысяча_тонна транспортный_коридор мочь_занять семь_год срок_реализация железнодорожный_госкомпания железнодорожный_инфраструктура чистый_прибыль год_составить +1020 |text группа ferrero выпускать шоколад kinder искать технический решение минимизировать попадание вредный вещество продукция . новость заявить компания . В кондитерский холдинг что искать путь решение проблема партнёр цепочка поставка . содержание компонент минеральный масло продукт питание не_являться новый вопрос затрагивать большой количество продукт питание разный категория заявить ferrero . подчеркнуть что след минеральный масло присутствовать практически повсеместно окружающий . наиболее распространить источник являться чернила упаковка . как дать проблема затрагивать ряд отрасль сложность тема необходимый объединить усилие участник производственный продуктовый цепочка поставка отмечать холдинг . эксперт независимый немецкий организация защита право потребитель foodwatch обнародовать итог тестирование продукция ferrero . В продукт производитель шоколад быть обнаружить называть минеральный ароматический масло moah образоваться нефтепереработка . опасный превышение концентрация масло быть зафиксировать вид шоколадный конфета kinder протестировать продукция чипсы шоколадный батончик . издание local отмечать что вещество мочь вызывать онкологический заболевание . предположительно попадать продукт обёртка . представитель foodwatch хиг не_рекомендовать покупать шоколадка превысить уровень moah . немецкий ассоциация кондитер bdsi заявить что обнаружить foodwatch концентрация moah вызывать беспокойство потребитель . итальянский группа ferrero выпускать шоколад кондитерский изделие . В владеть марка raffaello kinder surprise kinder chocolate tic tac nutella . холдинг принадлежать десятка торговый компания фабрика мир . российский рынок ferrero работать год . |ngramms выпускать_шоколад выпускать_шоколад технический_решение вредный_вещество заявить_в_компания что_искать решение_проблема продукт_питание продукт_питание большой_количество пресс_служба наиболее_распространить ряд_отрасль объединить_усилие право_потребитель В_продукт быть_обнаружить быть_зафиксировать итальянский_группа кондитерский_изделие торговый_компания +1021 |text заместитель председатель правление газпром прокомментировать промежуточный решение стокгольмский арбитраж спор нафтогаз согласно контракт поставка топливо украина отменяться требование брать платить pay . высказаться петербургский международный экономический форум пмэф сообщать интерфакс . А киев радоваться победа ? какой победа ? футбол гол не_забить коснуться мяч что ? победа ? В футбол победа приносить забитый голый краткосрочный владение мяч пояснить возглавлять континентальный хоккейный лига . что не_видеть решение арбитраж . страница не_успеть прочитать . А предварительно ничто не_сказать добавить . глава газпром очередь напомнить что окончательный решение быть вынести ранний конец . нафтогаза заявить что стокгольмский арбитраж отменить требование pay контракт поставка газа киев . замминистра иностранный украина уточнить что решение суд полностью отменный запрет реэкспорт топливо пересмотреть формула цена газ год быть привязать котировка европейский газовый . В газпром подтвердить получение решение назвать промежуточный . документ как заявить российский компания содержимый конкретный цифра сумма посвятить юридический вопрос . судебный тяжба газпром нафтогаз длиться год . российский компания обратиться стокгольмский арбитраж добиться выплата украинский предприятие штраф недобор топливо условие pay задолженность поставка пеня сумма требование состояние свыше миллиард доллар . В год нафтогаз подать встречный иск потребовать изменить цена топливо быть установить возможный принятие суд соответствующий решение . украинский компания настаивать возмещение переплата отмена реэкспорт выплата газпром компенсация снижение объём транзит низкий транзитный ставка . сумма исковый требование нафтогаза миллиард доллар . газпром структура спонсировать ряд спортивный команда футбольный клуб зенит шалька . |ngramms заместитель_председатель_правление _ _ стокгольмский_арбитраж стокгольмский_арбитраж стокгольмский_арбитраж международный_экономический_форум топ_менеджер решение_арбитраж окончательный_решение_быть украина__ решение_суд цена_на_газ подтвердить_получение российский_компания российский_компания конкретный_цифра юридический_вопрос украинский_предприятие миллиард_доллар миллиард_доллар В_тот_же_год принятие_суд соответствующий_решение украинский_компания снижение_объём исковый_требование футбольный_клуб +1022 |text количество нелегальный микрокредитор россия год вырасти тысяча . большой зарегистрировать цб микрофинансовый организация мфо . писать газета коммерсантъ ссылка дать комитет безопасность сро мир . объесть портфель чёрный кредитор составлять миллиард рубль . средний объесть портфель нелегальный ростовщик достигать миллион рубль . рынок нелегальный микрокредитор состоять физлицо половина иметь статус индивидуальный предприниматель . В реестр мфо центробанк не_входить работать оглядка закон отмечать председатель комитет безопасность сро мир грунт . закон О потребительский кредит непрофессиональный кредитор физлицо мочь выдавать заём год . профессиональный состоять реестр банка россия соответствовать определённый требование . спрос услуга чёрный кредитор высокий . К обращаться проблемный заёмщик преуспевать бизнесмен не_хотеть фиксировать электронный система финансовый информация считать директор безопасность центр финансовый поддержка . чёрный кредитор простой договориться ограничиться расписка иногда оставить залог паспорт документ . согласно законодательство чёрный кредитор грозить штраф должностной лицо тысяча тысяча рубль юрлицо тысяча тысяча рубль . большой важный новость telegram канал лента . подписываться ! |ngramms писать_газета чёрный_кредитор чёрный_кредитор чёрный_кредитор чёрный_кредитор миллиард_рубль объесть_портфель миллион_рубль иметь_статус электронный_система финансовый_поддержка _ грозить_штраф тысяча_рубль тысяча_рубль важный_новость +1023 |text концепция развитие московский транспортный узел предусматривать объединение вокзал . сообщить ржд развитие скоростной высокоскоростной движение передавать rambler service . пояснить что вокзал комсомольский площадь ленинградский ярославский казанский мочь быть связать курский вокзал прямая железнодорожный сообщение . В результат движение быть удобный как движение терминал аэропорт . планироваться строительство дополнительный путь курский вокзал каланчевский станция быть задействовать поезд транспорт пассажир вокзал . летом год известие сообщить что основной вокзал москва ярославский ленинградский казанский киевский курский мочь перестать поезд дальний следование . согласно разработать москомархитектура не_утвердить мэрия концепция поезд быть высаживать пассажир отдалённый центр город станция . |ngramms концепция_развитие московский_транспортный вице_президент _ rambler_news_service мочь_быть железнодорожный_сообщение В_результат терминал_аэропорт что_основной поезд_дальний поезд_быть центр_город +1024 |text австрия намерить оспорить европейский суд контракт росатом строительство реактор аэс пакша венгрия . сообщать издание krone ссылка министр окружающий кёстингер . идти защита страна ребёнок политик twitter . выразить озабоченность что аэс располагаться километр граница австрия причём реакторный блок быть построить год сейсмоопасный зона . издание приводить слово представитель национальный антиядерный движение австрия указать что ес решение приемлемость атомный электростанция основа полностью устаревший контракт euratom . В год россия венгрия подписать контракт стоимость миллиард евро строительство энергоблок атомный электростанция пакша . реализация проект москва быть предоставить будапешт миллиард евро кредит планироваться потратить оплата поставка оборудование работа проектирование строительство ввод энергоблок эксплуатация . В год еврокомиссия завершить расследование возможный нарушение строительство аэс пакша венгрия одобрить проект строительство российский сторона . |ngramms европейский_суд быть_построить слово_представитель подписать_контракт миллиард_евро миллиард_евро поставка_оборудование год_еврокомиссия строительство_аэс российский_сторона +1025 |text amazon объявить возможный повышение оплата использование топовый тариф доставка prime цена не_меняться девять год . писать financial times . стоимость пакет prime мочь вырастить процент нынешний доллар год . prime позволять клиент amazon пользоваться бесплатный доставка неограниченный количество товар давать доступ видеосервис магазин . В качество причина повышение тариф глава финансовый подразделение компания жутак tom szutak назвать рост популярность услуга . компания пожаловаться загрузка мощность приводить рост расход .. как издание предварительный уведомление amazon рост стоимость услуга характерный обычно скрытный . образ подчеркнуть ft amazon мочь узнавать мнение клиент повышение цена . сведение магазин насчитываться десяток миллион пользователь тариф prime . amazon месяц экспериментировать различный способ удешевить доставка товар . В конец год компания зарегистрировать патент система товар быть отправляться покупатель фактический покупка . В начало год появиться информация что планировать год наладить отправка покупка помощь беспилотник . amazon являться крупный онлайн магазин мир . основный часть прибыть компания тратить собственный развитие . отчитаться чистый прибыть год размер миллион доллар выручка миллиард доллар . |ngramms интернет_магазин девять_год стоимость_пакет позволять_клиент В_качество повышение_тариф подразделение_компания рост_популярность рост_расход рост_стоимость повышение_цена миллион_пользователь различный_способ В_начало появиться_информация являться_один_из_крупный основный_часть прибыть_компания чистый_прибыть год_в_размер миллион_доллар миллиард_доллар +1026 |text продажа vodafone процент акция совместный предприятие verizon wireless компания verizon communications миллиард доллар быть согласовать время хоккейный матч . сообщать сайт газета guardian ссылка глава vodafone колао vittorio colao . игра проходить спортивный сквер гарден команда рейнджерс . слово колао утаивать переговоры главый verizon communcations лоуэлом макадам lowell mcadam не_быть никакой смысл как слух давно циркулировать . вести переговоры публичный место руководство компания надеяться сохранить инкогнито . издание не_сообщать какой игра рейнджер быть заключить сделка . матч кубок стэнли команда провести выезд родной выступать . совместный предприятие verizon wireless быть создать компания год . процент акция сп принадлежать verizon communications остаться доля vodafone . колао что стоимость verizon wireless запуск увеличиться . получить verizon communications средство vodafone распределить акционер что уйти миллиард фунт остаться миллиард быть инвестировать компания . О сделка британский vodafone американский verizon быть объявить . стать крупный сделка история уступить поглощение aol компания time warner год миллиард доллар покупка vodafone немецкий сотовый оператор mannesmann миллиард доллар год . |ngramms процент_акция процент_акция совместный_предприятие совместный_предприятие миллиард_доллар миллиард_доллар миллиард_доллар быть_согласовать нью_йорк нью_йорк сайт_газета не_быть_никакой вести_переговоры публичный_место руководство_компания быть_заключить _выступать быть_создать что_стоимость миллиард_фунт быть_объявить сотовый_оператор +1027 |text судебный пристав арестовать архангельский область судно юшар владелец числиться дочерний структура лукойл варандейский терминал . сайт управление фссп архангельский область . исполнительный лист основание действовать пристав поступить суд . решение задержание судный быть качество обеспечительный мера иск компания орбита . В сообщение подчёркиваться что определение суд приводиться исполнение немедленно . судебный пристав незамедлительно выехать адрес нахождение судный находиться хранение территория архангельский ремонтный эксплуатационный база релиз . судно быть арестовать присутствие понятой гендиректор предприятие . решение арбитражный суд арест судный юшар быть . судья прийти вывод что варандейский терминал владеть актив незаконно быть решение передача орбита . структура лукойл польза истец взыскать миллион рубль сумма необоснованный обогащение . ответный иск варандейский терминал быть отклонить . лукойл крупный частный нефтяной компания башнефть полюс дочерний предприятие башнефть участвовать разработка месторождение имя требс ненецкий автономный округа запас превышать миллион тонна нефть . |ngramms дочерний_структура пресс_релиз мера_по_иск В_сообщение быть_арестовать арбитражный_суд владеть_актив миллион_рубль быть_отклонить крупный_частный нефтяной_компания дочерний_предприятие разработка_месторождение автономный_округа миллион_тонна_нефть +1028 |text лукойл включить участок серый лис район шпицберген считаться свободный экономический деятельность зона очередной раунд аукцион проводить норвегия . лента . сообщить источник отрасль . слово министерство нефть норвегия недавно решение расширение перечень распределять участок углеводород предлагать энергетический компания рамка лицензионный раунд счёт сера лис . участок находиться зона шпицбергенский квадрат международный право считаться зона свободный экономический деятельность государство право территория разный время заявлять норвегия россия . российский власть рекомендовать отечественный компания воздержаться работа дать участок поскольку мочь быть истолковать как признание норвегия право экономический суверенитет шпицбергенский квадрат говорят источник . напомнить что соответствие договор шпицберген год документ подписать сша великобритания индия дания франция италия япония норвегия нидерланды швеция год присоединиться ссср государство есть право одинаковый свободный доступ цель задача вода фьорд порт архипелаг право остановка . некоторые включение сера лис перечень распределять участок вынудить shell bp роснефть отказаться лицензионный раунд что быть негативно воспринять министерство нефть норвегия . мнение эксперт аукцион лукойл рассматривать как пролог выход российский шельф . лукойл лишить российский закон право работать шельф арктика мочь рассчитывать получить норвегия соответствующий опыт преддверие возможный либерализация доступ шельф россия сообщить директор тэк терминал . добавить что компания давно лоббировать инициатива надежда поставить баланс богатый арктический месторождение повысить образ капитализация . В случай норвегия ради воплощение идея фикс готовый идти государственный интерес признавать экономический суверенитет государство нато спорный шпицбергенский зона находиться сто километр граница россия резюмировать . что год российский мид вступить дипломатический перепалка внешнеполитический ведомство норвегия повод архипелаг шпицберген . как норвегия решить включить территория зона действие антироссийский санкция мид направить осло нота протест решительно протестовать указанный недружественный шаг требовать незамедлительный пересмотр ввести ограничение . российский сторона обращать внимание что дать мера норвежский власть затрагивать интерес россия страна участница договор год согласие норвегия право вводить правило ограничивать установленный международный договор режим свободный доступ архипелаг . |ngramms экономический_деятельность экономический_деятельность нефть_норвегия нефть_норвегия энергетический_компания российский_власть отечественный_компания дать_участок документ_подписать есть_право свободный_доступ свободный_доступ рассматривать_как право_работать мочь_рассчитывать соответствующий_опыт сообщить_директор _ что_компания арктический_месторождение В_случай де_юре российский_мид ввести_ограничение российский_сторона обращать_внимание дать_мера +1029 |text минэкономразвития направить правительство россия отчёт способ приватизация государственный доля компания башнефть сообщать интерфакс . отмечаться что деталь документ не_разглашаться принятие правительство окончательный решение . предложение быть направить широкий круг потенциальный покупатель не_иметь обязательный характер директор департамент корпоративный управление минэкономразвития . министр экономический развитие россия что правительство планировать провести приватизация башнефть текущий год . сообщить что предварительный оценка госпакет башнефть процент акция миллиард доллар быть дать ориентироваться рыночный цена компания котировка компания подрасти . приватизация госпакет башнефть подать заявка роснефть . покупка ценный бумага интересоваться лукойл татнефтегаз китайский cnpc . В настоящее время собственность российский федерация находиться процент акция . В собственность республика башкортостан процент плюс акция . не_планировать продавать доля предлагать консолидировать федеральный региональный пакет акция башнефть передать управление специализировать компания . В год решение суд процент акция башнефть быть возвратить собственность государство обнаружить нарушение приватизация компания год . судебный решение владелец ценный бумага быть афк система . башнефть включить прогнозный план приватизация федеральный имущество год . |ngramms правительство_россия приватизация_государственный доля_компания окончательный_решение быть_направить потенциальный_покупатель директор_департамент корпоративный_управление _ министр_экономический_развитие россия__ что_правительство планировать_провести текущий_год предварительный_оценка процент_акция процент_акция процент_акция миллиард_доллар быть_дать рыночный_цена приватизация_госпакет подать_заявка ценный_бумага ценный_бумага В_настоящее_время российский_федерация В_собственность республика_башкортостан не_планировать_продавать пакет_акция решение_суд обнаружить_нарушение судебный_решение быть_афк план_приватизация федеральный_имущество +1030 |text российский подразделение пивоваренный концерн anheuser busch inbev производить пиво десятка различный бренд stella artois сибирский корона объявить остановка завод новочебоксарск . сообщаться официальный компания . как отмечать интерфакс неполный год пивоваренный гигант закрыть производство россия год прекратить работать завод курск . В сан инбеть называться дочерний предприятие anheuser busch inbev пояснить что вынудить закрыть завод ужесточение регулирование оборот пиво рост налоговый нагрузка . интерфакс компания просить власть чувашия субсидировать производство регион результат переговоры ничто не_сообщаться . продавать производственный площадка сан инбеть не_планировать компания не_исключать что будущее возобновить производство чувашия . сайт сан инбеть что завод новочебоксарск стать россия перейти полностью импортный оборудование . компания называть завод наиболее конкурентоспособный предприятие регион . В новочебоксарск сан инбеть разливать stella artois staropramen brahma lowenbrau сибирский корона . В год продажа сан инбеть снизиться процент первое квартал процент . сравнение heineken квартальный спад не_превысить процент carlsberg концерн входить балтика отгрузка вырасти процент поправка изменение складской запас сокращение составить процент . |ngramms российский_подразделение десятка_различный пресс_релиз как_отмечать год_прекратить дочерний_предприятие что_вынудить закрыть_завод налоговый_нагрузка компания_просить результат_переговоры ничто_не_сообщаться производственный_площадка что_в_будущее год_продажа концерн_входить +1031 |text газпром открыть офис столица катар доха . сообщаться газовый компания . В официальный открытие офис представитель орган власть катар министр энергетика промышленность ас сад . россия представлять председатель совет директор газпром заместитель министр энергетика чиновник . ас сад заявить что катар быть стремиться совместный инвестиция российский газовый монополия . газпром активно сотрудничать катар год когда российский компания начало закупать страна сжидить газ . газовый монополия предоставлять катарский компания аренда суд морской транспортировка продукция . договор открытие представительство газпром катар быть подписать год . В год россия объявить готовность совместно катар осваивать газовый месторождение ямал . год министерство энергетика катар подтверждать заинтересованность арабский государство поучаствовать проект добыча газа ямал окончательный решение не_принять . катар занимать третье место мир запас природный газа россия иран являться крупный экспортёр сжидить природный газа . доказать запас страна составлять триллион кубометр . ежегодный импорт катарский сжидить природный газа оцениваться миллион тонна . катар как россия входить форум страна экспортёр газа называть газовый опека председатель являться представитель рф бохановский . |ngramms пресс_релиз открытие_офис орган_власть министр_энергетика министр_энергетика россия_представлять председатель_совет_директор _ _ катар_быть совместный_инвестиция газовый_монополия газовый_монополия российский_компания быть_подписать газовый_месторождение добыча_газа окончательный_решение третье_место природный_газа природный_газа природный_газа являться_крупный доказать_запас страна_составлять триллион_кубометр миллион_тонна рф_ +1032 |text ряд комплектовать новый российский лайнер sukhoi superjet мочь начать собирать китай . номер писать газета ведомость ссылка неназванный источник . издание соглашение сотрудничество китайский партнёр мочь быть подписать ход авиасалон открываться подмосковный жуковский . как указывать собеседник газета переговоры проходить сложно . какой запчасть ssj мочь производиться китай неизвестно . китайский завод производиться запчасть европейский концерн airbus . как заявить ответственный секретарь российско китайский центр сотрудничество вопрос производство запчасть ssj китай мочь быть решить условие что кнр закупить крупный партия российский лайнер сотня . как заявить газета неназванный гражданский самолёт сухой гсс производитель superjet статус партнёр проект претендовать китайский компания индийский . переговоры потенциальный партнёр ssj индия продвинуться сильно . В сообщаться что белоруссия обсуждать российский стороной возможность размещение производство запчасть российский гражданский военный самолёт sukhoi superjet . ssj являться самолёт разработать россия советский союз . начать поставляться заказчик весна год . К гсс иметься заказ лайнер . |ngramms российский_лайнер российский_лайнер sukhoi_superjet sukhoi_superjet мочь_начать писать_газета китайский_партнёр мочь_быть мочь_быть подписать_в_ход как_указывать собеседник_газета китайский_завод концерн_airbus как_заявить как_заявить торгово_экономический _ топ_менеджер гражданский_самолёт_сухой производитель_superjet статус_партнёр китайский_компания потенциальный_партнёр советский_союз гсс_иметься +1033 |text глава минкомсвязи предложить поднять тариф услуга сотовый россия мнение низкий призвать оператор воспользоваться запуск сеть поколение . министр как сообщать интерфакс заявить заседание комиссия телекоммуникация информтехнология рсппа . идея открыто оператор большой тройка что запуск очередной новый сеть поколение сопровождаться как странно повышение тариф . становиться быстрый стоить дорогой выразить мнение министр . запуск сеть G тариф остаться прежний уровень посетовать . мочь быть смочь отыграть что целое нет . А результат взаимный конкуренция уйти плинтус добавить что показатель средний выручка российский оператор расчёт абонент arpu низкий . |ngramms глава_минкомсвязи __предложить запуск_сеть запуск_сеть как_сообщать большой_тройка что_запуск новый_сеть повышение_тариф выразить_мнение прежний_уровень мочь_быть что_в_целое выручка_российский +1034 |text режиссёр заявить рамка петербургский международный экономический форум пмэф что открытие сеть общепит есть как дом ! перенести . сообщать интерфакс . срок немножко сдвинуться думать что год . серьёзный механизм нельзя легкомысленно взять кредит начать осуществлять не_иметь серьёзный перспектива место земля интерес губерния . добавить что финансирование осуществление проект найти частное деньга кредит . имя не_пользоваться что нет смысл взять деньга начать щёлкать секундомер отдача нет уточнить режиссёр . окончательный вариант концепция сеть быстрый питание есть как дом ! быть представить конец осень год . брат кончаловский обратиться президент россия план создание сеть общепит есть дом ! поздний есть как дом ! год . режиссёр планировать открыть пилотный регион общепит фабрика кухня . как заявлять кончаловский средний чек кафе быть большой mcdonald . запуск проект потребовать инвестиция размер миллион рубль окупить затрата режиссёр считать возможный год . кончаловский обещать что миллион рубль проект вложить инвестор . окупить затрата создатель есть как дом ! планировать год . |ngramms __заявить международный_экономический_форум открытие_сеть есть_как есть_как есть_как есть_как взять_кредит не_иметь_серьёзный что_финансирование нет_смысл окончательный_вариант быстрый_питание брат_ президент_россия__ есть_дом как_заявлять запуск_проект инвестиция_в_размер миллион_рубль миллион_рубль +1035 |text российский концерн газпром сосредоточить очередь бизнес запад ущерб отношение быстрорастущий азиатский рынок нужно разделить . заявить владелец русало дерипаск интервью газета financial times . как пояснить дерипаск часть газпром мочь сфокусироваться работа традиционный западный рынок вести бизнес дальний восток восточный сибирь отчаянно нуждающийся инвестиция . бизнесмен раскритиковать концерн повышение цена газ внутри страна цель выравнивание экспортный . владелец русало выразить сожаление что газпром присущий рентоориентировать поведение . подобный действие компания подразумевать что получать выгода счёт производство продажа товар услуга путём манипулирование законодательный экономический условие . В газпром называть приоритетный рынок европа . прошлое год еврокомиссия открыть расследование отношение российский компания заподозрить нарушение антимонопольный законодательство ес . В очередь газпром назвать приоритетный концерн восточный газовый программа активизировать переговоры поставка топливо китай . В газпром китайский государственный нефтегазовый корпорация cnpc подтвердить намерение конец текущий год подписать контракт поставка российский газа китай . В сторона обсудить сотрудничество область подземный хранение газа китай организация поставка сжидить природный газа дальний восток . |ngramms российский_концерн _дерипаск как_пояснить вести_бизнес дальний_восток дальний_восток восточный_сибирь цена_на_газ подобный_действие рынок_европа прошлое_год российский_компания антимонопольный_законодательство В_свой_очередь газовый_программа поставка_топливо нефтегазовый_корпорация подтвердить_намерение текущий_год контракт_на_поставка российский_газа газа_в_китай природный_газа +1036 |text московский туристический компания лайм трэвести официально приостановить деятельность . известие рассказать генеральный директор турфирма . слово компания состояние оплатить туроператор сто оформить путёвка сумма задолженность достигать миллион рубль . В туристический отрасль наступить сильный кризис спрос упасть нуль . обычно деньга поступать новый клиент оплачивать текущий заявка . рассчитывать что быть рост продажа новый средство покрой заявка пояснить . клиент турфирма предлагать повторно оплатить стоимость пакет туроператор работать компания отказаться поездка обратиться суд . проверить бухгалтерия основание что объявить банкрот . кризисный управлять быть оценить имущество принадлежащий вернуть деньга насколько заявить гендиректор . руководитель федеральный агентство туризм ростуризм заявить что ведомство мочь повлиять ситуация лайм трэвести как деятельность турфирма не_регламентировать законодательство . вести реестр туроператор агентство некий магазин подконтрольный . быть изменение законодательство быть решение нести ответственность турист . В месяц полтора десяток туристический компания столкнуться финансовый трудность . В приостановка деятельность объявить туроператор нева роза ветер мир экспо тур атлас милан тур турфирма идеал тур лабиринт сант группа компания интаэр старый . |ngramms туристический_компания туристический_компания генеральный_директор _ миллион_рубль новый_клиент рост_продажа пояснить_ стоимость_пакет обратиться_в_суд вернуть_деньга заявить_гендиректор пресс_служба федеральный_агентство __заявить что_ведомство реестр_туроператор быть_принять_решение финансовый_трудность деятельность_объявить группа_компания _старый +1037 |text средний зарплата работник нефтегазовый отрасль нанять россия итог прошлое год составить тысяча рубль месяц тысяча доллар год . сообщаться исследование провести рекрутинговый компания hays . иностранец работать российский нефтегазовый корпорация получить год большой тысяча доллар . высокий зарплата нефтяник получать австралия . В год среднестатистический работник австралийский нефтегазовый отрасль заработать тысяча доллар месяц . нанять внутри страна специалист заработать маленький тысяча доллар равно занять первое место доход отрасль . место занять норвежский нефтяник сколько зарабатывать информация нет . В исследование отмечаться что норвегия австралия испытывать некоторый дефицит квалифицировать рабочий сила нефтегазовый сфера результат компания страна готовый платить большой . австралия планировать увеличить объём экспорт сжидить газа что требовать дополнительный рабочий сила . В прошлое год рейтинг оплачивать работник нефтегазовый отрасль лидировать норвегия средний доход сотрудник тысяча доллар . сравнение средний зарплата добытчик нефть газа сша прошлое год составить тысяча доллар месяц . плохой результат показать судан где специалист добыча углеводород зарабатывать тысяча доллар год . В исследование отмечаться что фон международный санкция зарплата сотрудник отрасль упасть иран . показатель иностранный рабочий снизиться процент тысяча доллар нанять внутри страна процент тысяча доллар . несмотря финансовый кризис замедление темп рост мировой экономика зарплата работник нефтегазовый сфера год вырасти процент . средний зарплата отрасль составить тысяча доллар . В год показатель вырасти процент . мировой нефтегазовый отрасль работать миллион человек . итог прошлое год добыча нефть мир вырасти процент составить миллион баррель . В международный энергетический агентство мэа ожидать что текущий год показатель увеличиться процент . |ngramms средний_зарплата средний_зарплата средний_зарплата нефтегазовый_отрасль нефтегазовый_отрасль нефтегазовый_отрасль нефтегазовый_отрасль прошлое_год прошлое_год тысяча_рубль тысяча_доллар тысяча_доллар тысяча_доллар тысяча_доллар тысяча_доллар тысяча_доллар тысяча_доллар тысяча_доллар нефтегазовый_корпорация информация_нет В_исследование В_исследование рабочий_сила рабочий_сила нефтегазовый_сфера платить_большой планировать_увеличить экспорт_сжидить что_требовать В_прошлое_год доход_сотрудник плохой_результат добыча_углеводород что_на_фон международный_санкция финансовый_кризис темп_рост мировой_экономика работник_нефтегазовый год_показатель миллион_человек добыча_нефть миллион_баррель энергетический_агентство текущий_год +1038 |text отказ варшава продлить договор транзит газа территория польша ставить угроза поставка топливо европейский страна . заявить интервью заместитель председатель правление газпром слышать что польша не_намерить продлевать транзитный контракт . ставить угроза поставка европейский страна включая германия . заверить что газпром нет план снижать прекращать транзит топливо польша . министр финансы развитие польша моравецкий комментировать слово назвать газпром ненадёжный партнёр . мнение заявление демонстрировать готовность российский концерн прекращение поставка газа европа . показывать какой верный быть решение бывший президент польша качиньский начало строительство терминал сжидить природный газа свиноуйсец открыть месяц добавить . российский газ поставляться польша основание долгосрочный контракт действующий год . позволять варшава приобретать газпром миллиард кубометр топливо ежегодно . В конец глава польский энергетический компания pgnig заявить блокировка решение еврокомиссия расширение доступ газпром трубопровод opal . официальный представитель мид польша сообщить что правительство страна подать жалоба европейский суд соответствующий решение ек . варшава считать что приводить концентрация источник поставка что противоречить принцип диверсификация грозить нарушение прекращение поставка газа . постпред россия ес чижовый назвать действие польша политизировать заявить что не_быть иметь последствие . |ngramms транзит_газа европейский_страна европейский_страна заместитель_председатель_правление _ что_польша _заверить транзит_топливо вице_премьер министр_финансы слово_ российский_концерн бывший_президент строительство_терминал сжидить_природный российский_газ долгосрочный_контракт миллиард_кубометр топливо_ежегодно В_конец энергетический_компания __заявить решение_еврокомиссия расширение_доступ официальный_представитель __сообщить что_правительство подать_жалоба соответствующий_решение поставка_газа не_быть_иметь +1039 |text президент россия рамка петербургский международный экономический форум пмэф встретиться главый правление hyperloop пишевар пообещать поддержать проект . заявить глава государство песок передавать новость . песок что пишевар встреча рассказать проект план пилотный запуск . встреча нога президент поддержать проект песок . добавить что вложение государственный средство налоговый льгота не_идти поскольку частный инвестпроект . пмэф меморандум hyperloop подписать группа сумма зиявудин фонд предприниматель caspian vc являться акционер проект власть москва . документ предусматривать создание концепция транспортный маршрут использование скоростной вакуумный поезд . министр транспорт россия максим время пмэф что российский власть предлагать качество пилотный проект развитие коридор приморье . мочь уйти миллиард рубль отмечать . технология hyperloop интересоваться ржд . В настоящее время проект разработка внедрение технология вакуумный поезд заниматься частное компания hyperloop возглавлять бывший президент cisco роба ллойда hyperloop transportation technologies основать алборный . идея сверхзвуковой поезд быть предложить основатель компания spacex tesla motors илоно маск год . предполагаться что поезд разгоняться тысяча километр час условие высокоразреженный воздух . |ngramms президент_россия__ международный_экономический_форум поддержать_проект пресс_секретарь глава_государство _песок передавать_риа_новость государственный_средство налоговый_льгота являться_акционер власть_москва документ_предусматривать концепция_транспортный министр_транспорт максим_ российский_власть миллиард_рубль В_настоящее_время внедрение_технология частное_компания бывший_президент быть_предложить основатель_компания tesla_motors что_поезд тысяча_километр +1040 |text чистый прибыль газпром международный стандарт финансовый отчётность год вырасти процент миллиард рубль . сообщаться сайт компания . выручка компания увеличиться незначительно процент триллион рубль . рост произойти счёт увеличение продажа сырой нефть газовый конденсат . выручка газпром продажа газа год уменьшиться процент составить триллион рубль . гораздо сильный процент миллиард рухнуть выручка продажа газа страна бывший ссср . резкий падение компания объяснять как сокращение физический объём продажа энергоноситель снижение средний рублёвый цена . В отчётность сообщаться что операционный расход компания год вырасти процент составить триллион рубль . В газпром объяснять увеличение затрата закупка газа связанный сделка обмен актив газпром wintershall . чистый долг газпром год составить триллион рубль . |ngramms чистый_прибыль международный_стандарт финансовый_отчётность миллиард_рубль пресс_релиз выручка_компания триллион_рубль триллион_рубль триллион_рубль триллион_рубль увеличение_продажа процент_и_составить выручка_от_продажа бывший_ссср резкий_падение объём_продажа В_отчётность операционный_расход закупка_газа обмен_актив чистый_долг год_составить +1041 |text корпоративный университет сбербанк завоевать место номинация хороший корпоративный университет получить ежегодный премия глобальный совет корпоративный университет globalccu достижение корпоративный обучение развитие . банка поступить лента . . уровень призёр быть высокий большой ответственность быть представитель российский бизнес престижный международный награда ректор корпоративный университет сбербанк рамка вручение премия париж . определение победитель премия жюри оценивать масштаб уровень программа развитие менеджер сбербанк наличие система управление качество образование активный внедрение передовой образовательный технология . globalccu основный глобальный ассоциация корпоративный университет создать год объединять корпоративный университет ведущий компания страна мир . |ngramms корпоративный_университет корпоративный_университет корпоративный_университет корпоративный_университет корпоративный_университет корпоративный_университет пресс_релиз большой_ответственность российский_бизнес международный_награда _ вручение_премия победитель_премия жюри_оценивать программа_развитие система_управление ведущий_компания страна_мир +1042 |text В арбитражный суд москва поступить заявление российский лизинговый компания трансфин М требовать признать банкрот бизнесмен являться зять кинорежиссёр . информация заявление содержаться картотека арбитражный . заявление поступить арбитраж . как сообщать новость трансфин М подать заявление банкротство бизнес партнёр машиностроительный концерн тракторный завод болотина . К рассмотрение заявление не_принять . сумма задолженность болотина компания заявитель раскрытый . В год стать что бак вместо болотина стать генеральный директор концерн тракторный завод . предприятие компания расположить десять субъект россия рубеж . лизинговый компания трансфин М учредить год нпф благосостояние . итог год совокупный размер лизинговый портфель превысить миллиард рубль . В парка компания тысяча грузовой вагон пассажирский . сообщение kp.ru год суд отказаться признать банкрот актриса . инстанция отклонить соответствующий требование русский ипотечный банка артистка не_погасить кредит . |ngramms арбитражный_суд_москва лизинговый_компания лизинговый_компания признать_банкрот признать_банкрот бизнесмен__ _ сообщать_риа_новость подать_заявление партнёр_ рассмотрение_заявление сумма_задолженность генеральный_директор год_совокупный миллиард_рубль парка_компания грузовой_вагон суд_отказаться актриса__ соответствующий_требование +1043 |text состояние основатель microsoft достигнуть рекордный уровень миллиард доллар что равняться примерно процент ввп сша сообщать bloomberg . занимать строчка рейтинг миллиардер bloomberg billionaires основатель сеть zara ортег оказаться бедный миллиард доллар капитал оцениваться миллиард доллар . строчка расположиться американский инвестор сколотить миллиард доллар . В июльский рейтинг bloomberg состояние оцениваться миллиард доллар . занимать строчка богатый человек планета версия журнал forbes . издание год оценивать материальный возможность скромный миллиард доллар . В год консалтинговый компания wealth X назвать супруг богатый пара мир оценить состояние семья миллиард доллар . В предложить миллиардер передать половина состояние благотворительность . |ngramms основатель_microsoft _ _ рекордный_уровень миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар сообщать_bloomberg основатель_сеть американский_инвестор рейтинг_bloomberg состояние_ богатый_человек журнал_forbes супруг_ оценить_состояние _предложить +1044 |text арбитражный суд москва обеспечительный мера иск роснефть заблокировать выдача лукойл лицензия пользование недра участок красноярский край сообщаться материал суд . роснефть подать суд роснедра оспаривать законность выдача лукойл соответствующий лицензия . первое заседание назначить . прогнозный ресурс сухопутный часть участок площадь составлять квадратный километр категория оцениваться миллион тонна нефть миллиард кубометр газа оценка год . лукойл выиграть конкурс получение лицензия предложить нея цена превышать стартовый миллиард рубль . роснефть считать итог конкурс необъективный . как сообщать коммерсантъ компания направить жалоба минприрода указать что предложение освоение участок быть хороший . В роснефть предлагать добыть участок миллион тонна нефть год коэффициент извлечение лукойл миллион тонна год кина . доход государство проект госкомпания оценить триллион рубль миллиард лукойл . отмечаться что борьба участок относительно небольшой запас углеводород требовать значительный инвестиция инфраструктура разворачиваться фон попытка лукойл получить доступ шельф право есть газпром роснефть . запас морской часть участок существенно большой сухопутный разделение ресурс нефть оцениваться миллион тонна газа миллиард кубометр лукойл быть предпринимать попытка получить лицензия разработка морской блок пояснять издание источник . заняться разный компания повлечь дополнительный трата сделать разработка сухопутный часть нерентабельный . вопрос доступ лукойл шельф быть рассматриваться правительство россия . |ngramms арбитражный_суд_москва мера_по_иск восточно_таймырский восточно_таймырский восточно_таймырский восточно_таймырский красноярский_край материал_суд соответствующий_лицензия квадратный_километр миллион_тонна_нефть миллион_тонна_нефть миллиард_кубометр_газа выиграть_конкурс миллиард_рубль итог_конкурс компания_направить освоение_участок миллион_тонна миллион_тонна триллион_рубль запас_углеводород получить_доступ морской_часть существенно_большой миллиард_кубометр лицензия_на_разработка пояснять_издание быть_рассматриваться +1045 |text индийский низкобюджетный авиаперевозчик goair решить вакансия бортпроводник женщина . писать guardian . как считать авиакомпания образ можно быть сэкономить миллион рупия тысяча доллар год . женщина среднее весить килограмм маленький мужчина перевозчик смочь сократить расход топливо . состав экипаж goair работать мужчина стюард процент бортпроводник . не_быть увольнять дальнейший мужчина работа не_быть . флот goair состоять самолёт . К год компания планировать увеличить пилот бортпроводник goair возрастить тысяча человек . |ngramms как_считать можно_быть тысяча_доллар сократить_расход компания_планировать тысяча_человек +1046 |text выручка российский группа softline финансовый год завершиться год вырасти процент сравнение предыдущий год миллион доллар . сообщить генеральный директор компания белоус . как пояснить белоус лента . головной компания softline формировать примерно процент выручка остальной приходиться дочерний компания . реализация решение microsoft приносить основный часть оборот головной компания softline составить примерно процент отчётный год . второе место решение безопасность приносить процент оборот . В соответствие тенденция рынок быстрый рост выручка давать продажа антивирусный решение . белоус активный увеличение выручка решение dlp защита утечка дать аудит быстрорастущий направление стать продажа аппаратный средство . итог финансовый год выручка бизнес составить семь миллион доллар что вдвое большой год . двухкратный рост выручка россия показать направление облачный услуга миллион доллар итог финансовый год что процент выше год . В выручка группа компания россия приходиться процент страна снг давать процент процент приносить страна дальний зарубежье . компания softline российский поставщик решение область программный аппаратный обеспечение сервисный услуга облачный продукт . |ngramms выручка_российский финансовый_год финансовый_год финансовый_год предыдущий_год миллион_доллар миллион_доллар миллион_доллар пресс_конференция генеральный_директор_компания как_пояснить головной_компания головной_компания процент_выручка дочерний_компания основный_часть составить_примерно отчётный_год процент_оборот тенденция_рынок рост_выручка рост_выручка направление_стать что_вдвое процент_выше группа_компания страна_снг дальний_зарубежье российский_поставщик +1047 |text совладелец холдинг мечело предложить закрыть россия угольный шахта опасный содержание метан угольный пыль . вопрос безопасность шахта обсуждаться совещание аркадия писать ведомость ссылка источник . замминистра энергетика яновский сообщить собраться что российский угольный шахта восемь не_представлять опасность шахта признать сверхопасный критически опасный . добываться миллион тонна уголь год . участник рассказать издание что встреча прислать владелец крупный угольный предприятие страна суэк северсталь мечело . что большинство присутствовать озвучить идея шутка . затрата закрытие критически опасный шахта минэнерго оценивать миллиард рубль . быть соответствующий решение компания прийтись закрывать шахта счёт отмечать газета . повод совещание стать происшествие принадлежащий северсталь шахта северный воркута . глубина метр произойти выброс метан последовать взрыв обрушение порода . завал возникнуть пожар продолжаться пора . В авария земля находиться человек . поверхность удаться поднять горняк . произойти повторный взрыв что поисковый спасательный работа быть приостановить . шахта зафиксировать взрыв . В результат чп погибнуть человек . факт авария быть возбудить уголовный . В настоящее время решение затопить шахта погасить пожар . тело горняк быть поднять поверхность . работа затопление занять примерно . |ngramms горно_металлургический __предложить угольный_шахта угольный_шахта вопрос_безопасность вице_премьер аркадия_ энергетика_ миллион_тонна рассказать_издание что_на_встреча что_большинство миллиард_рубль соответствующий_решение компания_прийтись отмечать_газета быть_приостановить В_результат быть_возбудить В_настоящее_время +1048 |text московский аэропорт домодедово заключить контракт строительство сегмент пассажирский терминал аэропорт . лента . сообщить аэропорт . В новый сегмент аэропорт быть обслуживаться пассажир международный рейс . дополнительный площадь появиться восточный часть аэровокзал . работа планироваться завершить год . В результат территория аэровокзальный комплекс увеличиться тысяча квадратный метр . С учёт реализация действующий проект расширение первое сегмент терминал составить тысяча квадратный метр . увеличить терминал значительно расширить возможность аэропорт . В новый сегмент пассажирский терминал появиться стойка регистрация киоск саморегистрация . быть оборудовать дополнительный местами стоянка самолёт пассажирский суперлайнер тип airbus . московский аэропорт домодедово являться лидер крупный аэропорт европа демонстрировать высокий темп рост пассажиропоток . европейский отделение международный ассоциация аэропорт aci europe прирост составить процент . |ngramms московский_аэропорт московский_аэропорт пассажирский_терминал пассажирский_терминал пресс_служба В_новый В_новый международный_рейс восточный_часть планироваться_завершить В_результат тысяча_квадратный_метр тысяча_квадратный_метр С_учёт являться_лидер темп_рост международный_ассоциация прирост_составить +1049 |text аэрофлот снижать тариф услуга интернет борт переводить повременный формат . перевозчик поступить редакция лента . . шаг быть предпринять пожелание пассажир охотно пользоваться услуга интернет борт заинтересовать быть удобный доступный сообщение . доступ интернет оснастить широкофюзеляжный воздушный судно аэрофлот . В настоящее время устанавливаться новое программный обеспечение облегчать введение новый тариф . В результат компания появиться возможность ввести повременный тариф сделать гибкий понятный . обновить программный обеспечение позволять создавать постоянный учётный запись что быть удобно пассажир часто пользоваться услуга . решение двукратное снижение стоимость услуга . мегабайт стоить доллар объесть трафик обойтись пассажир доллар сумма можно быть пользоваться интернет минута . перевозчик быть ввести тариф промый первоначально быть действовать отдельный направление . В минута мегабайт трафик быть предоставляться пассажир бесплатно . завершение программа обновление программный обеспечение широкофюзеляжный флот компания тариф стать одинаковый . фгуп космический гпкс сообщить план обеспечить доступ интернет российский самолёт помощь спутник . пилотный проект оснащение судно интернет планироваться запустить год . В стать что аэрофлот занять место оснащённость дальнемагистральный рейс рейтинг составить американский сервис routehappy . аэрофлот крупный наиболее динамично развивающийся авиационный холдинг россия . |ngramms пресс_релиз поступить_в_редакция пользоваться_услуга пользоваться_услуга wi_fi wi_fi воздушный_судно В_настоящее_время программный_обеспечение программный_обеспечение программный_обеспечение введение_новый В_результат позволять_создавать снижение_стоимость можно_быть пользоваться_интернет быть_ввести быть_действовать флот_компания российский_самолёт американский_сервис авиационный_холдинг +1050 |text usm holdings бизнесмен партнёр вложить десяток миллион доллар популярный мобильный сервис заказ такси uber . сообщать рбк ссылка источник близкий инвестхолдинг подтвердить собеседник uber . usm holdings инвестировать американский стартап летом год . wall street journal прошлое год uber привлечь миллиард доллар компания оцениваться миллиард доллар . К сумма инвестиция компания превышать миллиард доллар . летний раунд инвестиция позволить uber перешагнуть оценка миллиард доллар год быстрый американский социальный сеть facebook . раунд инвестиция uber bloomberg состояться год . компания привлечь миллиард доллар tiger global management T . rowe price инвестор оценить бизнес компания миллиард доллар . usm раунд не_принимать сообщить агентство источник . образ инвестиция uber лето прошлое год подорожать процент . В российский инвестор uber венчурный фонд caspian vc владелец группа сумма зиявудин . представитель caspian vc не_раскрывать когда фонд инвестировать сервис такси не_называть объесть инвестиция . средний размер транш caspian vc составлять миллион доллар сообщать управлять директор фонд шоры . сервис uber возглавлять топ дорогой стартап мир . компания uber основать год . мобильный приложение позволять искать бронировать оплачивать такси выступать посредник водитель частник пассажир . В год компания привлечь инвестиция размер миллиард доллар стоимость оценить миллиард доллар . uber работать город мир включая российский . |ngramms usm_holdings usm_holdings миллион_доллар миллион_доллар популярный_мобильный заказ_такси прошлое_год прошлое_год миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар социальный_сеть компания_привлечь компания_привлечь бизнес_компания сообщить_агентство российский_инвестор владелец_группа объесть_инвестиция управлять_директор компания_uber мобильный_приложение инвестиция_в_размер город_мир включая_российский +1051 |text оператор мобильный подтвердить готовность отменить национальный роуминг . направить фас россия ходатайство продление срок выполнение предписание . антимонопольный служба проанализировать мотивированный обращение компания объявить новый дата отмена плата звонок регион год . исполнение предупреждение позволить сформировать единый телекоммуникационный пространство соблюсти право абонент территория российский федерация ведомство . В сообщение указать что компания большой четвёрка вымпелком мтс мегафон мобайл ежемесячно предоставлять отчёт ход исполнение предупреждение фас . В глава фас сообщить что антимонопольный служба намерить добиться отмена национальный роуминг россия . юридически закон убрать понятие роуминг оставить качество технический термин . равно добиться кто отменить роуминг получить аплодисменты думать руководство страна заметить подчеркнуть . спустя фас направить предупреждение оператор указываться признак нарушение закон защита конкуренция . нарушение мнение антимонопльщиковы выразиться установление поддержание разный тариф услуга сотовый домашний регион поездка россия . фас пришлый вывод что цена услуга ситуация отличаться потребовать оператор устранить нарушение законодательство . служба проинформировать возбуждение отношение оператор . как пояснить замглавы фас голомолзин оператор обязать быть вынести предложение национальный роуминг что сделать не_быть . фас решение вопрос национальный роуминг возбудить отношение большой четвёрка чиновник . |ngramms фас_россия антимонопольный_служба антимонопольный_служба новый_дата российский_федерация пресс_релиз В_сообщение что_компания глава_фас __сообщить намерить_добиться руководство_страна подчеркнуть_ защита_конкуренция домашний_регион нарушение_законодательство как_пояснить фас_ быть_вынести +1052 |text компания carte blanche являться правообладатель марка плюшевый медвежонок teddy подать иск башкирский предприниматель продажа мишка принадлежащий бренд . информация опубликовать картотека арбитражный суд башкирия . иск адресовать разный индивидуальный предприниматель подать период . сумма требование указанный большинство иск тысяча рубль . арбитражный суд московский область текущий год удовлетворить заявление carte blanche взыскание ашан тысяча рубль компенсация нарушение исключительный право изображение медвежонок tatty teddy . иск быть подать что год магазин торговый сеть ашан представитель истец приобрести контрафактный брелок изображение мишка tatty teddy . carte blanche обратиться суд . первоначально сумма требование британский компания составлять тысяча рубль . |ngramms арбитражный_суд арбитражный_суд сумма_требование сумма_требование тысяча_рубль тысяча_рубль тысяча_рубль московский_область текущий_год удовлетворить_заявление быть_подать торговый_сеть представитель_истец обратиться_в_суд компания_составлять +1053 |text польский государственный нефтегазовый компания pgnig потребовать еврокомиссия оштрафовать газпром нарушение антимонопольный законодательство . заявить глава компания посвятить инициирование антимонопольный расследование российский газовый холдинг сообщаться сайт польский компания . мнение pgnig газпром многий год действовать неправомерно значительно проявляться долгосрочный перспектива . довести серьёзный нарушение рынок газа центральный европа . касаться как конкуренция финансовый потеря потребитель заявить . В pgnig считать что газпром ввести изменение процедура брать платить снизить долгосрочный контракт максимальный уровень обязательный получение газа клиент центральный восточный европа . польский компания предложить оштрафовать газпром наложить российский компания дополнительный обязательство . В конец год газпром направить еврокомиссия предложение урегулирование антимонопольный инициировать год . расследование ек как напоминать новость мочь идти направление . предполагать штраф согласование компания обязательство брать снять опасение еврокомиссия конкуренция страна союз . В настоящее время газпром ожидать решение стокгольмский арбитражный суд иск pgnig цена российский газ быть год сообщать rambler service . слушание пройти начало год . арбитражный трибунал предложить провести второе слушание . зимой год pgnig подать стокгольмский арбитраж иск газпром ooo газпром экспорт оспаривать цена российский газ . польский компания отмечать что иск подать рамка арбитражный процесс начать год . иск оспаривать ценовый условие долгосрочный контракт подписать год . |ngramms польский_государственный нефтегазовый_компания антимонопольный_законодательство глава_компания _ пресс_конференция российский_газовый сообщаться_на_сайт польский_компания польский_компания многий_год долгосрочный_перспектива центральный_европа заявить_ долгосрочный_контракт долгосрочный_контракт восточный_европа российский_компания В_конец как_напоминать мочь_идти В_настоящее_время решение_стокгольмский арбитражный_суд российский_газ российский_газ сообщать_rambler_news_service предложить_провести стокгольмский_арбитраж газпром_экспорт компания_отмечать иск_подать ценовый_условие +1054 |text роснефть стыдно обращаться просьба выделение средство фонд национальный благосостояние . заявить президент компания сечин передавать . слово сечин идти заём рыночный условие интерес дать тема явно преувеличить . получить возможность инвестпрограмма быть большой мультипликативный эффект быть большой . нормальный работа . не_получить быть справляться собственный сила . вещий быть откорректировать целое никакой драма подчеркнуть . сечин сослаться что поддержка фнб запросить ржд новатэк крупный компания . слово крупный банка частное проект работать правительство поиск дополнительный финансирование . министр экономический развитие россия заявить что заявка роснефть выделение средство фнб не_соответствовать реальность . слово деньга мочь даваться конкретный инфраструктурный проект . проект заявка роснефть не_показать . О невозможность выделение компания запросить средство полный объём министр финансы силуановый . слово заявить сумма пожелание компания . стать что министерство энергетика одобрить заявка роснефть получение средство фонд национальный благосостояние . объесть заявка равный триллион рубль что составлять треть средство фонд . |ngramms фонд_национальный фонд_национальный президент_компания _сечин рыночный_условие дать_тема вещий_быть крупный_компания крупный_банка дополнительный_финансирование министр_экономический_развитие россия___заявить что_заявка деньга_мочь министр_финансы заявить_сумма министерство_энергетика одобрить_заявка триллион_рубль средство_фонд +1055 |text дебошир рейс аэрофлот москва оказаться директор проектный группа евразийский фонд стабилизация развитие ефср . сообщать новость ссылка источник близкий авиакомпания . неприятный инцидент произойти борт воздушный судный выполнять рейс su маршрут москва . пассажир бизнес класс ударить бортпроводница подраться пассажир . хулиган связать передать американский полиция прилёт . дебошир оказаться директор проектный группа евразийский фонд стабилизация развитие . ход полёт начать вести неадекватно . стать навязчивый приставать претензия пассажир оскорблять член экипаж рассказать источник . нарушитель сделать устный письменный предупреждение . требование экипаж проигнорировать продолжать вести неадекватно оскорблять окружающий пассажир . проходить салон не_устоять нога упасть пассажирка ребёнок спровоцировать драка пассажир . В настоящее время рассматриваться вопрос привлечение уголовный ответственность статья ук рф хулиганство добавить источник . предположительно сын известный российский нейрохирург внук герой социалистический труд крупный специалист мясной скотоводство государственный деятель казахский сср . В ефср пояснить что информация инцидент не_располагать как настоящее время находиться служебный командировка исполнять служебный обязанность . |ngramms нью_йорк нью_йорк нью_йорк директор_проектный директор_проектный _ _ _ _ сообщать_риа_новость инцидент_произойти воздушный_судный выполнять_рейс американский_полиция член_экипаж рассказать_источник В_настоящее_время уголовный_ответственность ук_рф добавить_источник известный_российский государственный_деятель пресс_служба пресс_служба +1056 |text управление фас московский область намерить обратиться суд аннулировать договор покупка аренда недвижимость компания атака дочерний структура французский ашан . информация содержаться сообщение ведомство . идти объект территория мытищинский одинцовский район подмосковье . результат проверка компания атака управление фас московский область установить что заключить договор купля продажа аренда объект недвижимость нарушение требование антимонопольный законодательство . В ведомство пояснить что закон торговля доля рынок регион превышать процент мочь покупать арендовать дополнительный торговый площадь . атака появиться российский рынок год . рф работать супермаркет . ашан крупный мир ритейлер основать год франция . В год торговый сеть ашан насчитывать тысяча магазин открытый россия . консолидированный товарооборот группа год достигнуть миллиард евро . |ngramms управление_фас управление_фас московский_область московский_область обратиться_в_суд дочерний_структура информация_содержаться заключить_договор антимонопольный_законодательство В_ведомство торговля_ торговый_площадь год_в_франция торговый_сеть тысяча_магазин год_достигнуть миллиард_евро +1057 |text авиакомпания аэрофлот ввести плоский тариф полёт калининград симферополь . прислать редакция лента . . С билет москва калининград обратно обойтись тысяча рубль полёт сторона быть стоить тысяча . билет москва столица крым быть стоить семь тысяча сторона тысяча рубль . С тариф калининград крым вернуться значение установленный год тысяча рубль тысяча рубль сторона соответственно . программа плоский тариф запустить соответствие политика национальный перевозчик проводить аэрофлот получить поддержка президент россия уточняться . В качество стратегический приоритет крупный российский авиакомпания провозглашать повышение мобильность население путём улучшение транспортный доступность регион страна . аэрофлот крупный наиболее динамично развивающийся авиационный холдинг россия . В год авиакомпания группа совокупность перевезти миллион пассажир . |ngramms пресс_релиз пресс_релиз тысяча_рубль тысяча_рубль тысяча_рубль тысяча_рубль быть_стоить быть_стоить семь_тысяча туда_обратно национальный_перевозчик президент_россия__ В_качество крупный_российский_авиакомпания регион_страна авиационный_холдинг авиакомпания_группа миллион_пассажир +1058 |text управление роспотребнадзор москва итог плановый проверка ресторан быстрый питание кинг выявить ряд нарушение . проверка контроль соблюдение требование санитарный законодательство законодательство область защита право потребитель быть провести второе квартал год сообщение ведомство . итог проверка работа ресторан москва быть приостановить . В целое юридический должностной лицо быть наложить штраф сумма миллион рубль . В служба что начало проверка представитель юридический лицо разъясняться требование законодательство . проверить ресторан быстрый питание быть выявить нарушение . В не_соблюдаться требование устройство помещение . проверять зафиксировать нарушение поточность техпроцесс отсутствие помещение разморозка продукция обработка поднос отсутствие холодильный камера хранение сырой готовый продукт ресторан . проверять констатировать неудовлетворительный гигиенический состояние производственный складской подсобный помещение грязь стен полка отсутствие влажный уборка . В ресторан не_соблюдаться требование устройство система вентиляция нарушаться требование прохождение медосмотр вакцинация . В ресторан нарушаться дезинфекционный режим условие правило хранение пищевой продукция совместный хранение сырой готовый пищевой продукт . продукция отсутствовать маркировка информация товар . специалист исследовать продукция соответствие требование технический регламент таможенный союз единый гигиенический требование товар подлежащее надзор контроль . В результат процент не_отвечать требование микробиологический показатель процент показатель идентификация . В процент смыв рука оборудование инвентарь обнаружить бактерия группа кишечный палочка . burger king corporation американский компания основать год штат флорида местный предприниматель эджертон . специализироваться прочий вид фастфуд . С год принадлежать бразильский инвестиционный фонд G capital . бренд владеть тысяча торговый страна мир процент находиться сша . |ngramms управление_роспотребнадзор быстрый_питание быстрый_питание защита_право быть_провести быть_приостановить В_целое быть_наложить миллион_рубль начало_проверка юридический_лицо требование_законодательство быть_выявить санитарно_технический таможенный_союз санитарно_эпидемиологический санитарно_эпидемиологический В_результат американский_компания предприниматель_ инвестиционный_фонд G_capital страна_мир находиться_в_сша +1059 |text федеральный антимонопольный служба фас россия начало расследование деятельность сотовый оператор мтс . заявить представитель ведомство передавать . пояснить что проверка начать заявление мобильный оператор мегафон поступить фас конец . жалоба быть связать что компания мтс отказать мегафон перенос номер член совет федерация . С год мегафон быть начать оказывать совет федерация услуга сотовый подать мтс заявка перенос номер не_быть удовлетворить . В мегафон назвать случиться акт недобросовестный конкуренция сторона мтс что поведение мочь нивелировать принцип услуга переносимость номер mnp mobile number portability . В мтс не_прокомментировать сообщение фас . В антимополен ведомство очередь не_уточнить как мочь расцениваться действие мтс какой ответственность оператор мочь понести . В конец мтс объяснить задержка передача мегафон номер совет федерация норма действующий законодательство . В договор мегафон совфедом быть заключить как закон обязательный условие являться заключение договор . официально услуга mnp называть отмена мобильный рабство доступный россия год . абонент мочь сменить мобильный компания сохранить старый номер нужно написать соответствующий заявление оператор . стоимость услуга составлять сто рубль . В прошлое год оператор разрешить отсрочить переход абонент новый сеть середина . |ngramms федеральный_антимонопольный_служба начало_расследование сотовый_оператор ведомство__ _пояснить мобильный_оператор что_компания совет_федерация совет_федерация совет_федерация начать_оказывать В_мтс оператор_мочь В_конец действующий_законодательство быть_заключить обязательный_условие заключение_договор услуга_mnp мочь_сменить старый_номер соответствующий_заявление стоимость_услуга прошлое_год переход_абонент новый_сеть +1060 |text google уволить инженер деймор оказаться центр громкий скандал . технический сотрудник компания корпоративный почта разослать письмо что существовать биологический причина гендерный неравенство технологический отрасль . сообщать . деймор подтвердить агентство факт увольнение подчеркнуть что руководство компания отношение решение увековечение гендерный стереотип . бывший инженер google сообщить что настоящее время изучать возможный вариант защита право . слово проинформировать ситуация национальный совет трудовой отношение сша nlrb обвинить высокий руководство попытка скрыть скандальный ситуация . официальный комментарий компания получить не_удаться . распоряжение агентство оказаться электронный письмо распространить персонал гендиректор компания сундар пичай . В немой что некоторый положение записка деймор не_соответствовать принятый фирма правило . В середина год стать что основатель крупный мир частное инвестфонд tpg capital уходить совет директор онлайн сервис заказ такси uber . решение миллиардер стать следствие заявление нецелесообразность включение женщина состав руководство компания . вступить дискуссия член совет директор хаффингтон . что правление компания есть женщина скорее немой появиться . миллиардер ответ заявить что руководство быть большой болтовня . принести извинение подчеркнуть что брать ответственность случиться . объяснять мотив отставка что не_хотеть слово стать препятствие усилие uber формирование корпоративный культура мочь гордиться . |ngramms оказаться_в_центр сотрудник_компания что_существовать подтвердить_агентство руководство_компания руководство_компания возможный_вариант интернетом_гигант официальный_комментарий электронный_письмо гендиректор_компания В_немой что_некоторый В_середина _ совет_директор заказ_такси стать_следствие совет_директор_ правление_компания принести_извинение что_не_хотеть +1061 |text компания гриндекс производитель препарат милдронат мельдонья сообщать что никакой образ не_связать инициатива российский предприниматель объявить намерение выпускать продукт использование бренд . поступить редакция лента . . В цель защита интеллектуальный собственность гриндекс намерить обращаться иск нарушитель право суд федеральный служба интеллектуальный собственность совет конкуренция остальной правозащитный орган россия международный регулировать инстанция . В сообщение отмечаться что товарный знак принадлежащий компания иметь международный регистрация россия снг страна европа государство мир . В товарный знак милдронат эксклюзивный принадлежать компания гриндекс латвия . В очередь мельдонья являться оригинальный продукт компания . сообщаться что российский предприниматель рекун решить наладить выпуск энергетический напиток батончик марка мельдонья милдронат . В роспатент начаться оформление соответствующий товарный знак . представитель предприниматель сообщить что ближний время рассчитывать окончательно определиться дизайн начать производство . предполагаться что новое продукт быть содержимый милдронат . рынок энергетический напиток россия показывать стабильный рост год . второе квартал год энергетика стать единственный сегмент рынок безалкогольный напиток продолжить растить семь процент целое продажа безалкогольный напиток упасть процент . В год теннисистка признаться что кровь быть обнаружить мельдонья . препарат запретить всемирный антидопинговый агентство wada . дальнейший тест выявить след вещество спортсмен . мельдонья входить состав различный фармацевтический препарат милдронат . гриндекс ведущий фармацевтический предприятие страна балтия . В состав концерн входить дочерний предприятие латвия эстония россия представительство агент страна . |ngramms что_никакой российский_предприниматель объявить_о_намерение пресс_релиз поступить_в_редакция В_цель федеральный_служба В_сообщение_отмечаться товарный_знак товарный_знак товарный_знак В_свой_очередь что_российский предприниматель_ энергетический_напиток энергетический_напиток предприниматель_сообщить что_новое быть_содержимый стать_единственный _ пресс_конференция быть_обнаружить входить_в_состав В_состав концерн_входить дочерний_предприятие +1062 |text совладелец северсталь мордашов bloomberg называть богатый россиянин удостоить большой количество государственный награда бизнесмен россия . сообщать рбк . В сложность награждать знак отличие благодеяние учредить год присуждаться благотворительный деятельность медаль орден заслуга отечество I степень медаль орден заслуга отечество ii степень орден невский орден почёт . награда заслуга отечество ii степень летний вручить год формулировка заслуга государство многолетний добросовестный труд . бизнесмен работать заместитель генеральный директор ао северсталь . мордашов стать единственный российский миллиардер награда . медаль орден президент лукойл генеральный директор сургутнефтегаз владелец реновый председатель совет директор магнитогорский металлургический комбинат рашникова основатель usm holdings партнёр скотать . анисомовый coalco дерипаск русало уральский компания трубный металлургический компания синара получить награда . как отмечать рбк чаща госнаграда вручаться бизнесмен актив металлургический нефтегазовый отрасль . награда обычно не_получать строитель бизнесмен заниматься ретейлом наукоемкий технология . близость президент россия не_влиять напрямую количество награда . владелец volga group отзываться как хороший знакомый нет награда глава роснефть сечин работать мэрия петербург орден . наличие госнаграда согласно закон позволять претендовать государственный поддержка . орден заслуга отечество I степень предполагать ежемесячный выплата размер процент соцпенсия год быть установить уровень рубль . предусмотреть выплата наградить орден заслуга отечество ii iii iv степень процент соцпенсия . орден медаль выплата не_предусмотреть . согласно постановление пленум верховный суд россия наличие госнаграда мочь служить смягчающий уголовный наказание обстоятельство . |ngramms богатый_россиянин государственный_награда бизнесмен_россия благотворительный_деятельность I_степень I_степень орден_ _ _ _ _ _ _ _ генеральный_директор генеральный_директор стать_единственный российский_миллиардер председатель_совет_директор металлургический_комбинат usm_holdings партнёр_ _дерипаск горно_металлургический металлургический_компания как_отмечать нефтегазовый_отрасль президент_россия _сечин работать_с_ согласно_закон государственный_поддержка год_она_быть согласно_постановление верховный_суд +1063 |text строитель заняться укладка проезжий часть крымский мост сообщаться сайт проект . участок строительство крымский мост остров тузел провести технологический операция устройство плита проезжий часть . монолитный конструкция сформировать пролёт автодорожный мост . В будущее поверхность быть уложить дорожный покрытие сообщение . слово замначальник управление федеральный автомобильный дорога тамань заказчик дать участок отрабатываться заложить проектировщик технический решение переноситься бумага реальный условие строительство . В успешно погрузить трубосвая фундамент опора автомобильный мост быть готовый опора летом начаться работа укрупнительный сборка пролётный строение . устройство плита проезжий часть следующий этап строительный монтажный работа рассказать . плита формироваться установленный проектный положение пролёт . предусмотреть соединение пролёт плеть . В дать случай пролёт опор . протяжённость плеть метр . собранный пролёт быть опустить опора причём место соприкосновение установить специальный сферический опорный часть обеспечивать возможный подвижка пролётный строение случай температурный сейсмический нагрузка . опора защитить пыль брызги морской волна воздействие обледенение . как плеть встать опора металлический балка пролёт уложить несъемный опалубка . строитель произвести вязка арматурный каркас начаться бетонирование ... . высокопрочный гидротехнический бетон уплотняться помощь специализировать техника бетонный поверхность шлифоваться отмечаться материал . сначала бетонироваться участок направление керчь . мост керченский пролив длина километр стать протяжённый россия . соединить крымский полуостров материковый частью страна автомобильный полоса железный дорога . движение автомобиль открыться год железнодорожный линия быть ввести временной эксплуатация . |ngramms крымский_мост крымский_мост В_будущее _ управление_федеральный автомобильный_дорога технический_решение быть_готовый следующий_этап проектный_положение дать_случай отмечаться_в_материал крымский_полуостров частью_страна железный_дорога автомобиль_открыться железнодорожный_линия временной_эксплуатация +1064 |text сбербанк россия росморпорт подписать контракт оказание услуга банковский сопровождение организация строительный контроль возведение основный объект морской порт район посёлок . сбербанк поступить редакция лента . . основной цель контракт являться контроль целевой расходование участник строительство денежный средство выделить реализация проект стадия строительство . банковский сопровождение быть осуществляться сбербанк срок строительство сдача морской порт эксплуатация . распоряжение правительство рф сбербанк быть определить единственный исполнитель работа публичный технологический ценовый аудит строительный контроль банковский сопровождение работа рамка проект . арктический порт строиться государство район одноимённый посёлок западный берег обский губа ямало ненецкий автономный округа . работа вестись рамка проект ямал спг предусматривать запуск завод сжижение природный газа база месторождение . новый порт ямал обеспечить круглогодичный навигация судно газовоз проход северный морской путь . весной год проект дополниться необходимость построить дополнительный ледозащитный сооружение что инвестиция государство строительство вырасти миллиард рубль миллиард рубль . строительство порт вестись нуль сложный геологический климатический гидрологический условие полярный кругом . проект порт быть построить период год . |ngramms строительный_контроль строительный_контроль основный_объект морской_порт морской_порт пресс_релиз поступить_в_редакция основной_цель денежный_средство реализация_проект быть_осуществляться срок_строительство правительство_рф быть_определить единственный_исполнитель порт_ автономный_округа ямал_спг природный_газа южно_тамбейский северный_морской что_инвестиция миллиард_рубль миллиард_рубль +1065 |text российский ай тёкий создать дочерний компания ооо консалтинг . сообщение компания . дочка создать база подразделение компания называться ай тёкий бизнес консалтинг . генеральный директор дочка назначить возглавлять направление бизнес консалтинг структура ай тёкий . новый компания заняться предоставление услуга управление персонал производственный фонд . клиент консалтинг организация сфера нефтегазовый химический промышленность крупный транспортный предприятие коммунальный хозяйство банка страховой учреждение телекоммуникационный компания государственный муниципальный орган управление . как пояснить лента . ай тёкий решение быть связать рост доля консалтинг структура оборот компания потребность чёткий сегментирование бизнес . итог год выручка ай тёкий консалтинговый услуга составить миллиард рубль доля оборот компания процент . ай тёкий российский системный интегратор поставщик информационный технология корпоративный заказчик . компания создать год входить крупный россия . оборот ай тёкий итог год составить миллиард рубль . В штат компания сотрудник . |ngramms дочерний_компания подразделение_компания генеральный_директор _ направление_бизнес компания_заняться горно_металлургический крупный_транспортный телекоммуникационный_компания как_пояснить решение_быть рост_доля оборот_компания оборот_компания год_выручка миллиард_рубль миллиард_рубль информационный_технология год_составить штат_компания +1066 |text российский бизнесмен греческий происхождение саввидти чей компания донский табак миллиард доллар миллиард рубль согласиться купить корпорация japan tobacco войти рейтинг миллиардер версия bloomberg . завершение сделка планировать закрыть iii квартал год состояние саввидти составить миллиард доллар . агентство отмечать что сделка быть анонсировать как россия решить активизировать борьба курение помощь повышение акциз табак . О план ужесточение осень год заявить глава минздрав россия скворцовый . евразийский антитабачный коалиция попросить поднять акциз табачный изделие среднее европа уровень . инициатива быть поддержать цена пачка сигарета быть составлять рубль . О что japan tobacco намерить приобрести донский табак сообщаться . сделка как увеличить доля japan tobacco российский рынок примерно процент немедленно сказаться прибыть . В год саввидти владеть греческий футбольный клуб пака оказаться центр скандал как выбежать ход матч чемпионат греция . бизнесмен быть недовольный действие судья угрожать дотрагиваться пистолет висеть кобура ремень . сообщение греческий пресса полиция выдать ордер арест саввидти . поздний бизнесмен извиниться инцидент . донский табак величина табачный компания россия . основной бренд донский табак kiss play . компания входить группа агрок ростовский бизнесмен бывший депутат госдума саввидти . |ngramms российский_бизнесмен происхождение_ миллиард_доллар миллиард_доллар миллиард_рубль рейтинг_миллиардер завершение_сделка агентство_отмечать сделка_быть россия_решить заявить_глава россия_ быть_поддержать намерить_приобрести увеличить_доля футбольный_клуб оказаться_в_центр матч_чемпионат поздний_бизнесмен компания_в_россия входить_в_группа депутат_госдума_ +1067 |text подать иск признание авиакомпания ютэйр банкрот . сообщать ссылка арбитражный суд автономный округа югра . требовать ввести ютэйр процедура наблюдение включить требование банка очередь реестр требование кредитор сумма рубль эквивалентный сумма миллион доллар курс цб рф дата введение наблюдение . курс год размер претензия банка составлять миллион рубль . иск не_принять производство . замгубернатор автономный округа сообщить что ютэйр договориться кредитор банка реструктуризация долг . суд рассматриваться иск взыскание задолженность авиаперевозчик . сумма требование кредитор настоящее время превышать миллиард рубль . крупный иск подать сумма порядок миллион доллар курс миллион рубль . новый иск случай принятие производство быть приобщить существующий . сообщаться что инвестиционный компания авиализинг подать год иск признание ютэйр банкрот уступить право требование авиаперевозчик . быть передать право сумма исковый требование миллион рубль . арбитражный суд хмао отказать удовлетворение заявление банкротство авиакомпания . состояться конец совещание министерство транспорт россия посвятить поддержка авиакомпания ютэйр стать единственный кредитор не_согласиться предложить условие погашение задолженность . сбербанк выразить готовность конвертировать задолженность перевозчик акция . ютэйр объём перевозка авиакомпания россия головной офис сургут конец год допустить дефолт облигация столкнуться многочисленный иск кредитор контрагент . крупный кредитор авиаперевозчик являться сбербанк . |ngramms альфа_банк альфа_банк альфа_банк альфа_банк альфа_банк альфа_банк иск_о_признание иск_о_признание пресс_секретарь арбитражный_суд арбитражный_суд ханты_мансийский ханты_мансийский автономный_округа автономный_округа _ очередь_реестр требование_кредитор требование_кредитор миллион_доллар миллион_доллар цб_рф миллион_рубль миллион_рубль миллион_рубль __сообщить реструктуризация_долг иск_о_взыскание миллиард_рубль иск_подать новый_иск производство_быть инвестиционный_компания быть_передать исковый_требование заявление_о_банкротство состояться_в_конец транспорт_россия поддержка_авиакомпания стать_единственный погашение_задолженность выразить_готовность головной_офис год_допустить крупный_кредитор +1068 |text группа онэксим процент акция золотодобывающий компания polyus gold international limited структура депутат зелимхан бывший совладелец билль . сообщать интерфакс ссылка онэксим . процент акционерный капитал polyus gold быть аффилировать lizarazu limited миллиард доллар . процент акция золотодобывающий компания группа аффилировать receza limited миллиард доллар . средство выручить продажа акция polyus gold онэксим мочь направить покупка доля ростелеком . сообщать новость ссылка неназванный источник . неделя сообщать что структура начать переговоры покупка пакет акция государственный оператор . основный претендент пакет polyus gold считаться владеть процент акция золотодобывающий компания . российский деловой конец писать что покупатель доля выступить . неподтвержденный информация сделка привлечь не_выставлять оферта миноритарий . закон обязывать объявлять оферта случай контроль компания переходить предприниматель консорциум акционер . В конец британский регулятор слияние поглощение takeover panel решить проверить продажа доля polyus gold . ведомство намерить выяснить являться депутат бизнесмен партнёр связать . |ngramms _ _ _ процент_акция процент_акция процент_акция бывший_совладелец пресс_служба акционерный_капитал миллиард_доллар миллиард_доллар направить_на_покупка структура_ переговоры_о_покупка пакет_акция что_покупатель _и_ _и_ В_конец британский_регулятор решить_проверить продажа_доля намерить_выяснить бизнесмен_партнёр +1069 |text новый акционер вконтакте фонд united capital partners действовать исключительно метод угроза прессинг . основатель гендиректор социальный сеть заявить газета ведомость . слово ключевой сотрудник вконтакте не_выдержать давление сторона ucp покинуть компания . язык новый собственник найти не_удаваться приходиться прилагать усилие сохранить команда сообщить . что соцсеть получать прибыль строго соответствие бюджет ucp предъявлять претензия относительно размер прибыть объём затрата поддержка сторонний проект . В год фонд начать проявлять интерес мессенджер telegram запустить средство фонд digital fortress df принадлежать . ucp запрашивать вконтакте информация кто сотрудник компания работать мессенджер какой интеллектуальный собственность соцсеть использоваться проект как соотноситься функционал telegram вконтакте . крупный акционер соцсеть . group попросить рассказать digital fortress удобный время . слово основатель соцсеть ucp не_верить везде параноидальный искать подвох . не_знать что финансист предположить что иметь сотрудник фсб пожаловаться . ситуация накалиться настолько что американский юрист акционер начать угрожать основатель соцсеть судебный преследование . гендиректор уточнить что ipo первичный предложение акция вконтакте прийтись отложить ситуация ucp . фонд заявить газета что ucp удивлённый комментарий . скорее недоразумение считать фонд . united capital partners купить процент акция вконтакте лев середина год . сумма сделка не_уточняться forbes сообщать что рамка соцсеть оценить миллиард доллар . российский указывать политический мотив сделка отмечать что управлять партнёр ucp щербович знак президент роснефть входить состав совет директор госкомпания . журналист автор книга код сообщать что сечин курировать продажа процент вконтакте фонд ucp . фонд отвергать политический мотив сделка . |ngramms новый_акционер _ _ _ capital_partners capital_partners социальный_сеть __заявить __заявить покинуть_компания получать_прибыль средство_фонд сотрудник_компания крупный_акционер основатель_соцсеть основатель_соцсеть акционер_начать что_ipo прийтись_отложить пресс_секретарь процент_акция _в_середина сумма_сделка миллиард_доллар входить_в_состав совет_директор +1070 |text европейский концерн unilever повышать процент цена чаять выпускать марка lipton brooke bond беседа . сообщить лента . источник московский офис компания . слово представитель unilever шаг вынужденный решение призвать частично компенсировать существенный изменение цена закупка чайный сырьё процент чайный сырьё настоящее время поступать россия рубеж закупка осуществляться доллар . О рост цена большинство косметический товар средство гигиена бытовой химия unilever сообщить сайт дистрибьюторский компания бхл . повышение цена предел процент связать значительный ослабление курс национальный валюта месяц указываться сообщение . представитель unilever рассказать лента . что список товар планироваться поднять цена компания решить пересмотреть отложить повышение целое ряд позиция . источник не_уточнить какой продукция ждать отсрочка . концерн unilever мировой лидер рынок продукт питание товар бытовой химия . владеть торговый марка как glorix domestos cif dove sunsilk timotei rexona calve lipton . В конец год unilever заявить замедление рост продажа российский рынок . годовой прибыль компания сократиться процент . российский подразделение ооо юнилевера русь год принадлежать процент акция оао концерн калин . |ngramms европейский_концерн офис_компания частично_компенсировать повышение_цена национальный_валюта поднять_цена компания_решить целое_ряд англо_голландский мировой_лидер продукт_питание торговый_марка В_конец рост_продажа прибыль_компания российский_подразделение процент_акция +1071 |text суд великобритания отправить иск роснефть относительно санкция отношение компания суд евросоюз . сообщать bloomberg ссылка лондонский арбитр . слово суд великобритания не_смочь решить юридический вопрос поставить роснефть быть направить европейский суд юстиция люксембург . В год роснефть попросить суд великобритания приостановить действие приказ вводить уголовный ответственность нарушение санкция российский нефтегазовый компания отношение британский поддать export control order завершение судебный разбирательство европейский суд законность санкция ввести евросоюз . роснефть подать суд суд европейский союз иск европейский совет объединять глава государство ес требование аннулировать решение орган введение ограничение работа крупный российский компания банк европейский финансовый рынок . российский компания второе величина акционер являться британский bp процент заявить что считать наложить ес санкция незаконный полагать что быть отменить . В роснефть подчёркивать что правило требовать компания получать разрешение экспорт оборудование добыча нефть арктика глубоководный шельф сланцевый нефть нечёткий как определение масштаб . роснефть наряду компания транснефть газпром нефть попасть опубликовать список евросоюз . согласно решение ес резидент союз не_смочь предоставлять имя кредит проводить операция новый выпуск облигация ценный бумага срок обращение свыше . санкция предусматривать ограничение доступ зарубежный финансирование технология добыча нефть . |ngramms суд_великобритания суд_великобритания суд_великобритания юридический_вопрос европейский_суд европейский_суд приостановить_действие нефтегазовый_компания судебный_разбирательство ввести_евросоюз европейский_союз глава_государство крупный_российский_компания финансовый_рынок российский_компания британский_bp что_считать ес_санкция компания_получать добыча_нефть добыча_нефть сланцевый_нефть газпром_нефть список_евросоюз не_смочь_предоставлять имя_кредит проводить_операция выпуск_облигация ценный_бумага обращение_свыше предусматривать_ограничение зарубежный_финансирование +1072 |text итог год россия быть миллион телефон смартфон сумма миллиард рубль . официальный евросеть поступить лента . . указанный цифра не_совпадать подсчёт связной основный конкурент евросеть выпустить релиз итог год . связной россия быть миллион мобильный устройство миллиард рубль . В евросеть подчёркиваться что оценка независимый эксперт совпадать дать превышать . прогноз евросеть год быть маленький смартфон телефон причём как штучный выражение денежный . эксперт компания ожидать что текущий год быть реализовать миллион мобильник миллиард рубль . слово президент евросеть слово приводиться прогноз оказаться верный год стать многий региональный локальный сеть . остаться игрок удаться выйти ноль мочь считать успех подчеркнуть . В связной очередь подчёркиваться что фон замедление продажа снижаться цена смартфон год стоимость среднее смартфон упасть процент тысяча рубль . связной отмечать что цифра носить предварительный характер . евросеть связной крупный российский сеть салон . сайт евросеть что бренд работать тысяча салон город россия белоруссия сайт связной что сеть объединять тысяча салон . |ngramms год_в_россия миллиард_рубль миллиард_рубль миллиард_рубль пресс_релиз пресс_релиз пресс_релиз пресс_релиз основный_конкурент мобильный_устройство независимый_эксперт причём_как компания_ожидать текущий_год быть_реализовать _ год_стать подчеркнуть_ что_на_фон тысяча_рубль носить_предварительный крупный_российский +1073 |text газпром решение приостанавливать газификация регион иметь значительный задолженность поставить газ заявить председатель совет директор газпром совещание вопрос развитие система газоснабжение газификация ростовский область сообщить лента . компания газпром межрегионгаз . регион должник исключить социальный программа газпром ребёнок . слово просрочить задолженность поставить газ россия настоящее время составлять миллиард рубль проблемный являться регион долг миллион рубль миллиард рубль . год сумма долг потребитель газа вырасти процент год цифра удвоиться уточнить газпром межрегионгаза . глава регион подписать план график погашение задолженность газ полностью соблюдать ямало ненецкий автономный округ . процент задолженность население приходиться житель северный кавказ . А злостный должник теплоснабжающий компания находиться московский тверская область северный осетия . помимо компания список должник газпром межрегионгаза промышленный предприятие предприятие электроэнергетика . наиболее выделяться плохой платёжный дисциплина оао тгк ооо центральный тэц новокузнецк . долг тгк приближаться миллиард рубль . ситуация долг газ компания возбудить уголовный . многие долг поставщик газа возникнуть мошеннический действие теплоснабжающий организация отмечать представитель газовый отрасль . как показывать практика эффективно бороться неплатёж помогать отключение должник . дать мера как правило использоваться межотопительный период . Я думать что платёжный дисциплина быть неотъемлемый черта экономический деятельность подчеркнуть президент рф время прямая линия россиянин год . |ngramms поставить_газ поставить_газ председатель_совет_директор _ развитие_система ростовский_область социальный_программа миллиард_рубль миллиард_рубль миллиард_рубль миллион_рубль потребитель_газа глава_регион кабардино_балкария помимо_ промышленный_предприятие поставщик_газа отмечать_представитель как_показывать дать_мера как_правило Я_думать экономический_деятельность подчеркнуть_президент рф__ прямая_линия +1074 |text фонд семья оппенгеймер крупный миноритарий яндекс увеличить доля акция класс А процент . сообщаться материал сайт комиссия ценный бумага биржа сша sec . образ семья оппенгеймер увеличить доля акция яндекс класс А четверть купить миллион ценный бумага компания . номер писать газета ведомость . стоимость купить акция исходить диапазон доллар рамка бумага поисковик торговаться мочь составить миллион доллар . oppenheimerfunds oppenheimer developing markets fund стать владелец акция яндекс результат ipo первичный размещение акция состояться год . фонд наращивать доля год превысить процент что составлять процент голос . состояние год oppenheimerfunds oppenheimer developing markets fund контролировать процент уставный капитал яндекс . котировка доля оцениваться миллион доллар . В яндекс провести spo вторичный размещение результат биржа процент акция . ipo spo крупный акционер яндекс являться фонд baring vostok принадлежать процент голосовать акция . основатель компания аркадия принадлежать доля размер процент голос соответственно . акционер принадлежать основное акция класс В обладать десять голос . ценный бумага класс А обладать голос . крупный миноритария яндекс фонд семья оппенгеймер являться tiger global management morgan stanley investment management thornburg investment management . |ngramms фонд_семья фонд_семья интернет_компания класс_А класс_А класс_А ценный_бумага ценный_бумага ценный_бумага биржа_сша писать_газета мочь_составить миллион_доллар миллион_доллар стать_владелец первичный_размещение что_составлять процент_голос процент_голос уставный_капитал крупный_акционер являться_фонд голосовать_акция основатель_компания _и__ принадлежать_доля акционер_принадлежать акция_класс +1075 |text чистый прибыль компания оператор электронный платёж qiwi первое квартал год вырасти процент миллион рубль сравнение аналогичный период прошлое год . сообщение компания . скорректировать выручка qiwi период вырасти процент миллиард рубль . скорректировать показатель ebitda первое квартал увеличиться процент миллиард рубль сравнение прошлое год . прибыль разводненный акция итог квартал вырасти процент сравнение прошлое год рубль . объесть транзакция платёжный система qiwi период вырасти процент миллиард рубль . финансовый показатель qiwi превысить ожидание аналитик . прогноз инвестиционный группа ренессанс капитал рост выручка первое квартал уровень процент миллиард рубль показатель ebitda процент миллион рубль . прогноз сбербанк период быть оптимистичный . рост чистый выручка уровень процент ebitda процент миллион рубль . наиболее близкие фактический финитог оказаться прогноз корпорация J . P . morgan . рост выручка qiwi квартал оцениваться уровень процент сравнение прошлое год миллиард рубль . ebitda быть врасти процент миллион рубль . В настоящее время стоимость акция qiwi биржа nasdaq превышать доллар ценный бумага . первичный публичный размещение акция ipo год цена акция qiwi составить доллар . |ngramms чистый_прибыль электронный_платёж миллион_рубль миллион_рубль миллион_рубль миллион_рубль аналогичный_период_прошлое_год миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль показатель_ebitda показатель_ebitda прошлое_год прошлое_год прошлое_год платёжный_система финансовый_показатель инвестиционный_группа рост_выручка рост_выручка чистый_выручка В_настоящее_время стоимость_акция ценный_бумага первичный_публичный размещение_акция +1076 |text убыток автоваз международный система финансовый отчётность год составить миллиард рубль прибыть миллиард год . сообщаться компания . выручка снизиться миллиард рубль миллиард . ухудшение результат деятельность группа связать основное снижение продажа российский автомобильный рынок . слово президент автоваз бу андерссон год быть корпорация непростой . руководство намерить вновь сделать компания прибыльный что сконцентрироваться рост производительность труд повышение качество выпускать продукция запуск новый модель сокращение затрата . андерссон заявлять постановка компания основный цель . заявить что завод стать хороший автопроизводитель страна увеличить доля российский рынок минимум процент экспорт процент . структура стоить задача создать положительный денежный поток увеличить процент операционный прибыль год . приход корпорация новое гендиректор бу андерссон начало активно сокращать рабочий место . руководство автоваз планировать уволить тысяча работник . рядовой рабочий быть снизить тысяча человек количество административный работник тысяча человек . квартал год предприятие работать тысяча сотрудник . |ngramms финансовый_отчётность год_составить миллиард_рубль миллиард_рубль пресс_релиз финансово_хозяйственный деятельность_группа снижение_продажа автомобильный_рынок бу_андерссон бу_андерссон повышение_качество выпускать_продукция новый_модель что_завод увеличить_доля стоить_задача денежный_поток операционный_прибыль новое_гендиректор рабочий_место планировать_уволить тысяча_работник быть_снизить тысяча_человек тысяча_человек тысяча_сотрудник +1077 |text росатом отложить вывоз отработать ядерный топливо украина . сообщить директор госполитик сфера обращение ядерный отход корпорация передавать . рейс поставка отложить что российский сторона не_получить аванс вывоз предусмотренный контракт . добавить что росатом намеренный продолжить выполнение обязанность рамка документ . украина планировать самостоятельно решать проблема . С год украина планировать вывезти переработка временной хранение тысяча отработать ресурс топливный сборка аэс . сложность выполнение контракт возникнуть арест счёт украинский корпорация энергоатом . В компания оператор атомный электростанция украина сообщить прекращение проведение платёж ядерный топливо материал вывоз отработать топливо заморозка счёт требование исполнительный служба страна . В счёт имущество концерн сумма миллиард гривна миллиард доллар быть арестовать что привести фактический блокировка деятельность энергоатом . холдинг лишиться возможность обслуживать кредит получить иностранный валюта . В компания предупреждать что ситуация мочь привести задержка поставка ядерный топливо украинский аэс остановка энергоблок . В начало президент украина наложить вето закон продлевать запрет банкротство энергоатом конец год вернуть доработка верховный . |ngramms ядерный_топливо ядерный_топливо ядерный_топливо _ российский_сторона _добавить украина_планировать украина_планировать топ_менеджер украинский_корпорация проведение_платёж исполнительный_служба миллиард_гривна миллиард_доллар быть_арестовать финансово_хозяйственный обслуживать_кредит иностранный_валюта В_компания ситуация_мочь В_начало украина__ +1078 |text роснефть заключить соглашение китайский корпорация beijing enterprises group sinopec предусматривать реализация совместный проект восточный сибирь . сайт российский компания . В сообщение отмечаться что подписать beijing enterprises документ закладывать основа дальнейший развитие сотрудничество компания различный сфера нефтегазовый отрасль . В сторона договориться основный условие потенциальный сделка продажа роснефть структура beijing процент акция верхнечонскнефтегаз владеть лицензия разработка верхнечонский нефтегазоконденсатный месторождение запас миллион тонна нефть газовый конденсат миллиард кубометр газа . обязывать соглашение планироваться подписать поздний квартал год . С группа sinopec роснефть подписать рамочный соглашение подготовка совместный предварительный экономический обоснование проект строительство эксплуатация восточный сибирь газоперерабатывающий нефтегазохимический комплекс . В случай успешный результат работа предусмотренный соглашение предполагаться создать совместный предприятие роснефть sinopec год . реализация проект позволить удовлетворить расти спрос полиэтилен полипропилен россия китай отмечаться релиз . промышленный комплекс планироваться построить район административный центр богучан годовой мощность составить миллиард кубометр сырой природный газа выпуск миллион тонна высокотехнологичный полимер нефтехимический продукция . реализовывать планироваться основное российский китайский рынок . ресурсный база проект являться нефтегазовый месторождение роснефть сибирский юрубчить тахомский кластер . глава роснефть сечин президент китайский компания china shipbuilding industry corporation csic ху вэньмина подписать контракт строительство док дальневосточный судоверфь звезда . транспортный передаточный док грузоподъёмность тысяча тонна быть создать строительство объект морской техника судоверфь . контракт предусматривать что китайский компания разработать проектный конструкторский документация изготовить оборудование обучить экипаж провести окончательный испытание док бухта большой камень . В сообщение роснефть отмечаться что использование дать техника являться беспрецедентный судостроительный отрасль россия . судостроительный комплекс звезда создаваться база дальневосточный центр судостроение судоремонт консорциум роснефтегаз роснефть газпромбанк . пилотный загрузка комплекс обеспечивать роснефть заключить дцсс соглашение размещение заказ строительство новый морской техника судно мощность . |ngramms китайский_корпорация предусматривать_реализация совместный_проект восточный_сибирь восточный_сибирь пресс_релиз российский_компания В_сообщение_отмечаться нефтегазовый_отрасль основный_условие сделка_по_продажа процент_акция лицензия_на_разработка миллион_тонна_нефть миллиард_кубометр_газа проект_по_строительство В_случай результат_работа совместный_предприятие реализация_проект отмечаться_в_релиз планироваться_построить административный_центр годовой_мощность миллиард_кубометр природный_газа миллион_тонна проект_являться нефтегазовый_месторождение _сечин китайский_компания китайский_компания контракт_на_строительство тысяча_тонна быть_создать морской_техника морской_техника В_сообщение использование_дать отрасль_россия дальневосточный_центр комплекс_обеспечивать заказ_на_строительство +1079 |text правительство россия выделить авиакомпания вим миллион рубль резервный фонд кабинет министр . указ подписать премьер разместить сайт правительство . росавиация выделить бюджетный ассигнование размер миллион рубль резервный фонд правительство россия оплата авиационный горючий смазочный материал оказать услуга аэропортовый наземный обеспечение полёт воздушный судно ооо авиакомпания вим распоряжение . В время власть подчёркивать что долг авиакомпания услуга топливо обеспечение составлять миллиард рубль . аэропорт отказываться обслуживать самолёт вим что препятствовать перевозка пассажир . появиться информация что вим получить госбюджет миллион рубль возврат ндс квартал . регулярный рейс компания быть выполняться перевозка прекратиться . пассажир иметь билет дата выполнение регулярный рейс рекомендовать сдать получить деньга место приобретение . следователь задержать гендиректор главный бухгалтер вим мошенничество . местонахождение сбежать россия совладелец авиакомпания устанавливаться . |ngramms правительство_россия правительство_россия миллион_рубль миллион_рубль миллион_рубль _ разместить_на_сайт воздушный_судно В_то_же_время долг_авиакомпания обеспечение_составлять миллиард_рубль перевозка_пассажир регулярный_рейс регулярный_рейс компания_быть иметь_билет получить_деньга место_приобретение задержать_гендиректор совладелец_авиакомпания +1080 |text холдинг en дерипаск считать задержание финансовый директор черногорский алюминиевый завод kombinat aluminijuma podgorica kap потрубач репрессия законный акционер . сообщать новость ссылка неназванный представитель en . В компания уточнить что потрубач предъявить обвинение хищение электричество европейский электросистема . en считать обвинение абсурдный не_исключать что мочь подать иск защита интерес . потрубач задержать черногорско сербский граница . официальный информация предъявлять обвинение не_поступать . информация черногорский финдиректор задержать допрос банкротство кара начать . как отмечать газета vijesti совет директор завод госучреждение жаловаться отсутствие сотрудничество сторона потрубач . власть необходимый помощь финдиректор определить точный объесть задолженность кара местный правительство . кара являться крупный черногория алюминиевый завод процент акция предприятие принадлежать en власть балканский страна . оперативный управление завод время осуществлять компания дерипаск . В год треть мощность кара простаивать . производство сократиться как предприятие перестать получать льготный электроэнергия . |ngramms _дерипаск финансовый_директор В_компания подать_иск как_отмечать совет_директор определить_точный объесть_задолженность процент_акция оперативный_управление компания_дерипаск предприятие_перестать +1081 |text центральный пригородный пассажирский компания выиграть аукцион организовать московский метрополитен право перевозка пассажир малое кольцо московский кольцевой железный дорога мк мжд . В торг компания . поступить редакция лента . начальный цена договор составить миллиард миллион рубль год окончательный миллиард миллион рубль . образ московский подземка сэкономить дать контракт рассчитать год миллиард миллион рубль . согласно условие аукцион перевозчик приобрести подвижный состав организовать система продажа распространение билет составить график движение поезд осуществлять перевозка пассажир обслуживание поезд срок контракт . создание комфортный условие проезд салон предусмотреть доступ интернет электрический розетка зарядка гаджет мусорный бак дверь . условие договор человек ограниченный возможность предусмотреть специальный место головной вагон . информация вагон быть дублироваться пиктограмма поручень ступень выступать часть вагон окрасить яркий . пассажирский движение московский кольцевой железный дорога быть запустить год . планироваться что год малое кольцо перевезти миллион пассажир . железный дорога быть ходить пара поезд сутки интервал движение часы пик составить минута . инфраструктура мк мжд быть интегрировать городской пригородный система общественный транспорт . пассажир смочь пересесть малое кольцо станция метрополитен предусмотреть пересадка радиальный направление пригородный железнодорожный сообщение . ряд станция построить перехватывать парковка сформировать транспортный пересадочный узел . |ngramms пассажирский_компания выиграть_аукцион московский_метрополитен перевозка_пассажир перевозка_пассажир малое_кольцо малое_кольцо малое_кольцо железный_дорога железный_дорога железный_дорога пресс_релиз поступить_в_редакция миллион_рубль миллион_рубль миллион_рубль согласно_условие подвижный_состав система_продажа срок_контракт ограниченный_возможность миллион_пассажир общественный_транспорт пассажир_смочь железнодорожный_сообщение +1082 |text В третье квартал год выручка роснефть составить триллион миллиард рубль миллиард доллар увеличиться процент рублево выражение отношение уровень предыдущий квартал . информация финансовый результат квартал опубликовать сайт компания . выручка месяц год увеличиться год год составить триллион миллиард рубль . главное образ быть обусловить благоприятный ценовый конъюнктура увеличение доход российский международный проект . В третье квартал год показатель ebitda составить миллиард рубль миллиард доллар . увеличение показатель обусловить относительный рост цена нефть рост процент доллар выражение отношение второе квартал год условие негативный эффект лаг установление экспортный пошлина одновременный снижение затрата административный расход . удельный операционный затрата третье квартал текущий год составить рубль баррель нефтяной эквивалент доллар сравнение рубль доллар второе квартал . капитальный затрата отчётный период составить миллиард рубль миллиард доллар достигнуть итог месяц год миллиард рубль миллиард доллар . В компания отмечать что наращивание капитальный вложение месяц год относительно аналогичный период прошлое год составлять процент связать реализация высокоэффективный проект разведка добыча рамка утвердить план стратегия роснефть . благодаря хороший операционный результат благоприятный ценовый конъюнктура компания продолжить наращивать свободный денежный поток достигнуть миллиард рубль миллиард доллар третье квартал миллиард рубль миллиард доллар месяц год увеличиться предыдущий квартал год год . краткосрочный часть финансовый обязательство сократиться квартал процент миллиард доллар основное счёт плановый погашение частичный рефинансирование долгосрочный заёмный инструмент . образ значение показатель отношение чистый долг ebitda сократиться процент начало год . последовательно двигаться достижение цель компания досрочно реализовать объявить текущий год план сокращение нагрузка снижение оборотный капитал прокомментировать финансовый результат компания глава роснефть сечин . отчётность роснефть превзойти ожидание готовый далёкий радовать инвестор прокомментировать отчётность нефтяной компания заместитель директор аналитический департамент альпари . итог год роснефть обещать быть благоприятный снижение цена нефть мочь скорректировать ожидание рынок ключевой показатель квартал год . многий быть зависеть дальнейший судьба сделка опека . кстати внимание стоить заморозка оптовый цена топливо внутренний рынок что мочь повлиять отчётность компания . В целое совокупный результат полугодие порадовать инвестор сулить неплохой дивидендный выплата подчеркнуть . |ngramms третье_квартал третье_квартал третье_квартал третье_квартал год_выручка миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар предыдущий_квартал финансовый_результат финансовый_результат опубликовать_на_сайт_компания год_увеличиться главное_образ показатель_ebitda цена_на_нефть цена_на_нефть второе_квартал негативный_эффект экспортный_пошлина административный_расход текущий_год_составить капитальный_затрата отчётный_период компания_отмечать капитальный_вложение год_относительно аналогичный_период_прошлое_год компания_продолжить свободный_денежный_поток финансовый_обязательство чистый_долг текущий_год _нагрузка _сечин нефтяной_компания заместитель_директор _ итог_год внутренний_рынок отчётность_компания В_целое +1083 |text арбитражный суд москва удовлетворить иск газпром федеральный антимонопольный служба фас россия тендер закупка труба большой диаметр газопровод сила сибирь передавать новость . победитель тендер закупка труба сумма миллиард рубль стать компания крупный заказ достаться выксунский меткомбинат входить омк . мнение фас условие тендер ограничивать конкуренция газпром просить суд признать незаконный предписание фас внести изменение закупочный документация продлить срок подача заявка . фас россия неоднократно выступать схема закупка газпром считать неэффективный . В глава служба назвать ужасный результат тендер компания закупка труба большой диаметр . обратить внимание что итог конкурс семь миллиард рубль результат быть обнародовать цена закупка практически не_снизиться значительный часть заказ достаться производитель компания посредник трубный инновационный технология шабалов . В прошлое год критика фас россия газпром отменить тендер строительство магистральный газопровод сила сибирь сумма миллиард рубль . |ngramms арбитражный_суд_москва удовлетворить_иск федеральный_антимонопольный_служба закупка_труба закупка_труба закупка_труба сила_сибирь сила_сибирь передавать_риа_новость миллиард_рубль миллиард_рубль миллиард_рубль крупный_заказ просить_суд признать_незаконный предписание_фас продлить_срок подача_заявка фас_россия фас_россия __назвать обратить_внимание что_по_итог цена_закупка значительный_часть заказ_достаться В_прошлое_год +1084 |text министр экономический развитие россия предложить год отложить введение торговый сбор . подчеркнуть что платёж как нормативный база быть сохранить необходимый начать взимание поздний запланировать срок . министр сообщить интервью газета ведомость . мнение отложить введение сбор торговый организация нужно вернуть доверие бизнес власть . доверие быть большой . В мосгордума закон вводить торговый сбор следующий год . уплата взнос освобождаться индивидуальный предприниматель работать патентный система налогообложение почтовый отделение владелец торговый госучреждение не_размещаться сдавать аренда площадь . торговый сбор не_коснуться складской помещение ярмарка выходной продажа автомат . стационарный объект торговый площадь квадратный метр устанавливаться платёж равный стоимость патент . дополнительный квадратный метр предприятие быть выплачивать рубль . представитель комитет развитие предпринимательство потребительский рынок сообщить что введение торговый сбор год северный столица не_планироваться . В начало президент россия подписать поправка налоговый кодекс введение взнос право заниматься торговля город федеральный значение москва севастополь . согласно документ сбор мочь взиматься начинать год . представлять новый вид налоговый нагрузка фиксировать платёж обязательный предприниматель сфера торговля . ставка сбор розничный торговля превышать рубль квадратный метр рынок . плательщик быть вправе уменьшить сумма сбор ндфл налог прибыль налог уплачивать упрощённый система налогообложение . |ngramms министр_экономический_развитие россия___предложить отложить_введение отложить_введение торговый_сбор торговый_сбор торговый_сбор запланировать_срок сообщить_в_интервью торговый_организация следующий_год почтовый_отделение торговый_площадь квадратный_метр квадратный_метр квадратный_метр представитель_комитет санкт_петербург санкт_петербург что_введение северный_столица В_начало президент_россия__ налоговый_кодекс федеральный_значение согласно_документ налоговый_нагрузка ставка_сбор розничный_торговля +1085 |text россия завод производство висковый дистиллят смочь покрыть треть потребность страна продукт появиться калининградский область передавать новость . проект строительство предприятие мощность миллион литр год инвестиция составить миллион евро одобрить заседание региональный совет улучшение инвестклимат . гендиректор виноконьячный завод альянс выступать инвестор проект обратить внимание высокий экспортный потенциал новое производство . производитель поставлять дистиллят россия уплачивать таможенный пошлина благодаря проект становиться конкурентоспособный пояснить . что проект смочь иностранный компания . проект предполагать создание новый рабочий место . производство быть проходить классический шотландский технология проблема сырьём возникнуть подготовка проект быть провести ряд переговоры производитель смоленский тверская область обещать инвестор . В конец год директор центр исследование федеральный региональный рынок алкоголь дробиз сообщать что текущий год значительно сократиться импорт зарубежный алкогольный продукция висок процент коньяк процент игристый вино процент вино . месяц импорт винный материал вырасти вдвое . компания nielsen год россиянин выпить процент маленький горячительный напиток год . |ngramms завод_по_производство треть_потребность калининградский_область передавать_риа_новость проект_строительство миллион_литр миллион_евро _ инвестор_проект экспортный_потенциал таможенный_пошлина иностранный_компания предполагать_создание рабочий_место производство_быть подготовка_проект быть_провести директор_центр текущий_год значительно_сократиться алкогольный_продукция процент_маленький +1086 |text бывший мэр москва намеренный заняться производство рутина . витаминный препарат укреплять кровеносный сосуд человек . производить быть гречиха сообщать новость ссылка бывший столичный градоначальник . В год производство сырца рутина принадлежащий агрокомплекс калининградский область отвести гектар тысяча . выделить участок выращиваться специальный сорт гречиха красный белый . В настоящее время значительный объесть рутина россия поступать китай япония корея . В страна витаминный препарат относиться флавоноид вещество группа витамин обладать способность укреплять капиллярный сосуд производить плод софора . В калининградский область принадлежать конный завод веедёрн позиционироваться как многопрофильный сельскохозяйственный предприятие . помимо разведение овца лошадь заниматься растениеводство переработка сельскохозяйственный продукция . В год хозяйство приступить выпуск сыр бренд медовый лужок . основной направление производство мягкий сырой как бри камамбер . В дальнейший план начать производство твёрдый сыр вплоть производство пармезан . В год быть объявить что запускать западный регион россия производство гречневый крупа . подчёркиваться что завод веедёрн способный перерабатывать гречиха вырастить область . что быть приобрести оборудование производительность килограмм гречневый крупа час . |ngramms мэр_москва _ намеренный_заняться пресс_служба принадлежащий_ калининградский_область калининградский_область В_настоящее_время основной_направление В_дальнейший начать_производство год_быть_объявить регион_россия что_завод быть_приобрести +1087 |text госкомпания роснефть итог первое квартал выплатить основный часть долг приходиться год . объесть выплата составить миллиард доллар . сообщать новость ссылка глава компания сечин . В год конец первое квартал год осуществить крупный погашение финансовый обязательство запланировать год заявить . сообщаться что роснефть конец погасить синдицировать кредит привлечь бывший группа компания тнк вр международный банк . указанный синдицировать кредит быть привлечь тнк вр год сумма миллиард доллар сумма погашение составить миллион доллар . В роснефть досрочно погасить часть кредит привлекаться покупка тнк вр . кредитор быть перечислить миллиард доллар . сделка консолидация роснефть процент акция тнк вр быть закрытый год доля быть выкупить консорциум aar миллиард доллар британский вр российский нефтяной компания рассчитаться деньга акция выплатить миллиард доллар передать процент акция . финансирование сделка роснефть привлекать кредит иностранный банка сумма миллиард доллар . |ngramms первое_квартал первое_квартал основный_часть объесть_выплата миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар глава_компания _сечин В_это_год финансовый_обязательство группа_компания международный_банк быть_привлечь миллион_доллар погасить_часть процент_акция процент_акция быть_закрытый британский_вр нефтяной_компания +1088 |text руководитель технологический компания oracle lawrence J . ellison итог год стать высокооплачиваемый сша . писать газета york times ссылка рейтинг ежегодно составлять аналитический компания equilar . В год занять соответствующий список строчка . год заработать сложность миллион доллар примерно тысяча . сравнение год выплата глава oracle вырасти процент несмотря что выручка компания упасть год процент . лидер рейтинг год глава корпорация apple заработать год миллион доллар благодаря бонус миллион вид акция текущий список не_попасть . В год денежный выплата составить миллион доллар . место список equilar год достаться гендиректор сеть клиника hca миллион доллар третье руководитель walt disney миллион . В рейтинг equilar попадать сто высокооплачиваемый руководитель американский компания годовой выручка миллиард доллар . |ngramms _ _ _ _ топ_менеджер писать_газета соответствующий_список миллион_доллар миллион_доллар миллион_доллар миллион_доллар выручка_компания лидер_рейтинг глава_корпорация место_в_список год_достаться В_рейтинг американский_компания годовой_выручка миллиард_доллар +1089 |text независимый нефтяной компания ннк прислать минэнерго россия заявка миллиард рубль фонд национальный благосостояние фнб . писать ведомость ссылка чиновник представитель минэнерго . предприятие нужный деньга разработка пайяхский месторождение полуостров таймыр . ннк планировать начать добыча год . министерство энергетика поддержать заявка ннк собеседник издание ведомство . заявка поступить начало год отправить минэкономразвития . чиновник считать что шанс одобрение документ ведомство невеликий есть некоторый предубеждение проект . независимый нефтяной компания быть создать год . глава предприятие бывший роснефть худайнат . объесть фнб составлять триллион рубль . месяц уменьшиться процент . В часть средство фнб быть направить покупка привилегированный акция компания участвовать работа инфраструктурный проект ржд втб атомэнергопром . |ngramms нефтяной_компания нефтяной_компания _ минэнерго_россия миллиард_рубль фонд_национальный нужный_деньга планировать_начать министерство_энергетика собеседник_издание заявка_поступить ведомство__ есть_некоторый глава_предприятие вице_президент триллион_рубль часть_средство акция_компания +1090 |text французский psa group покупать американский general motors подразделение opel vauxhall европейский бизнес gm financial сайт компания . гордый что объединять усилие opel vauxhall глубоко приверженный продолжение развитие великий компания ускорение оздоровление заявить председатель правление psa таварес . следовать что opel vauxhall оценить миллиард евро gm financial миллион евро . образ закрытие сделка psa стать второе величина автопроизводитель европа доля рынок процент . В год быть миллион автомобиль opel процент большой год peugeot citroen миллион минус процент тысяча машина минус процент соответственно . |ngramms general_motors европейский_бизнес пресс_релиз пресс_релиз что_объединять председатель_правление миллиард_евро миллион_евро закрытие_сделка стать_второе доля_рынок миллион_автомобиль процент_большой тысяча_машина +1091 |text госбанк втб закрыть сделка продажа процент акция мобильный оператор россия . сообщаться официальный финансовый организация . покупатель пакет выступить стратегический инвестор входить группа банка россия подконтрольный структура владелец северсталь . стоимость сделка не_раскрываться отмечаться что цена соответствовать ожидание группа втб . В середина федеральный антимонопольный служба фас разрешить структура банка россия купить половина акция россия . ходатайство компания подать фас . втб купить российский дочка шведский мобильный оператор год миллиард доллар . госбанк взять задолженность оператор миллиард доллар . В втб отмечать что рассматривать сделка как инвестиция цель дальнейший развитие бизнес компания собираться дальнейший перепродавать актив . руководство втб заявлять что планировать год реализовать половина акция россия . деловой называть банк россия возможный покупатель акция россия . |ngramms сделка_по_продажа процент_акция мобильный_оператор мобильный_оператор пресс_релиз пресс_релиз финансовый_организация покупатель_пакет стратегический_инвестор _ _ стоимость_сделка что_цена группа_втб В_середина федеральный_антимонопольный_служба половина_акция половина_акция миллиард_доллар миллиард_доллар что_рассматривать как_инвестиция развитие_бизнес год_реализовать возможный_покупатель +1092 |text туроператор экспо тур объявить приостановка деятельность сообщать рбк петербург ссылка гендиректор компания . слово проблема начаться сокращение программа черноморский круиз запустить год . теплоход быть зайти порт новороссийск ялта сочи севастополь стамбул сезон владелец судный карибский компания adriana shipping изменить маршрут оставить севастополь стамбул . многие турист потребовать вернуть деньга . В итог тысяча клиент компания собираться анонсировать круиз не_смочь получить услуга оплатить путёвка . как заявить турфирма случай признанный . туроператор оценить миллион рубль . экспо тур застраховать компания адванта страхование миллион рубль . глава ростуризм сообщить рбк что объявление приостановка деятельность не_стать неожиданность . знать что фирма есть некоторый трудность . информация есть . вопрос смочь фирма решить . фирма нева старый российский туроператор основать год объявить приостановка деятельность . В сложность финансовый затруднение пострадать свыше тысяча турист . |ngramms санкт_петербургский приостановка_деятельность гендиректор_компания _ проблема_начаться вернуть_деньга В_итог клиент_компания признанный_ миллион_рубль миллион_рубль пресс_служба сообщить_рбк есть_некоторый тысяча_турист +1093 |text интерпол не_объявлять международный розыск российский бизнесмен . сообщение опубликовать сайт интерпол . В сообщение отмечаться что интерпол получить власть белоруссия запрос объявление международный розыск основный владелец уралкалий ряд лицо связанный калийный компания . запрос рассматриваться генеральный секретариат интерпол никакой действие не_предприниматься . как подчеркнуть организация обычно представитель интерпол не_комментировать отдельный запрос розыск иной лицо . корректный сообщение сторона белорусский власть интерпол счесть возможный прояснить ситуация . О что интерпол объявить международный розыск сообщить ссылка мвд белоруссия . пресса обращать внимание что база дать интерпол значиться человек фамилия россия . текущий поиск фамилия база интерпол выдавать аналогичный результат . В начало быть привлечь статус обвинять генеральный директор уралкалий . следственный комитет белоруссия предъявить обвинение организация злоупотребление власть служебный полномочие пункт статья часть статья ук белоруссия . быть арестовать минск конец предъявить обвинение злоупотребление власть должностной полномочие . власть белоруссия считать что фигурант ряд сотрудник белорусский калийный компания бкк причастный организация преступный схема направить захват рынок сбыт . действие подозревать якобы нанести ущерб белорусский экономика сто миллион доллар . отношение быть завести месяц спустя как уралкалий прекратить сотрудничество бкк отдать реализация продукция дочка . эксклюзивный продавец продукция являться бкк создать паритетный начало уралкалий . В российский компания пояснять что разрыв партнерство белорус власть рб разрешить беларуськалия торговать обход бкк . В минск полагать что выход соглашение бкк быть задумать давно . |ngramms международный_розыск международный_розыск международный_розыск бизнесмен__ опубликовать_на_сайт В_сообщение_отмечаться основный_владелец калийный_компания калийный_компания белорусский_власть обращать_внимание база_дать _ _ быть_привлечь генеральный_директор следственный_комитет служебный_полномочие власть_белоруссия рынок_сбыт действие_подозревать миллион_доллар быть_завести месяц_спустя реализация_продукция российский_компания +1094 |text газпром не_исключать что ближний время подать новое иск нафтогаза украина стокгольмский арбитраж . заявить глава российский газовый холдинг встреча передавать новость . слово украина заявить что россия не_предоставить сверхнизкий цена газ киев быть брать бесплатно объём . как председатель правительство рф украина искусственно создать газовый кризис быть предложить крайне выгодный условие . имя быть предложить сверхльготный условие сравнивать период газовый сотрудничество предыдущий президентство условие не_послать суть искусственно создать газовый кризис прискорбный пахнуть шантаж заявить . В газпром сообщить что обратиться стокгольмский международный арбитраж иск нафтогаза украина взыскание задолженность размер миллиард доллар . московский время газпром ввести режим предоплата поставка газа украина . нафтогаз украина подать иск газпром стокгольмский арбитраж . украинский компания требовать установление справедливый рыночный цена газ поставлять газпром страна . киев намеренный взыскать газпром переплата газ российский монополист поставлять нафтогаза украина год . оценка нафтогаза переплата составлять миллиард доллар . газпром перевести нафтогаз украина режим предоплата поставка российский газа . как быть прописать контракт решение вступить сила московский время . нафтогаз предложить еврокомиссия вернуться организация реверс газа словакия . В компания заверить что решение не_повлиять поставка российский газа европа . украина не_оплачивать поставлять россия газ начало год . объесть задолженность превышать миллиард доллар . сумма конец быть выплатить миллион доллар . украинский руководство выражать недовольство цена предлагать газпром . российский монополия установить стоимость тысяча кубометр газа киев уровень доллар . В первое квартал цена учёт скидка установленный год составлять доллар . причина отмена скидка стать неаккуратный выполнение украина обязательство оплата поставить газа . |ngramms нафтогаза_украина нафтогаза_украина нафтогаза_украина российский_газовый _ _ премьер_министр передавать_риа_новость цена_на_газ цена_на_газ быть_брать правительство_рф создать_газовый создать_газовый выгодный_условие быть_предложить заявить_ обратиться_в_стокгольмский международный_арбитраж миллиард_доллар миллиард_доллар миллиард_доллар ввести_режим поставка_газа нафтогаз_украина нафтогаз_украина украинский_компания российский_газа как_и_быть вступить_в_сила В_компания что_это_решение газа_в_европа задолженность_превышать быть_выплатить миллион_доллар установить_стоимость кубометр_газа В_первое_квартал причина_отмена +1095 |text нефтеперерабатывающий завод роснефть завершить масштабный комплекс технологический мероприятие позволить имя перейти производство автобензин дизельный топливо класс евро . опубликовать сайт компания . технический регламент таможенный союз установленный срок переход оборот внутренний рынок моторный топливо класс евро год . образ обязательство нк роснефть переход выпуск бензин дизельный топливо высокий экологический класс выполнить срок релиз . выпуск нефтепродукт класс евро переслать ангарский нефтехимический компания ачинский нпз комсомольский куйбышевский новокуйбышевский сызранский нпз рязанский нефтеперерабатывающий компания саратовский нпз . В компания подчёркивать что переход нефтеперерабатывающий завод производство топливо класс евро стать возможный благодаря реализация масштабный инвестиционный программа модернизация нпз . В год роснефть планировать произвести свыше миллион тонна автобензин миллион тонна дизельный топливо класс евро учёт объём производство нгк славнефть . россия последовательно ужесточать требование экологический стандарт регулировать содержание вредный примесь выхлопной газ . согласно технический регламент О требование выброс автомобильный техника вредный загрязнять вещество выпуск обращение автомобильный бензиновый дизельный топливо стандарт евро запретить год евро год . роснефть крупный мировой публичный нефтегазовый компания основный вид деятельность являться поиск разведка месторождение включая морской углеводород добыча нефть газа газовый конденсат переработка добыть сырьё . основной акционер доля процент акция государственный роснефтегаз процент акция владеть британский bp остаться процент находиться свободный обращение . |ngramms нефтеперерабатывающий_завод нефтеперерабатывающий_завод дизельный_топливо дизельный_топливо дизельный_топливо дизельный_топливо опубликовать_на_сайт_компания пресс_релиз таможенный_союз установленный_срок топливо_класс топливо_класс В_компания что_переход стать_возможный инвестиционный_программа планировать_произвести миллион_тонна миллион_тонна объём_производство экологический_стандарт содержание_вредный нефтегазовый_компания вид_деятельность разведка_месторождение добыча_нефть основной_акционер процент_акция процент_акция британский_bp свободный_обращение +1096 |text китайский частный авиакомпания xiamen airlines заключить твёрдый контракт покупка самолёт boeing dreamliner сообщать . стоимость покупка составлять миллиард доллар . самолёт компания получить год . предварительный соглашение быть подписать год компания год ждать одобрение правительство кнр . быть окончательно оформить текущий неделя . xiamen airlines стать компания китай начать использовать новый лайнер boeing . конец год самолёт быть поставить перевозчик china southern . xiamen быть использовать лайнер мечта дальнемагистральный рейс отправляться город сямынь провинция фуцзянить . В какой город сша европа быть летать лайнер не_определить . большой часть рейс европа северный америка китай отправляться аэропорт пекин шанхай гуанчжоу . город являться авиационный откуда пассажир разлетаться провинция кнр . основный перевозчик маршрут являться государственный авиакомпания air china china eastern airlines china southern hainan airlines . перегрузка дать аэропорт компания искать вариант место откуда можно быть летать континент обратно . делать китай чрезвычайно выгодный рынок дальнемагистральный самолёт вроде boeing boeing . семейство самолёт dreamliner быть представить год . лайнер мечта полностью новый авиалайнер boeing год . коммерческий использование самолёт существенно затормозиться разнообразный неполадка преследовать год . |ngramms частный_авиакомпания самолёт_boeing миллиард_доллар компания_получить предварительный_соглашение быть_подписать ждать_одобрение использовать_новый лайнер_boeing быть_поставить быть_использовать лайнер_мечта лайнер_мечта большой_часть северный_америка являться_государственный air_china быть_представить авиалайнер_boeing +1097 |text российский федеральный ядерный центр внииэф входить росатом приступить строительство город саров нижегородский область здание размещение сверхмощный лазерный установка передавать интерфакс . стоимость создание установка планироваться ввести эксплуатация год оцениваться миллиард рубль . понять масштаб здание где быть располагаться установка иметь площадь размер футбольный где быть лазерный канал приводить агентство слово генеральный конструктор лазерный система директор институт лазерно физический исследование российский федеральный ядерный центр . помимо российский федеральный ядерный центр внииэф всероссийский институт экспериментальный физика разработка проект центр протонный лучевой терапия лечение онкозаболевание нижний новгород стоимость миллиард рубль . лечебный учреждение войти состав нижегородский онкологический научный центр оснастить диагностический лечебный оборудование быть предусмотреть стационар пациент . лечение немой смочь проходить человек год позволить выполнять тысяча диагностический процедура ежегодно . В россия нет подобный клинический центр . дочерний компания росатом русатый оверсизый заявить строительство центр ядерный медицина регион страна . |ngramms российский_федеральный российский_федеральный российский_федеральный ядерный_центр ядерный_центр ядерный_центр ввести_в_эксплуатация миллиард_рубль миллиард_рубль где_быть где_быть приводить_агентство слово_генеральный _ научно_исследовательский разработка_проект нижний_новгород войти_в_состав быть_предусмотреть В_россия дочерний_компания центр_ядерный +1098 |text являться главное претендент покупка контрольный пакет акция крупный российский химический холдинг тольяттиазот писать forbes ссылка источник . слово летом согласовывать возможность сделка верх . добавить что нынешний владелец процентный пакет акция предприятие ситуация проблемный актив разруливать чужое интерес . источник издание говорят что помимо актив интересоваться . О что процент акция предприятие контролировать бывший президент калмыкия стать год . В интервью рбк подтверждать факт что выступить качество стратегический инвестор . холдинг уралхий владеть миноритарный пакет акция предприятие опровергать возможность совершение сделка продажа акция ссылаться что арестовать рамка расследование уголовный мошенничество . корпоративный конфликт тольяттиазот разгореться начало . В год компания synntech скупить рынок процент тольяттиазот что менеджмент завод заявить попытка рейдерский захват . спустя месяц основный собственник предприятие махлай сын быть возбудить уголовный итог проверка законность приватизация предприятие . В год махлай уехать жить граница поздний страна покинуть сын . итог расследование махлай признать невиновный приватизация законный . В уралхий мазепин выкупить процент акция тольяттиазот увеличить пакет процент . В появиться новое уголовный возбудить жалоба представитель не_допускать документация предприятие . В ход следствие менеджмент предприятие заподозрить мошенничество экспорт аммиак . подозревать стать махлай занимать пост председатель совет директор тольяттиазот . В конец год басманный суд москва заочно арестовать объявить международный розыск что forbes жить дубай махлай начать искать возможность выход проблемный ситуация . тольяттиазот предприятие химический промышленность россия входящий десятка крупный мир производитель аммиак . производственный мощность компания позволять выпускать миллион тонна аммиак год произвести миллион тонна тысяча тонна карбамид год . В год выручка предприятие составить миллиард рубль чистый прибыль миллиард . холдинг настоящее время вести строительство перегрузочный комплекс аммиак карбамид порту тамань краснодарский край стоимость миллион доллар . |ngramms __являться покупка_контрольный пакет_акция пакет_акция пакет_акция крупный_российский писать_forbes нынешний_владелец _ _ _ источник_издание помимо_ процент_акция процент_акция бывший_президент В_интервью стратегический_инвестор владеть_миноритарный сделка_по_продажа корпоративный_конфликт основный_собственник сын_ быть_возбудить приватизация_предприятие В_тот_же_год появиться_новое В_ход занимать_пост председатель_совет_директор В_конец суд_москва международный_розыск промышленность_россия крупный_в_мир производственный_мощность позволять_выпускать миллион_тонна миллион_тонна тысяча_тонна год_выручка предприятие_составить миллиард_рубль чистый_прибыль краснодарский_край миллион_доллар +1099 |text правительство рф выбрать качество оператор база дать услуга mnp центральный институт цниис сообщать интерфакс ссылка источник телекоммуникационный рынок . решение не_совпадать выбор министерство массовый коммуникация предлагать правительство назначить оператор база дать услуга mnp координационный центр национальный домен сеть интернет . как источник постановление правительство назначение оператор не_подписать . минкомсвязи очередь никак не_прокомментировать информация . цниис координационный центр государственный структура конкурировать право стать оператор база дать услуга mnp . минкомсвязи аргументировать выбор координационный центр указывать опыт технический возможность организация . В министерство предлагать не_выбирать оператор конкурс назначить распоряжение правительство что вызвать возражение оператор . оператор база дать услуга mnp быть обслуживать перенос номер оплатить создание необходимый база дать . ежегодный эксплуатация база оценивать миллион рубль быть компенсироваться счёт средство сотовый оператор быть платить рубль перенести номер . введение россия стандарт переносимость номер mnp планироваться осуществить год . отмечать что введение услуга мочь быть перенести месяц . оператор указывать что мочь полноценно готовиться mnp отсутствие официально утвердить оператор база дать . С предложение отменить мобильный рабство год выступить занимать пост президент . В год госдума соответствующий законопроект . |ngramms правительство_рф база_дать база_дать база_дать база_дать база_дать база_дать услуга_mnp услуга_mnp услуга_mnp услуга_mnp научно_исследовательский телекоммуникационный_рынок массовый_коммуникация назначить_оператор центр_национальный сеть_интернет постановление_правительство не_прокомментировать_информация государственный_структура стать_оператор В_министерство распоряжение_правительство что_вызвать быть_обслуживать перенос_номер оплатить_создание ежегодный_эксплуатация миллион_рубль сотовый_оператор перенести_номер вице_премьер _ что_введение мочь_быть что_не_мочь предложение_отменить выступить__ занимать_пост +1100 |text компания интарсия прокомментировать заявление ряд субподрядный организация ситуация реконструкция дом лев отель seasons . заявление быть сделать вынесение решение арбитражный суд москва взыскание девелоперский компания тристарый миллион рубль польза интарсия . В поступить редакция письмо что интарсия не_разрабатывать проектный документация тристарый инвестмент холдингс . генеральный проектировщик дать объект являться организация . что касаться исполнительный документация быть предоставить заказчик отказаться объяснение причина есть нотариально заверить свидетельство сообщение . указываться что большой часть работа предусмотренный контракт быть выполнить компания . подтверждаться разрешение ввод объект эксплуатация год выписка егрп заключение независимый эксперт привлечь суд . сообщаться что год тристарый подписать договор канадский гостиничный оператор seasons hotels resorts реставрация отель известный петербург особняк ростовский дом лев . В год строительный работа качество генподрядчик быть привлечь фирма интарсия . контракт быть расторгнуть что интарсия подать иск уплата миллион рубль миллион доллар работа реставрация дом лев . В очередь тристарый заявить встречный требование уменьшение стоимость фактически выполнить работа миллион рубль миллион доллар взыскание миллиард рубль миллион доллар штраф убыток срыв срок сдача объект . арбитражный суд москва завершить судебный разбирательство тристарое интарсия основать финансовый претензия сторона . |ngramms прокомментировать_заявление санкт_петербург быть_сделать арбитражный_суд_москва арбитражный_суд_москва миллион_рубль миллион_рубль миллион_рубль поступить_в_редакция проектный_документация что_касаться большой_часть быть_выполнить независимый_эксперт строительный_работа быть_привлечь В_свой_очередь выполнить_работа миллиард_рубль миллион_доллар срыв_срок судебный_разбирательство +1101 |text exxon mobil уведомить минэнерго россия что подать иск стокгольмский арбитражный суд требование изменить трактовка пункт соглашение раздел продукция срп сахалин часть налогообложение . газета ведомость сообщить министр энергетика новак . американский компания требовать возместить часть налог прибыль считать переплатить год . идти миллион доллар . exxon mobil качество компромисс предлагать возместить половина переплатить сумма дальнейший перейти расчёт налог ставка процент вместо нынешний процент . позиция россия заключаться что условие срп не_меняться период срок действие отмечать источник издание близкий сторона переговоры . москва готовить компромиссный вариант рассчитывать внесудебный урегулирование . exxon mobil не_обращаться суд истекать срок исковый давность . неделя москва переговоры вопрос приезжать президент компания договориться не_удаться . заверить что сворачивать бизнес россия exxon mobil не_собираться . новак поздний что вопрос снижение налог находиться рассмотрение правительство . сахалин выйти безубыточный уровень год год участник выплачивать налог прибыль ставка процент . россия год налог прибыль быть снизить процент . источник газета что exxon mobil пытаться добиться изменение ставка год . компания позиция сильно не_настаивать поскольку ситуация быть спокойный . ввести год санкция резко изменить . основной направление сотрудничество осень оказаться заморозить exxon mobil оценить убыток россия миллиард доллар месяц жёстко поднять вопрос налог . exxon mobil являться оператор проект сахалин владеть процент . партнёр американец являться японский sodeco процент роснефть процент индийский ongc процент . |ngramms минэнерго_россия подать_иск арбитражный_суд министр_энергетика американский_компания миллион_доллар источник_издание срок_исковый компания__ бизнес_в_россия быть_снизить источник_газета пытаться_добиться основной_направление миллиард_доллар оператор_проект +1102 |text чистый прибыль компания яндекс второе квартал год упасть процент сравнение аналогичный показатель прошлое год миллиард рубль . сообщение компания неаудировать финансовый итог . чисто бумажный снижение вызвать изменение курс доллар функциональный валюта яндекс являться российский рубль правило gaap изменение рублёвый стоимость актив обязательство номинировать валюта отражаться отчёт прибыль убыток сообщить лента . яндекс . В компания что показательный инвестор скорректировать чистый прибыль очистить влияние ряд бумажный фактор валютный вырасти второе квартал скорректировать чистый прибыль увеличиться что большой первое квартал год . выручка российский компания вышеуказанный период вырасти миллиард рубль процент сравнение аналогичный период год . выручка вычет вознаграждение партнёр вырасти процент миллиард рубль . операционный прибыль составить миллиард рубль что процент выше второе квартал год . скорректировать показатель ebitda увеличиться процент составить миллиард рубль . рентабельность операционный прибыть составить процент . |ngramms чистый_прибыль чистый_прибыль чистый_прибыль процент_по_сравнение_с_аналогичный прошлое_год миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль финансовый_итог изменение_курс являться_российский пресс_служба В_компания что_большой первое_квартал аналогичный_период операционный_прибыль процент_выше второе_квартал показатель_ebitda процент_и_составить операционный_прибыть +1103 |text российский бизнесмен приобрести процент акция национальный оператор ростелеком принадлежать фонд marshall capital . сообщать деловой . факт сделка подтвердить сторона . интерфакс покупатель пакет стать принадлежащий структура bellared holdings . как писать газета рбк совет директор ростелеком номинировать представитель новое акционер войти . сумма сделка не_раскрываться . рыночный стоимость пакет составлять миллиард рубль . коммерсантъ ссылка источник сообщать что запрашивать акция ростелеком рубль штука что четверть большой рыночный цена . как писать газета ведомость ссылка источник согласиться заплатить рубль акция . В случай сумма сделка составить миллиард рубль премия рынок процент . торг ценный бумага ростелеком московский биржа подорожать процент рубль штука . объесть торг резко увеличиться миллиард рубль . не_называть аркадия претендент пакет ростелеком . ведомость писать что переговоры повод покупка акция вести структура группа онэксим . В начало стать что верховный суд великобритания снять арест актив предприниматель наложить иск группа втб . суд решить что разбирательство российский компания проходить великобритания . В результат судебный процесс тянуться год быть арестовать зарубежный актив кипр британский виргинский остров . сообщаться что обеспечительный мера быть наложить структура цепочка промежуточный компания владеть пакет ростелеком . россия заявление втб вестись уголовный разбирательство . пакет ростелеком стать инвестиция телекоммуникация . значительный актив бизнесмен сосредоточить строительство . ростелеком являться крупный россия оператор компания абонентский база превышать миллион человек . ростелеком предоставлять услуга широкополосный доступ интернет фиксировать цифровой телевидение . контрольный пакет компания принадлежать государственный структура . |ngramms бизнесмен__ процент_акция _ _ _ _ сделка_подтвердить покупатель_пакет принадлежащий_ как_писать_газета как_писать_газета новое_акционер сумма_сделка сумма_сделка рыночный_стоимость миллиард_рубль миллиард_рубль миллиард_рубль рубль_за_штука рубль_за_штука четверть_большой рыночный_цена _согласиться ценный_бумага объесть_торг аркадия_ что_переговоры покупка_акция В_начало верховный_суд снять_арест группа_втб суд_решить что_разбирательство российский_компания В_результат судебный_процесс быть_арестовать зарубежный_актив уголовный_разбирательство значительный_актив являться_один_из_крупный миллион_человек предоставлять_услуга контрольный_пакет компания_принадлежать государственный_структура +1104 |text французский предприятие проект модернизация российский пассажирский самолёт sukhoi superjet ssj . заявить президент авиакосмический салон ле буржа эмирика дарсимоль выступать журналист москва сообщать новость . подробность проект сотрудничество французский российский авиастроитель президент ле буржа не_огласить . В объединить авиастроительный корпорация оак заявить что россия мочь появиться авиакомпания оперировать самолёт sukhoi superjet бизнес версия . версия суперджет принципиально отличаться коммерческий вариант лайнер очередь размер воздушный судный . оак являться производитель дать самолёт возлагать бизнес версия ssj большой надежда рассчитывать что занять специфический ниша бизнес малое самолёт . производитель самолёт ssj сообщить что мочь начать год продавать самолёт российский авиакомпания исходить рублёвый стоимость . крупный заказчик ssj являться аэрофлот . В год авиаперевозчик подписать контракт самолёт парка перевозчик самолёт ssj . большинство самолёт иметь комплектация full рассчитать пассажир двухклассный компоновка . sukhoi superjet производство гсс являться гражданский самолёт полностью разработать россия советский союз . коммерческий вариант лайнер способный перевозить пассажир расстояние километр . полёт лайнер совершить год . |ngramms пассажирский_самолёт sukhoi_superjet sukhoi_superjet sukhoi_superjet сообщать_риа_новость подробность_проект объединить_авиастроительный_корпорация мочь_появиться коммерческий_вариант коммерческий_вариант воздушный_судный являться_производитель большой_надежда самолёт_ssj самолёт_ssj мочь_начать российский_авиакомпания производство_гсс гражданский_самолёт полностью_разработать советский_союз лайнер_способный лайнер_совершить +1105 |text состояться церемония открытие мост река надым крупный искусственный сооружение транспортный инфраструктура уральский федеральный округа . сооружение включать однопутный железнодорожный двухполосный автомобильный дорога . сообщать корреспондент лента . . длина мост составлять метр длина пролётный строение метр . пропускной способность автомобиль сутки . объект обойтись миллиард рубль . пересечь река автомобиль украсить логотип корпорация развитие мостострой выступить роль реализатор идея . В мероприятие . . губернатор ямало ненецкий автономный округа губернатор тюменский область . . губернатор автономный округа генеральный директор ао корпорация развитие . ввод эксплуатация мост задавать начать формирование новый система транспортный обеспечение янао давать грандиозный возможность перспектива стратегический развитие регион россия . мост соединить западный восточный часть ямало ненецкий автономный округа обеспечить транспортный поддержка освоение приполярный территория россия . существовать договорённость основный грузоотправитель планировать осуществлять перевозка использование мостовый переход миллион тонна газовый конденсат нефтепродукт полезный ископаемое добывать месторождение ямал расположить строиться железнодорожный линия . В дальнейший магистраль порт полуостров ямал быть состыковать северный морской путём . мост быть сдать эксплуатация конец год инициатива месяц стройка вестись круглосуточный режим что позволить закончить строительство ранний наметить срок . инвестор строительство выступить ао корпорация развитие поддержка губернатор янао ориентировать выполнение проект реализовать интерес регион страна . реализация проект стать возможный решение правительственный комиссия инвестиционный проект год одобрить финансирование . мост являться ключевой частью магистраль северный широтный ход находиться личный контроль президент россия . |ngramms церемония_открытие транспортный_инфраструктура федеральный_округа автомобильный_дорога автомобиль_в_сутки миллиард_рубль корпорация_развитие корпорация_развитие корпорация_развитие автономный_округа автономный_округа автономный_округа _ _ _ _ _ область__ ханты_мансийский генеральный_директор социально_экономический мост_соединить обеспечить_транспортный территория_россия миллион_тонна железнодорожный_линия В_дальнейший порт_ северный_морской что_позволить закончить_строительство инвестор_строительство реализация_проект стать_возможный инвестиционный_проект являться_ключевой президент_россия__ +1106 |text группа онэксим большой месяц вести переговоры продажа дочка газпром компания мосэнерго энергетический актив квадра бывший тгк . номер писать газета ведомость ссылаться анонимный источник . вложиться энергетика год накануне кризис онэксим приобрести контрольный пакет квадра миллиард рубль . С пора акция компания значительно подешеветь капитализация квадра московский биржа составлять миллиард рубль что акция вырасти процент . наиболее значительный падение ценный бумага квадра пережить год пора не_смочь восстановиться . ведомость газпром готовый купить актив цена выше рыночный ненамного . образ инвестиция квадра не_принести прибыть актив дешёвый купить . В год пытаться квадра . покупатель выступить госкомпания интер рао подать заявка федеральный антимонопольный служба приобретение процент акция квадра . фас сделка заблокировать объяснить решение что сделка привести ограничение конкуренция возникновение доминировать игрок . не_исключить что претензия фас мочь возникнуть новый конфигурация сделка как энергокомпания газпром являться основный игрок российский рынок . квадра объединять десяток тэц теплосетевой компания центральный часть россия . девять меясец год выручка квадра составить миллиард рубль чистый убыток миллион рубль . |ngramms _ вести_переговоры писать_газета контрольный_пакет миллиард_рубль миллиард_рубль миллиард_рубль акция_компания наиболее_значительный ценный_бумага выше_рыночный покупатель_выступить подать_заявка федеральный_антимонопольный_служба процент_акция что_сделка мочь_возникнуть являться_основный часть_россия год_выручка чистый_убыток миллион_рубль +1107 |text горнодобывающий компания мечело договориться кредитор отсрочка погашение кредит миллиард доллар год . как официальный компания льготный период кредит продлить конец год . подсчёт специалист мечело соглашение банка втб societe generale unicredit позволить перенести выплата приблизительно миллион доллар год . акция мечело днём достигнуть исторический минимум новость соглашение кредитор начать растить . стоить рубль штука подняться выше отметка рубль . впрочем равно намного маленький рубль акция торговаться начало . В год обыкновенный ценный бумага мечело оцениваться тысяча рубль . мечело конец сообщать что договориться ковенантный каникулы кредит конец год . горнодобывающий компания контролировать считаться закредитовать российский промышленный предприятие цб временно отказаться облигация мечело качество обеспечение . газета ведомость год долг мечело вырасти процент . |ngramms миллиард_доллар пресс_релиз миллион_доллар рубль_за_штука подняться_выше ценный_бумага тысяча_рубль _ промышленный_предприятие +1108 |text филиал ингосстрах новосибирский область запустить проект продажа полис осаго магазин партнёр группа компания обувь россия . сообщаться страховщик . продажа осуществляться магазин сеть новосибирск . клиент мочь оплатить страховой премия полный объём единовременно мочь получить целевой микрозаесть месяц . что конец текущий год услуга оформление осаго быть работать сеть магазин обувь россия . российский союз автостраховщик средний стоимость полис осаго восемь месяц год вырасти тысяча рубль достигнуть тысяча рубль . В россия год существенно вырасти популярность микрокредитование . как объесть соответствующий рынок вырасти год процент . ингосстрах крупный российский компания входящая отрасль . организация иметь лицензия осуществление вид страхование предусмотренный законодательство перестрахование . В год суммарный объесть премия компания составить миллиард рубль . |ngramms новосибирский_область запустить_проект группа_компания обувь_россия обувь_россия пресс_релиз магазин_сеть мочь_получить текущий_год быть_работать сеть_магазин российский_союз средний_стоимость восемь_месяц тысяча_рубль тысяча_рубль В_россия существенно_вырасти рынок_вырасти год_суммарный миллиард_рубль +1109 |text бизнесмен дерипаск выйти совет директор компания русало где быть неисполнительный директор санкция сша . сообщение предприятие разместить сайт гонконгский биржа . подать отставка отмечаться заявление . господин дерипаск подтвердить что нет никакой разногласие совет что нет причина отставка нужно довести сведение акционер документ . вашингтон начало ввести санкция отношение российский бизнесмен компания чиновник госкорпорация . В список войти дерипаск русало en структура бизнесмен . поздний сша заявить готовность снять санкция русало случай дерипаск отказаться контроль компания . |ngramms бизнесмен_ совет_директор_компания санкция_сша разместить_на_сайт отмечаться_в_заявление нет_никакой ввести_санкция российский_бизнесмен топ_менеджер В_список структура_бизнесмен +1110 |text американский миллиардер советский происхождение блаватник нацелиться процент акция группа связной . номер писать газета ведомость ссылка источник знакомый деталь сделка . издание сумма покупка мочь составить миллион доллар . связной намеренный провести дополнительный эмиссия выручка планироваться разделить напополам . половина получить розничный сеть связной часть быть направить капитализация одноимённый банка . представитель блаватник группа связной не_прокомментировать информация . В газета рбк писать что банк связной искать инвестор . идти миллион доллар . информация поиск инвестор подтверждать банка имя потенциальный партнёр не_называть . состояние блаватник оцениваться миллиард доллар . В россия известный очередь как совладелец консорциум aar контролировать процент акция нефтяной компания . когда год роснефть закрыть сделка покупка блаватник получить доля семь миллиард доллар . какой цель потратить выручка продажа нефтяной компания не_сообщаться . одноимённый банк сотовый являться крупный актив группа связной . группа принадлежать основатель ноготкова процент . |ngramms происхождение_ процент_акция процент_акция писать_газета деталь_сделка сумма_покупка мочь_составить миллион_доллар миллион_доллар розничный_сеть что_банк потенциальный_партнёр состояние_ миллиард_доллар миллиард_доллар В_россия как_совладелец нефтяной_компания нефтяной_компания тнк_bp тнк_bp выручка_от_продажа являться_крупный актив_группа +1111 |text В мтс назвать абсурдный намерение абонент взыскать оператор миллиард рубль . радиостанция москва заявить оператор солодовник . перспектива иск представитель мтс комментировать отказаться подчеркнуть что видно что требование абсурдный чрезвычайно завысить . идти минута списать голосовой пакет абонент . начисление быть корректный подтвердить суд инстанция . крупный сервисный компания мочь столкнуться абсурдный требование абонент встретиться удивительный сумма вопрос абонент стараться решить внесудебный порядок заявить солодовник . слово оператор подобный случай история компания . стать что житель тамбов подать иск мтс компенсация моральный вред сумма миллиард рубль . В качество ответчик назвать правительство россия администрация тамбовский область . В конец год мичуринский городской суд отказать удовлетворение требование . поздний проиграть апелляция тамбовский областной суд что обратиться кассационный инстанция не_принять решение . как сообщаться материал суд абонент использовать тариф smart ежемесячно получать гигабайт минута звонок смс . версия истец год оператор сотовый незаконно списать минута включить тариф бесплатный звонок . |ngramms В_мтс миллиард_рубль миллиард_рубль пресс_секретарь пресс_секретарь комментировать_отказаться компания_мочь заявить_ _ В_качество В_конец городской_суд областной_суд материал_суд интернетом_трафик +1112 |text сбербанк рассматривать возможность работа платёжный сервис apple pay samsung pay . рамка международный инвестиционный форум сочи заявить журналист председатель правление сбербанк передавать корреспондент лента . . отказаться комментировать подробность возможный сотрудничество . samsung запустить сервис samsung pay позволять совершать платёж помощь новый смартфон компания год . расчёт товар клиент достаточно приложить гаджет считывать устройство касса магазин . дополнительный ключевой условие привязать сервис платёжный карта быть выдать банк поддерживать samsung pay . конкурент samsung выступать сервис apple pay запустить год доступный житель сша великобритания . похожий сервис название android pay готовить смартфон компания google . |ngramms рассматривать_возможность сервис_apple сервис_apple инвестиционный_форум заявить_журналист председатель_правление _ передавать_корреспондент отказаться_комментировать запустить_сервис смартфон_компания ключевой_условие платёжный_карта компания_google +1113 |text владелец шашлычный копейск челябинский область имя убрать рекламный плакат изображение шоумен . писать комсомольский правда челябинск . слово мужчина инцидент произойти интрига . где где галустянин . рассказать маленькая шашлычный небольшой городок предприниматель . хозяин кафе разместить изображение артист что уважать земляк . Я армянин армянин . быть приятно что есть талантливый человек . федеральный антимонопольный служба фас мочь обязать хозяин кафе выплатить штраф галустянин потребовать компенсация моральный вред убыток отмечать издание . связать что владелец шашлычный прилично сэкономить не_заключить артист официальный договор . управление фас челябинский область сообщить что ведомство обратиться галустянин . пожаловаться несанкционированный использование изображение реклама заведение быстрый питание . |ngramms имя_ _ инцидент_произойти что_есть федеральный_антимонопольный_служба мочь_обязать выплатить_штраф отмечать_издание управление_фас что_в_ведомство быстрый_питание +1114 |text российский автомобиль lada войти пятёрка продавать новый легковой машина украина итог ассоциация укравтопром . первое место занять французский автомобиль renault пройти месяц быть приобрести штука . следовать японский toyota авто . автопроизводитель увеличить продажа соответственно . пятёрка продавать украина легковушка войти nissan машина рост процент год lada штука рост процент skoda автомобиль рост процент . украинец купить тысяча новый легковой машина начало год тысяча . В россия продажа lada упасть процент тысяча машина свидетельствовать дать ассоциация европейский бизнес . финансовый итог работа производитель lada группа автоваз вызвать новый волна слух досрочный отставка гендиректор компания бу андерссон . автоваз крупный российский производитель легковой автомобиль . В год россия быть тысяча автомобиль lada рыночный доля марка вырасти процент процент прошлое . объесть выпуск автомобиль бренд lada renault nissan datsun выпускать концерн составить тысяча штука . министерство промышленность самарский область итог год тольяттинский автогигант намеренный сократить объесть выпуск машина процент тысяча автомобиль . |ngramms автомобиль_lada новый_легковой новый_легковой пресс_релиз первое_место_занять быть_приобрести японский_toyota увеличить_продажа В_россия продажа_lada тысяча_машина свидетельствовать_дать ассоциация_европейский_бизнес итог_работа новый_волна гендиректор_компания бу_андерссон крупный_российский легковой_автомобиль год_в_россия тысяча_автомобиль тысяча_автомобиль рыночный_доля выпуск_автомобиль тысяча_штука министерство_промышленность сократить_объесть выпуск_машина +1115 |text ослабление эмбарго часть сырьё детский питание мочь способствовать рост производительность российский перерабатывать предприятие пищевой промышленность . лента . рассказать заместитель председатель правление ассоциация производитель поставщик продовольственный товар руспродсоюз . слово экономически целесообразный сырьё быть переработать внутри страна вместо ввозить россия готовый продукция . сырьё детский питание отвечать достаточно жёсткий требование . качество цена выше продукт серийный массовый производство напомнить . добавить что снятие реальный риска ввоз обычный продукт вид сырьё детский питание нужный строгий механизм контроль . решение приниматься детальный оценка возможный отрицательный эффект совместно представитель отраслевой союз подчеркнуть . сообщаться что правительство россия решить облегчить режим продовольственный эмбарго разрешить ввоз страна говядина мясо птица овощ заморозить сушёный . продукт можно быть ввозить россия случай подтверждение целевой назначение . минсельхоз определить разрешить объесть поставка сырьё основа анализ потребность производитель детский питание . быть учитываться производство необходимый сырьё россия территория страна не_попасть эмбарго . |ngramms способствовать_рост заместитель_председатель_правление _ жёсткий_требование цена_выше массовый_производство напомнить_ подчеркнуть_ правительство_россия можно_быть объесть_поставка детский_питание +1116 |text российский госмонополия не_смочь скрывать общественность информация расход инвестпрограмма помощь коммерческий тайна . как сообщать заявить министр открытый правительство . соответствующий изменение предстоять прописать федеральный законодательство . слово монополия смочь скрывать общественный контроль информация относиться государственный тайна . рассказать что монополия быть создать специальный комитет инвестиция куда войти представитель потребитель . комитет стать площадка обсуждение инвестпрограмма компания . регламент рассмотрение инвестпрограмма планироваться выработать год . контроль расход монополия инвестпрограмма являться частью кампания повышение прозрачность организация подконтрольный государство . В рамка кампания быть создать единый информационный ресурс открытый доступ разместить информация расход тариф монополия . О необходимость повысить прозрачность госкомпания заявлять президент . В глава государство поручить общероссийский народный фронт заняться контроль закупка госмонополия государственный закупка . В год недовольство наращивание расход инвестиция выразить минэкономразвития . писать газета известие ссылка источник экономический ведомство . министерство проанализировать расход инвестиция газпром росэнергоатом ржд русгидро холдинг мрск фск пришлый вывод что средство расходоваться неэффективно . компания электроэнергетический отрасль быть признать как неэффективный . холдинг мрск тратить строительство километр воздушный линия высокий напряжение миллион рубль как сша аналогичный расход компания составлять миллион рубль . |ngramms как_сообщать заявить_министр _ соответствующий_изменение _рассказать быть_создать быть_создать куда_войти являться_частью подконтрольный_государство В_рамка единый_информационный премьер_министр президент__ глава_государство писать_газета экономический_ведомство быть_признать миллион_рубль миллион_рубль +1117 |text потомок основатель сеть супермаркет walmart уолтон владеть капитал миллиард доллар что являться крупный состояние представитель семья подсчитать bloomberg . суммарный актив богатый клан современность составлять триллион доллар . положение уолтон не_измениться спад начало год когда акция упасть процент фон слабый отчётность . состояние семья сократиться миллиард доллар . второе место брат основатель совладелец нефтехимический корпорация koch industies . имя принадлежать миллиард доллар . В начало объявить уход совет директор компания проблема здоровье . третье место занять потомок основатель компания mars производить одноимённый шоколадный батончик продукт . собственность оцениваться миллиард доллар . десятка войти бельгийский семья владеть пивоваренный компания anheuser busch inbev наследник основатель модный бренд hermes владелец chanel брат индийский владелец промышленный группа reliance industries семья принадлежать bmw семейство владеть корпорация cargill . немецкий хозяин фармацевтический компания boehringer ingelheim . источник богатство разнообразный масштаб поражать большой рыночный капитализация apple депозит citigroup ввп индонезия писать автор рейтинг . |ngramms основатель_сеть миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар являться_крупный триллион_доллар _и__ _и__ В_начало _ _ _ совет_директор_компания третье_место_занять основатель_компания пивоваренный_компания промышленный_группа семья_ рыночный_капитализация +1118 |text концерн пво алмаз обжаловать административный судебный порядок санкция ввести евросоюз отношение предприятие год . компания поступить редакция лента . . концерн подать обращение генеральный секретариат совет ес требование пересмотр оценка фактический обстоятельство предоставление доказательство иной информация основание совет ес решение включение алмаз санкционный список . В административный порядок обжаловать решение касаться замораживание имущество предприятие запрет экспорт продукция двойной назначение . включение концерн санкционный список являться необоснованный нарушать основополагающий право гарантировать хартия основный право ес пояснить генеральный директор предприятие . подчеркнуть что алмаз не_поставлять вооружение территория украина . иной доказательство причастность дестабилизация ситуация украина совет ес не_представить добавить . санкция сектор российский экономика быть ввести сша евросоюз ряд страна год фон присоединение крым россия позиция москва конфликт восток украина . ограничение попасть ряд компания российский опк включая корпорация алмаз концерн нпо ижмаш нпо базальт уралвагонзавод оао концерн радиоэлектронный технология концерн созвездие нпо машиностроение оао конструкторский бюро приборостроение . концерн пво алмаз быть создать год путём объединение единый структура предприятие заниматься разработка производство зенитный ракетный вооружение радиолокационный средство автоматизированный система управление . укрупнение концерн войти предприятие . |ngramms судебный_порядок ввести_евросоюз пресс_релиз поступить_в_редакция совет_ес совет_ес совет_ес санкционный_список санкционный_список обжаловать_решение экспорт_продукция право_ес генеральный_директор _ ситуация_на_украина добавить_ российский_экономика быть_ввести год_на_фон присоединение_крым год_путём система_управление +1119 |text покупка трансаэро создание основа флот авиакомпания новое перевозчик заинтересоваться малайзийский правительственный фонд реструктурировать долг malaysia airlines . сообщать коммерсантъ . представитель фонд провести встреча руководство минтранс рассказать президент российский инвестиционный агентство . слово крупный банка кредитор авиакомпания сбербанк вэб втб поддержать намерение малайзийский инвестор . В настоящее время как заявить рассматриваться вариант . покупка процент акция трансаэро дальнейший передача половина актив управление . покупка часть флот авиакомпания основа быть создать новый перевозчик . авиакомпания быть обслуживать как направление трансаэро маршрут индия китай азия . структура собственность случай быть как случай покупка . В начало минтранс состояться новый встреча сообщить президент . добавить что покупка авиакомпания интересоваться арабский фонд . В минтранс трансаэро официально не_прокомментировать информация . вечером стать что гендиректор совладелец группа подписать акционер трансаэро соглашение продажа процент акция трансаэро . поздний подтвердить что намеренный завершить сделка несмотря отзыв сертификат эксплуатант авиакомпания . кризис трансаэро связать высокий нагрузка фон падение спрос авиаперелёт . перевозка пассажир компания продолжиться сила группа аэрофлот российский перевозчик . С услуга трансаэро воспользоваться миллион человек . |ngramms флот_авиакомпания флот_авиакомпания новое_перевозчик президент_российский _ _ крупный_банка В_настоящее_время как_заявить процент_акция процент_акция создать_новый юго_восточный В_начало сообщить_президент что_покупка В_минтранс официально_не_прокомментировать __подписать соглашение_о_продажа что_намеренный завершить_сделка сертификат_эксплуатант _нагрузка перевозка_пассажир российский_перевозчик миллион_человек +1120 |text лукойл обсуждать возможность расформирование зарубежный подразделение компания лукойл оверсизый писать ведомость . издание добавлять что окончательный решение не_принять . вместо лукойл оверсизый мочь быть создать отдельный департамент структура лукойл . оценка как можно оптимизировать бизнес процесс дочка нефтяной компания заниматься группа kpmg . источник ведомость близкий лукойл оверсизый отмечать что большинство контракт сотрудник подразделение заключить год начать массово истекать год . лукойл обсуждаться вариант не_продлевать контракт получить международный опыт сотрудник вернуться центральный офис . лукойл оверсизый быть создать год время лукойл работать азербайджан казахстан египет ирак . компания есть проект гана кот ивуаре камерун норвегия румыния саудовский аравия узбекистан . центральный офис лукойл оверсизый год находиться дубай располагаться москва . В год зарубежный проект принести лукойл миллиард доллар убыток миллиард доллар совокупный чистый прибыть миллиард доллар составить списание сухой скважина убыток обесценение актив . доля зарубежный проект приходиться процент добыча нефть лукойл процент добыча газа . |ngramms топ_менеджмент обсуждать_возможность окончательный_решение мочь_быть_создать как_можно нефтяной_компания что_большинство центральный_офис центральный_офис компания_есть зарубежный_проект зарубежный_проект миллиард_доллар миллиард_доллар миллиард_доллар чистый_прибыть добыча_нефть добыча_газа +1121 |text концерн airbus опровергнуть сведение намерение приобрести доля российский холдинг вертолёт россия . сообщать воскресение . представитель европейский компания пояснить агентство что airbus group следить потенциальный изменение конкурентный как следствие неформально наводить справка объявление продажа акция российский холдинг . намерение сделать предложение покупка не_выражаться . О что airbus мочь поучаствовать приватизация холдинг вертолёт россия принадлежащий структура госкорпорация ростёха заявить министр экономический развитие россия . уточнять что акция компания планироваться стратегический инвестор организация приватизация заняться минпромторг . В министр промышленность торговля мантур объявить что российский власть принципиальный решение приватизация вертолёт россия год . отмечать что стратегический инвестор россия мочь быть процент акция иностранный процент . возможный комбинация инвестор . министр подчёркивать что приоритетный являться цена инвестор развитие модернизационный процесс . холдинг вертолёт россия создать год настоящее время считаться ведущий организация производство вертолётный техника мир . год ipo компания быть отменить невозможность получить объективный оценка стоимость акция . |ngramms концерн_airbus российский_холдинг российский_холдинг вертолёт_россия вертолёт_россия вертолёт_россия вертолёт_россия представитель_европейский компания_пояснить airbus_group как_следствие сделать_предложение что_airbus структура_госкорпорация министр_экономический_развитие россия__ акция_компания стратегический_инвестор стратегический_инвестор промышленность_и_торговля _мантур российский_власть процент_акция ipo_компания быть_отменить стоимость_акция +1122 |text генеральный директор компания infowatch объяснить принцип работа система перехват телефонный разговор офис . как рассказать интервью коммерсантъ fm технический решение призвать защитить компания утечка дать . слово система представлять некий виртуальный сота перехватывать звонок проходить называть белый список заранее задать работодатель . впоследствии разговор помощь система распознавание быть переводиться текст анализироваться ключевой слово выражение . сотрудник быть обсуждать террористический атака диалог перехватиться быть обсуждать борщ обед наверное сообщение не_перехватиться уточнить . глава infowatch подчеркнуть что перехват звонок не_стоить расценивать как прослушок . технический решение где слушать робот . А робот нет ухо слушать . есть факт слушание как таковой нет что нет субъект прослушивать . теоретически переговоры писаться некоторый носитель диалог вызывать интерес можно прослушать . И смысл стать прослушка постфактум . советник президент россия проблема интернет заявить что система контроль переговоры сотрудник компания мобильный телефон противоречить закон . напомнить что прослушок разговор являться уголовный преступление мочь осуществляться санкция правоохранительный орган . аналогичный мнение придерживаться госдума . В кремль заявить что вопрос законность перехват прослушивание компания разговор сотрудник решаться предприниматель контролировать орган . газета коммерсантъ сообщить что компания infowatch разработать решение защита организация утечка дать давать возможность перехватывать разговор сотрудник мобильный телефон время нахождение офис . слово производитель устройство являться сторонний организация раскрыть партнёр отказаться . заказчик пояснить быть рекомендовать работа устройство режим выборочный контроль исключительно корпоративный sim карта . |ngramms генеральный_директор_компания _ принцип_работа телефонный_разговор рассказать_в_интервью технический_решение технический_решение быть_обсуждать президент_россия __заявить сотрудник_компания мобильный_телефон мобильный_телефон правоохранительный_орган аналогичный_мнение В_кремль что_вопрос что_компания защита_организация давать_возможность разговор_сотрудник производитель_устройство раскрыть_партнёр быть_рекомендовать работа_устройство исключительно_корпоративный +1123 |text росавиция аннулировать сертификат эксплуатант чартерный авиакомпания башкортостан . сообщаться ведомство . В сообщение агентство воздушный транспорт отмечаться что протяжение деятельность перевозчик располагать авиапарк состоять boeing конец год флот быть сократить самолёт . В итог компания перестать соответствовать требование авиационный правило рф . росавиция минувший приостановить действие сертификат соответствие требование эксплуатант . месяц согласно требование авиационный правило лицензия аннулировать . перевозчик башкортостан входить группа вим . В материнский компания прекращение деятельность дочка объяснить коммерческий целесообразность . самолёт башкортостан быть передать авиапарк вим . флот вим состоять самолёт boeing . итог год компания перевезти миллион пассажир . сравнение крупный российский авиакомпания аэрофлот период перевезти миллион пассажир . |ngramms сертификат_эксплуатант пресс_релиз В_сообщение воздушный_транспорт быть_сократить В_итог соответствовать_требование авиационный_правило авиационный_правило приостановить_действие согласно_требование входить_в_группа прекращение_деятельность быть_передать самолёт_boeing миллион_пассажир миллион_пассажир крупный_российский_авиакомпания +1124 |text россельхозбанк рсхб продемонстрировать уверенный финансовый результат итог год показать рост кредитный портфель выше среднее уровень рынок триллион рубль . сообщаться годовой финансовый отчётность международный стандарт . кредитный портфель удаться нарастить пройти год процент фон увеличение спрос банковский услуга сторона предприятие российский апк восстановление отечественный экономика . В кредитный портфель юрлицо увеличиться процент превысить триллион рубль портфель физлицо прибавить процент составить миллиард рубль . актив банка состояние год превысить триллион рубль прирост составить процент . эксперт высоко оценивать динамик показатель банка объяснять взвесить эффективный политика менеджмент . В доктор экономический наука профессор кричевский назвать финансовый итог работа банка год выдающийся . когда банк пришлый новый команда ситуация быть катастрофический . фактически быть разграбить банк . зря бывший банка заёмщик возбудить десятка уголовный некоторый довести суд . И когда пришлый команда вопрос стоялый спасение ликвидация банка . год работа человек ситуация выправиться кардинально . эксперт обратить внимание высокий рост кредитный портфель банка среднее рынок процент процент среднерыночный . существенный динамик привлечение клиентский средство . депозит вклад вырасти процент . Я нисколько не_удивляться что россельхозбанк опорный финансовый институт аграрный комплекс главный что банк состояние кредитовать предлагать хороший условие человек получить кредит кричевский . итог год депозит остаток счёт клиент рсхб достигнуть триллион рубль . В объём привлечь ресурс доля клиентский средство возрасти процент . показатель долгосрочный ликвидность россельхозбанк очередной стать рекордный соотношение кредит депозит составить процент процент аналогичный период год . продолжиться снижение доля средство привлечь международный рынок капитал совокупный обязательство банка . год уменьшиться процент состояние конец год . прошлое год банка удаться погасить еврооблигация субординировать кредит объём эквивалентный миллиард рубль . В цель реализация задача область финансовый поддержка агропромышленный комплекс расширение кредитование приоритетный отрасль определённый стратегия развитие банка акционерный капитал быть увеличить миллиард рубль . докапитализация банк акционер обычный мировой практика . вливание капитал позволять имя увеличивать объём бизнес . У рсхб акционер государство поддерживать банк понимать что вложить капитал рубль позволить увеличить финансирование реальный сектор экономика страна подчёркивать кричевский . В отчётный год банк поддерживать высокий операционный эффективность . чистый процентный доход увеличиться год процент миллиард рубль . банк продолжить повышать эффективность затрата сократить отношение расход чистый операционный доход создание резерв cost income процент процент год . В целое мнение кричевский дальнейший развитие банка быть идти поступательный направление Я знать команда верить сила опыт приобретать . |ngramms финансовый_результат показать_рост кредитный_портфель кредитный_портфель кредитный_портфель кредитный_портфель триллион_рубль триллион_рубль триллион_рубль триллион_рубль финансовый_отчётность международный_стандарт удаться_нарастить банковский_услуга отечественный_экономика миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль актив_банка год_превысить прирост_составить доктор_экономический профессор_ итог_работа топ_менеджер И_когда _ финансовый_институт что_банк хороший_условие получить_кредит привлечь_ресурс стать_рекордный аналогичный_период снижение_доля рынок_капитал совокупный_обязательство банка_удаться В_цель реализация_задача финансовый_поддержка стратегия_развитие акционерный_капитал быть_увеличить объём_бизнес позволить_увеличить сектор_экономика В_отчётный год_банк поддерживать_высокий процентный_доход банк_продолжить отношение_расход операционный_доход В_целое дальнейший_развитие быть_идти Я_знать +1125 |text анкорбанк принадлежащий основатель кондитерский фабрика ввести ограничение выдача вклад тысяча рубль . как сообщать rambler service ограничение касаться отделение банка город присутствие москва казань уфа чебоксары . В финансовый учреждение пояснить что введение мера вызвать проблема ликвидность . восстановление требовать уровень ликвидность банк намеренный полный объём исполнять требование клиент заверить банка мочь согласно действующий порядок подать заявление отделение полный истребование вклад . отдельный заявление быть рассмотреть дать ответ возможность полный выплата . анкорбанк занимать место российский банковский система величина чистый актив миллиард рубль . коркун год заняться проект недвижимость год избавиться кондитерский фабрика . В годe совместно партнёр приобрести казанский банк татэкобанк возглавить совет директор . В год банк переименовать анкор . банк сбережение . В год предприниматель занять должность президент банка . |ngramms кондитерский_фабрика кондитерский_фабрика _ тысяча_рубль как_сообщать rambler_news_service ограничение_касаться финансовый_учреждение что_введение исполнять_требование согласно_действующий подать_заявление быть_рассмотреть место_в_российский банковский_система чистый_актив миллиард_рубль совет_директор год_банк занять_должность +1126 |text заместитель глава кремлёвский администрация прокомментировать информация грядущий назначение должность председатель совет директор росатом передавать новость . Я не_принимать решение почему спрашивать ? комментарий . У есть работа хватать . В газета ведомость ссылка источник сообщить возможный назначение главый набсовет росатом вместо . информация издание назначение состояться неделя . вполне логично быть заменить . нужно сохранить преемственность беседа ведомость высокопоставленный чиновник администрация президент . источник госкорпорация что перестановка не_произойти что не_подыскать новый должность . официальный комментарий кремль росатом газета не_располагать . возглавить наблюдательный совет росатом год месяц покинуть пост спикер госдума занимать . В год быть назначить полномочный представитель россия контактный группа урегулирование ситуация украина . назначить заместитель руководитель администрация президент год . С возглавлять госкорпорация росатом год федеральный агентство атомный энергия база поздний быть создать корпорация . |ngramms _ _ председатель_совет_директор передавать_риа_новость сообщить_о_возможный назначение_ заменить_ администрация_президент администрация_президент новый_должность официальный_комментарий _возглавить покинуть_пост год_быть представитель_россия ситуация_на_украина федеральный_агентство атомный_энергия быть_создать +1127 |text В перечень системообразующий предприятие федеральный уровень мочь быть оказать поддержка рамка антикризисный мероприятие войти компания . сообщать агентство ссылка замглавы минэкономразвития рф курировать министерство промышленный политика . список не_расшириться сравнение год содержание быть сильно отличаться чиновник . В войти вертикально интегрировать компания . федеральный перечень быть актуализировать ближний время не_стоить думать что наградной лист . федеральный список предприятие слово замминистра отраслевой список предприятие представить минпромторг . глава минпромторг мантур сообщить журналист что статус системообразующий получить мечело что спровоцировать рост акция компания . отдельный перечень системно значимый компания сформировать регион . президент россия одобрить антикризисный план подготовить правительство страна . объесть антикризисный резерв сформировать бюджет составлять миллиард рубль . |ngramms В_перечень рф__ промышленный_политика перечень_быть список_предприятие список_предприятие _мантур сообщить_журналист акция_компания президент_россия__ правительство_страна миллиард_рубль +1128 |text россельхозбанк объявить финансовый результат квартал год соответствие международный стандарт финансовый отчётность сообщить лента . кредитный организация . как показывать отчётность первое квартал год банк продолжить формировать качественный кредитный портфель корпоративный розничный сегмент обеспечивать фондирование деятельность . удаться достигнуть счёт расширяться клиентский база привлечение ресурс внутренний финансовый рынок . результат проделать работа стать рост кредитный портфель финансовый показатель выход чистый прибыль . кредитный портфель банка вычет резерв отчётный период увеличиться процент превысить отметка триллион рубль . кредитный портфель юридический лицо сравнение конец год вырасти процент составить триллион рубль . особенно важный программа льготный ипотека отмечать доктор экономический наука профессор кричевский . учитывать что четверть население страна жить сель кома как рсхб заниматься ипотечный кредитование сельский местность . жить нужно ипотека как предоставлять возможность человек . естественно рсхб кто прийти селянин помощь . И приходить . С сторона идти приток депозит что человек верить государственный банка . А сторона кредитный портфель население начало год увеличиться процент миллиард рубль подчеркнуть эксперт . размер актив россельхозбанк конец первое квартал год составить триллион рубль показать уменьшение квартал процент . эксперт объяснять разовый эффект запуск новое стандарт ifrs . практически банковский сектор быть определённый изменение бухгалтерский отчётность отразиться финансовый показатель аналитик . слово быть преобразование что кредитный учреждение быть учитывать риска фактически возникнуть задолженность попадать категория высоко рискованный . крупный игрок проблема сбер втб рсхб тд . как обычно бывать переход новое стандарт отчётность показатель меняться относительно предыдущий что новое требование потребовать цифра резерв . В реальный выражение актив кредитный организация вырасти миллиард рубль . депозит остаток счёт клиент вырасти миллиард рубль составить триллион рубль . средство юридический лицо снизиться миллиард рубль миллиард рубль произойти плановый выбытие средство ряд крупный клиент интенсивный рост клиентский средство предыдущий год . средство физический лицо вырасти миллиард рубль миллиард рубль . доля клиентский средство объём привлечь ресурс увеличиться конец первое квартал год процент соотношение кредит депозит loan deposit ratio составить процент . доля средство привлечь международный рынок капитал совокупный обязательство банка сократиться процент . средство цб пассив группа уменьшиться процент миллиард рубль . В отчётный период банк смочь поддержать рост доходность бизнес . чистый процентный доход увеличиться процент миллиард рубль сравнение показатель миллиард рубль месяц год . рост чистый комиссионный доход сравнение аналогичный период год составить процент миллиард рубль . отношение расход чистый операционный доход создание резерв cost income составить процент процент конец первое квартал год . банк выходить прибыльность что год фантастика . структура старт оздоровление доля проблемный кредит составлять независимый оценка порядок процент есть стартовый позиция серия худой не_придумать огромный достижение отмечать кричевский . важный показатель норматив достаточность капитал Н . уточнять профессор . норматив процент рсхб процент . надо что большинство банк балансировать грань показывать максимум процент повезти . А процент нынешний условие достойный результат уверенный кричевский . |ngramms финансовый_результат международный_стандарт финансовый_отчётность пресс_служба кредитный_организация кредитный_организация как_показывать год_банк кредитный_портфель кредитный_портфель кредитный_портфель кредитный_портфель кредитный_портфель удаться_достигнуть финансовый_рынок финансовый_показатель финансовый_показатель чистый_прибыль отчётный_период отчётный_период триллион_рубль триллион_рубль триллион_рубль триллион_рубль юридический_лицо юридический_лицо процент_и_составить особенно_важный доктор_экономический профессор_ население_страна год_увеличиться миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль подчеркнуть_эксперт размер_актив первое_квартал первое_квартал первое_квартал год_составить год_составить запуск_новое банковский_сектор _ кредитный_учреждение крупный_игрок как_обычно новое_стандарт новое_требование В_реальный ряд_крупный предыдущий_год физический_лицо привлечь_ресурс доля_средство рынок_капитал совокупный_обязательство процентный_доход сравнение_с_аналогичный_период отношение_расход операционный_доход +1129 |text ассоциация туроператор россия атор подсчитать новогодний тур египет . компания период турист приобрести примерно тысяча путёвка . разместить сайт атор . В год египетский курорт ежемесячно отдыхать тысяча российский турист средний стоимость путёвка доллар человек . окончательный оценка объём аннулировать перебронировать отложить тур приостановка авиасообщение египет туроператор обещать сделать . атор направить аркадия письмо изложить предложение поддержка туристический бизнес ситуация египет . туроператор предварительно оценивать потеря случай продление запрет полёт страна месяц миллион доллар . проходить совещание оперативный штаб создать временной прекращение полёт россия египет . состояться совещание ростуризм представитель атор посвятить подготовка предложение поддержка туристический бизнес отмечаться сообщение . заявить что ближний время быть обсуждаться возможность поддержка туристический бизнес турист не_выехать египет подчеркнуть атор . В настоящее время рассматриваться различный вариант включая расширение программа поддержка внутренний туризм . российский союз туриндустрия рст предупреждать возможный банкротство туроператор возврат деньга путёвка турист не_полететь египет прервать отпуск страна . запрет полёт египет вступить сила вечером . часы президент россия рекомендация национальный антитеррористический комитет нак поручить правительство отработать механизм приостановка полёт российский авиакомпания египет выяснение причина гибель лайнер авиакомпания когалымавиа . туроператор начать приостанавливать продажа путёвка египет предлагать замена тур курорт турция кипр ростуризм создать специальный штаб организация вывоз российский турист страна . самолёт airbus российский авиакомпания когалымавиа metrojet разбиться синайский полуостров год . находиться борт человек погибнуть . предварительный самолёт развалиться часть находиться воздух . версия произойти являться теракт . |ngramms ассоциация_туроператор пресс_релиз В_это_год российский_турист российский_турист средний_стоимость отложить_тур обещать_сделать вице_премьер аркадия_ поддержка_туристический поддержка_туристический поддержка_туристический миллион_доллар временной_прекращение отмечаться_в_сообщение _заявить быть_обсуждаться В_настоящее_время различный_вариант расширение_программа российский_союз банкротство_туроператор вступить_в_сила президент_россия__ поручить_правительство приостановка_полёт российский_авиакомпания российский_авиакомпания создать_специальный самолёт_airbus находиться_на_борт человек_погибнуть +1130 |text акция apple установить новый рекорд стоимость биржа nasdaq дойти ход торговый отметка доллар бумага . свидетельствовать дать биржа . год apple провести разбивка акция семь ценный бумага . С учёт сплит акция apple установить абсолютный рекорд стоимость . закрытие торг nasdaq акция apple стоить доллар . рыночный капитализация apple рассчитать основа новое рекорд впервые история компания превысить миллиард доллар составить миллиард доллар . отметка миллиард доллар капитализация пора не_пересекать американский компания . закрытие торг капитализация apple снизиться миллиард доллар . сравнение капитализация конкурент microsoft оцениваться примерно миллиард доллар google миллиард доллар . рыночный стоимость компания мир нефтяной гигант exxon mobil стоить примерно миллиард доллар . ценный бумага apple расти фон прогноз эксперт рекордный спрос смартфон iphone iphone предпраздничный сезон ожидание выход рынок первое носить устройство apple умный часы apple watch . несмотря миллиардер инвестор активист икан считать котировка акция apple примерно вдвое низкий следовать финансовый позиция . мнение икан акция apple стоить доллар . |ngramms акция_apple акция_apple акция_apple акция_apple акция_apple новый_рекорд свидетельствовать_дать ценный_бумага ценный_бумага С_учёт рекорд_стоимость рыночный_капитализация компания_превысить миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар американский_компания капитализация_apple рыночный_стоимость смартфон_iphone выход_на_рынок активист_ +1131 |text год российский компания выпустить облигация триллион рубль . свидетельствовать опубликовать результат исследование ресурс cbonds . прошлое год быть совершить выпуск ценный бумага . значительно превышать результат год когда быть провести выпуск облигация сумма триллион рубль . образ год долговой нагрузка корпоративный сектор вырасти процент . наиболее активно компания выходить рынок год когда эмитент получить инвестор миллиард рубль . В реальный сектор экономика лидер занять средство оказаться ржд увеличить долговой нагрузка миллиард рубль фск еэс выпустить облигация миллиард рубль . госкомпания размещать инфраструктурный облигация основный покупатель стать пенсионный фонд . роснефть год помощь семь выпуск облигация привлечь миллиард рубль . итог год муниципальный заёмщик разместить облигация миллиард рубль . миллиард большой год . наиболее активно занимать московский власть привлечь миллиард рубль . регион лидировать красноярский край чей задолженность год увеличиться одиннадцать миллиард рубль воронежский нижегородский область привлечь десять миллиард рубль . год российский рынок обязательство включая еврооблигация муниципальный региональный облигация корпоративный ценный бумага еврооблигация увеличиться процент достигнуть триллион рубль писать номер газета коммерсантъ . лидерство инвестбанк организовать выпуск облигация год принадлежать втб капитал . провести сделка квота миллиард рубль . второе место оказаться газпромбанк чей квота составить миллиард рубль . замыкать ведущий тройка инвестиционный подразделение сбербанк сбербанк cib . |ngramms российский_компания триллион_рубль триллион_рубль триллион_рубль результат_исследование быть_совершить ценный_бумага ценный_бумага быть_провести выпуск_облигация выпуск_облигация выпуск_облигация наиболее_активно наиболее_активно миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль В_реальный сектор_экономика пенсионный_фонд московский_власть красноярский_край российский_рынок втб_капитал инвестиционный_подразделение +1132 |text волжский автозавод приступить выпуск удешевить версия lada priora передавать . максимально упрощённый версия машина получить название стандарт . автомобиль оснастить подушка безопасность ходовой огонь abs крепление детский кресло . обеднение комплектация популярный российский рынок седан связать стремление избежать внутрибрендова конкуренция новый флагман автоваз lada vesta . первоначально планироваться что lada priora быть снятой конвейер начало производство vesta год стать что автоваз не_стать убирать priora модельный ряд объём производство мочь значительно сократиться машина существенно подешеветь . появиться информация что автоваз текущий год мочь уменьшить объесть производство процент . министерство промышленность технология самарский область запланировать выпуск тысяча автомобиль год автоконцерн произвести тысяча машина . российский представительство renault официально подтвердить уход шведский бу андерссон пост президент волжский автозавод . глава госкорпорация ростёха чемезов вменить вина чрезмерный увлечение закупка иностранный комплектовать отечественный машина что привести рекордный убыток миллиард рубль . |ngramms получить_название lada_vesta первоначально_планироваться быть_снятой производство_vesta объём_производство значительно_сократиться появиться_информация тысяча_автомобиль тысяча_машина российский_представительство топ_менеджер бу_андерссон пост_президент глава_госкорпорация иностранный_комплектовать миллиард_рубль +1133 |text страховка разбиться египет российский пассажирский самолёт авиакомпания когалымавиа покрывало риска возможность теракт . как сообщать журналист рассказать генеральный директор страховой компания ингосстрах . уточнить что риск каско быть перестраховать международный рынок . В время что авиакатастрофа мочь оказаться сложный случаем российский история . В ингосстрах быть застраховать как разбиться лайнер ответственность когалымавиа пассажир . максимальный страховой выплата пассажир стать жертва авиакатастрофа составлять миллион тысяча рубль . страховой компания начало упрощённый режим выплачивать семья погибший аванс размер тысяча рубль пассажир . средство предназначить неотложный расход перечисляться помимо установленный закон выплата . получение родственник жертва нужно предоставить заявление указание форма выплата паспорт документ свидетельствующий родство погибший . минздрав россия сообщить завершение экспертиза останки погибший авиакатастрофа . В слово министр здравоохранение вероника скворцовый специалист проводить работа подтверждение принадлежность биоматериал . фрагмент тело быть доставить центр экспертиза москва . airbus когалымавиа лететь шарм разбиться синайский полуостров . погибнуть пассажир россиянин включая ребёнок член экипаж . причина падение лайнер пора не_установить вестись расследование . |ngramms пассажирский_самолёт журналист_рассказать генеральный_директор страховой_компания страховой_компания _ В_то_же_время мочь_оказаться страховой_выплата стать_жертва тысяча_рубль тысяча_рубль семья_погибший установленный_закон нужно_предоставить судебно_медицинский эль_шейх санкт_петербург член_экипаж причина_падение вестись_расследование +1134 |text аэрофлот предоставить пассажир дополнительный место бесплатный регистрировать багаж провоз лыжный оборудование сноуборд вес килограмм . акция быть действовать год год . лента . сообщить авиакомпания . комплект лыжный оборудование зимний сезон можно быть бесплатно провести борт самолёт аэрофлот чехол пара лыжа пара лыжный палка упаковать отдельно пара лыжный ботинок . аналогичный льгота вводиться бесплатный провоз оборудование сноуборд . как сообщить компания дополнительный место бесплатный багаж перевозка лыжный оборудование не_учитываться расчёт оплата багаж сверх норма не_указываться билет предоставляться время регистрация рейс наличие технический возможность воздушный судный . услуга бесплатный перевозка комплект лыжный оборудование предоставляться рейс аэрофлот дочерний авиакомпания коммерческий управление аэрофлот . рейс выполнять сторонний компания партнёр номер рейс дать акция не_распространяться . аэрофлот придавать большой значение поддержка спорт продвижение здоровый образ жизнь . месяц перевозчик сообщить продолжение акция бесплатный перевозка оборудование серфинг дайвинг ряд направление мале бангкок пхукет хошимин напоминать компания . |ngramms пассажир_дополнительный место_бесплатный место_бесплатный быть_действовать можно_быть технический_возможность воздушный_судный бесплатный_перевозка бесплатный_перевозка дочерний_авиакомпания образ_жизнь ряд_направление +1135 |text роснефть региональный иракский правительство курдистан подписать соглашение сотрудничество область разведка добыча инфраструктура логистика трейдинг углеводород . сайт компания . документ предусматривать покупка холдинг нефть период год предоплата . отмечаться что покупатель сырьё выступить трейдинговый подразделение роснефть rosneft trading sa . объём поставка углеводород не_уточняться . рад начало взаимовыгодный партнерство курдистан надеяться что совместно смочь найти новое рынок сбыт курдский нефть . контракт позволить обеспечить сырьём расширяться международный сеть нпз роснефть повысить эффективность главный исполнительный директор компания сечин комментировать сделка . сообщаться что роснефть начало бурение поисковый скважина блок ирак . скважина salman быть пробурить глубина метр работа планироваться завершить год . компания получить возможность работать блок покупка башнефть обладать право геологоразведка разработка добыча углеводород месторождение . |ngramms пресс_релиз документ_предусматривать что_покупатель объём_поставка найти_новое рынок_сбыт контракт_позволить исполнительный_директор компания__сечин планироваться_завершить компания_получить добыча_углеводород +1136 |text гендиректор ford alan mulally называть наиболее вероятный преемник балмера пост руководитель microsoft остаться автомобильный компания крайний мера конец год . заявить интервью press . добавить что хотеть положить конец спекуляция относительно переход microsoft не_беспокоить акционер ford . не_уточнить общаться представитель microsoft повод возможный смена работа . инвестор внимательно следить слух возможный смена место работа как год ford предстоять важный год новый история автопроизводитель . как напоминать bloomberg месяц американский компания планировать выпустить рынок новый автомобиль . работать ford год год посвятить производитель самолёт boeing где дослужиться руководитель дивизион заниматься гражданский авиация . В год когда прийти ford акция компания стоить доллар штука начало оцениваться рынок доллар . microsoft процесс поиск новое гендиректор не_комментировать . сообщаться что помимо должность претендовать бывший глава nokia илопа stephen elope бывший руководитель skype сатие satya nadella управлять microsoft облачный проект . писать что microsoft девять человек имя пятеро журналист выяснить не_удаться . поиск новое гендиректор компания начать как год отставка объявить балмера работать microsoft год . балмера покинуть пост месяц . |ngramms _ _не_уточнить возможный_смена слух_о_возможный место_работа как_напоминать американский_компания планировать_выпустить новый_автомобиль самолёт_boeing гражданский_авиация акция_компания доллар_за_штука процесс_поиск новое_гендиректор новое_гендиректор помимо_ бывший_глава бывший_руководитель шорт_лист девять_человек журналист_выяснить компания_начать +1137 |text pepsico владеть крупный производитель молочный соковый продукция россия закрывать завод производство сок билль напиток город раменский московский область . сообщать интерфакс ссылка компания . сообщаться что решение оптимизация производственный мощность компания дальнейший устойчивый развитие рынок сок . С год производство сок быть сконцентрировать завод лебедянский липецкий область . В pepsico считать что решение позволить компания повысить эффективность бизнес сделать лебедянский ключевой центр производство соковый продукция россия . компания обещать оказать всесторонний поддержка полный соответствие российский трудовой законодательство сотрудник затронуть решение . прекращение производственный деятельность завод раменский некоторый сотрудник быть перевести предприятие компания остальной получить хороший выходной пособие помощь трудоустройство заверить pepsico . В год pepsico впервые сократить выручка российский рынок фон девальвация рубль . чистый прибыль компания россия год упасть процент миллиард доллар миллиард доллар . стоимость долгосрочный актив россия сократиться процент миллиард доллар миллиард доллар год что отражать падение курс российский рубль компания . pepsico сообщить незначительный снижение продажа снэк российский рынок двузначный падение продажа напиток . выручка pepsico итог прошлое год вырасти процент миллиард доллар . российский рынок прийтись процент глобальный доход компания . остановка производство сок предприятие россия заявить . В год прекратиться розлив сок завод нидать московский область новосибирск . В реструктуризация соковый бизнес россия списать миллион доллар третье квартал . месяц компания отразить списание размер миллион доллар . |ngramms крупный_производитель завод_по_производство московский_область московский_область что_это_решение производственный_мощность производство_сок липецкий_область позволить_компания повысить_эффективность компания_обещать соответствие_с_российский производственный_деятельность быть_перевести девальвация_рубль чистый_прибыль компания_в_россия миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар актив_в_россия падение_курс снижение_продажа падение_продажа прошлое_год остановка_производство предприятие_в_россия coca_cola coca_cola бизнес_в_россия миллион_доллар миллион_доллар третье_квартал +1138 |text арбитражный суд московский область год рассмотреть иск россельхознадзор петелинский птицефабрика входящая группа черкизовый . В начало год ведомство заявить выявление сальмонелла продукция фабрика потребовать оштрафовать производитель остановить работа предприятие . следовать информация разместить портал электронный правосудие . В группа черкизовый ситуация претензия россельхознадзор назвать странный . отбор продукция производиться отдельный магазин предприятие . следовательно велик вероятность попадание бактерия мясо неправильный транспортировка хранение отмечать представитель компания . петелинский птицефабрика неоднократно проверяться надзорный орган не_получать никакой нарекание россельхознадзор летний месяц год проверять фабрика . роспотребнадзор итог сентябрьский проверка не_найти нарушение . требование россельхознадзор остановить оштрафовать предприятие вызвать недоумение сторона экспертный сообщество . как отмечать участник рынок метод отбор проба продукция методология исследование вызывать большой сомнение . ситуация петелинка бить производитель мясо птица поскольку мочь повториться производитель президент agrifood strategies давлей . В спор россельхознадзор петелинк поддержать депутат госдума президент мясной союз россия мамиконянин генеральный директор российский птицеводческий союз . большинство эксперт считать маловероятный сценарий остановка птицефабрика выявление сальмонелла продукция полка . поздний аналогичный мнение озвучить руководитель россельхознадзор данкверт . мнение вопрос продукция петелинский птицефабрика быть урегулировать рабочий порядок . скорее суд альтернативный решение оштрафовать производитель полагать глава ведомство . признавать что группа черкизовый серьёзно относиться безопасность продукция . |ngramms арбитражный_суд московский_область рассмотреть_иск входящая_в_группа В_начало оштрафовать_производитель оштрафовать_производитель остановить_работа представитель_компания летний_месяц как_отмечать участник_рынок депутат_госдума __и__ россия_ генеральный_директор _ аналогичный_мнение рабочий_порядок глава_ведомство +1139 |text В сша девочка hannah robertson публично обругать президент mcdonald что компания привлекать ребёнок нездоровый еда игрушка маркетинговый приём . сообщать телеканал abc . быть здорово перестать обманывать ребёнок не_быть делать вредный еда привлекательный заявить девочка ежегодный собрание акционер mcdonald куда пришлый мама активистка некоммерческий организация corporate accountability international cai . слово девочка родитель часто не_учить ребёнок правильный питание малыш не_понимать какой вред наносить неправильный еда . рассказать президент mcdonald что мама снять видеоролик учить что фрукт овощ делать ребёнок сильный здоровый . газета usa today отмечать что время выступление девочка переходить крик . поблагодарить девочка ответить что компания не_продавать вредный пища . напомнить что ресторан можно купить овощ фрукт . слово глава корпорация нередко водить ребёнок mcdonald . жить канада учиться класс поздний рассказать интервью usa today что собрание акционер подойти коридор пожать рука что совершить хороший поступок . признаться что быть страшно выступать количество взрослый . В интервью девочка что родитель мочь оградить ребёнок вредный еда . мнение сверстник ради игрушка насмотреться реклама мочь настойчиво требовать поход mcdonald . abc отмечать что многие посчитать что выступить инициатива что подбить взрослый . девочка заявить интервью что написать мама помочь . слово школьница не_любить mcdonald выступление собрание акционер собственный идея . девочка рассказать что жизнь есть mcdonald . слово любимый еда спагетти томатный соус чесночный хлеб салат цезарь манго жевательный медведь . вопрос кто хотеть стать девочка ответить что не_знать . организация corporate accountability international состоять мама давно известный борьба mcdonald . активист требовать корпорация перестать использовать символ клоун . мнение образ привлекать ребёнок нездоровый еда . |ngramms В_сша _ _ _ президент_mcdonald президент_mcdonald привлекать_ребёнок привлекать_ребёнок собрание_акционер собрание_акционер собрание_акционер _также_рассказать можно_купить глава_корпорация рассказать_в_интервью В_интервью что_многие что__выступить заявить_в_интервью +1140 |text компания скартело yota начало предоставлять услуга голосовой собственный бренд база сеть сотовый оператор мегафон . сообщить рамка форум телек генеральный директор yota сморгонский . yota получить услуга голосовой собственный ресурс телефонный номер вид xxx xxxx . yota начало оказывать голосовой услуга москва московский область ленинградский область режим ограниченный коммерческий эксплуатация . житель дать регион смочь пользоваться услуга сотовый территория россия международный роуминг . услуга доступный ограниченный количество клиент yota помогать отладить процесс давать обратный использование продукт . В ближний будущее начать широкий дистрибуция sim карта сморгонский . сморгонский пояснить что полный коммерческий эксплуатация сотовый голосовой услуга yota начаться ближний время дальнейший компания планировать запустить регион рф . слово план компания ближний год подключить десять миллион мобильный абонент . время yota предоставлять услуга беспроводный доступ интернет технология lte количество абонент составлять тысяча человек . |ngramms предоставлять_услуга сотовый_оператор пресс_конференция генеральный_директор услуга_голосовой телефонный_номер голосовой_услуга голосовой_услуга московский_область санкт_петербург ленинградский_область коммерческий_эксплуатация коммерческий_эксплуатация пользоваться_услуга количество_клиент В_ближний компания_планировать план_компания десять_миллион тысяча_человек +1141 |text минфин предлагать ввести уголовный ответственность недостоверный аудиторский заключение . сообщить министр финансы россия силуановый передавать . готовить новое законодательство вводить ответственность вид штраф недобросовестный работа уголовный ответственность заведомо ложный представление информация министр . силуановый добавить что минфин цб обсуждать возможность совместный надзор аудиторский компания . слово качество регулирование надзор аудитор надо повышать . В минфин считать что рынок аудиторский услуга россия нужно оставить саморегулируемый организация . К нынешний возникать вопрос . единственный организация быть лёгкий предъявлять требование что улучшить качество надзор . очередь быть благо работать аудиторский организация считать силуановый . председатель банка россия заявить что процент банк последствие отзываться лицензия иметь положительный аудиторский заключение . слово зачастую информация предоставлять аудитор являться сфальсифицировать . |ngramms минфин_предлагать министр_финансы россия_ обсуждать_возможность минфин_считать россия___заявить +1142 |text уралкалий сменить гендиректор требование президент белоруссия . номер писать газета ведомость ссылка неназванный источник . информация издание российский власть согласиться требование белорусский президент согласовать сделка условие . газета писать что новый гендиректор уралкалий стать заместитель председатель совет директор . сообщать интерфакс . быть закрытый сделка продажа акция уралкалий . процент бумага компания купить группа онэксим процент компания уралхий мазепин . В первое случай продавец выступить фонд suleyman kerimov foundation миллиардер второе структура миллиардер семь процент процент восемь процент акция уралхий выкупить открытый рынок . акционер уралкалий сменить требование президент белоруссия . российский компания оказаться состояние конфликт белорусский власть летом год когда компания отказаться совместный продажа продукция белорусский калийный компания . В российский организация решение объяснить что конец год издать указ позволять беларуськалия торговать обход бкк . решение уралкалий обвалить рынок удобрение . В конец минск быть арестовать гендиректор уралкалий . сначала заподозрить нарушение статья злоупотребление служебный полномочие обвинение переквалифицировать хищение . уголовный возбудить отношение . акционер обвинять попытка захватить контроль канал сбыт . согласиться передать рф условие что российский следственный комитет возбудить отношение уголовный . В середина руководитель стать фигурант российский злоупотребление полномочие конец быть экстрадирован белоруссия . сначала посадить сизый неделя перевести домашний арест . |ngramms президент_белоруссия президент_белоруссия _ _ _ _ писать_газета российский_власть согласовать_сделка новый_гендиректор стать_заместитель председатель_совет_директор быть_закрытый продажа_акция бумага_компания В_первое миллиардер__ миллиардер__ семь_процент процент_акция открытый_рынок российский_компания оказаться_в_состояние белорусский_власть продажа_продукция калийный_компания российский_организация что_в_конец _издать быть_арестовать злоупотребление_служебный топ_менеджер сбыт_ _согласиться что_российский следственный_комитет В_середина злоупотребление_полномочие +1143 |text пивоваренный компания балтика закрывать завод челябинск красноярск . соответствующий информация содержаться сообщение предприятие . решение условие продолжаться падение рынок пиво связанный сложный макроэкономический обстановка несбалансированный регулирование налогообложение отрасль россия . компания подчёркивать что завод закрываться тщательный технический логистический финансовый анализ . как предприятие челябинск красноярск перестать работать производство балтика снизиться процент . осень год балтика приостанавливать производство завод . сообщаться что работа восстановиться как рынок пиво начать растить . балтика крупный пивоваренный компания россия . владеть десять завод . балтика принадлежать carlsberg group . росстат пивная рынок россия год сократиться треть . |ngramms пивоваренный_компания пивоваренный_компания информация_содержаться падение_рынок компания_подчёркивать что_завод перестать_работать что_работа рынок_пиво владеть_десять +1144 |text низкобюджетный авиакомпания победа входящая группа аэрофлот перевезти пятимиллионный пассажир начало год . сообщение лоукостер . юбилейный пассажир стать . вылететь московский аэропорт внуково аэропорт бегишево город набережная челны рейс . образ впервые история полёт победа обслужить миллион пассажир истечение год . год планироваться перевезти миллион человек процент большой прошлогодний показатель . встречать миллион пассажир авиакомпания победа . значительный шаг вперёд надо отдать должное команда аэрофлот руководитель авиакомпания победа аэропорт внуково аэропорт вестись сотрудничество . хотеть что результат достигать многое давать возможность двигаться отрасль вперёд . минтранс заинтересовать развитие эффективный качественный авиакомпания заявить заместитель министр транспорт рф . как генеральный директор пао аэрофлот председатель совет директор ооо авиакомпания победа событие ясно свидетельствовать проект низкобюджетный перевозчик состояться оказаться высокий мера успешный крайне нужный россия население . авиакомпания победа изменить облик отрасль многое предопределять будущее . благодаря лоукостер сотня тысяча россиянин скромный доход впервые жизнь смочь позволить авиаперелёт . маршрут где появляться победа происходить снижение тариф перевозчик . проект аэрофлот страна пользоваться внимание поддержка президент российский федерация . Я помнить как недавно отправлять полёт рейс . гордый что проект рождаться аэропорт внуково помощь аэропорт внуково . В результат получиться прекрасный продукт позволить многий человек впервые совершить полёт воздушный суд . компания победа открыть новое маршрут многий человек предлагать отличный качество обслуживание высокий регулярность полёт . гордый что работать победа . Я уверенный что перевозчик продолжить показывать хороший результат открыть новый направление встретить миллион пассажир авиакомпания ближний год заявить председатель совет директор ао международный аэропорт внуково ванец . слово генеральный директор авиакомпания победа победа давно маленький компания стартап пилотный проект . победа крупный значимый участник российский международный рынок . перевезти клиент номер . впервые достигнуть показатель год . выбор клиент главный оценка работа . С начало полёт победа год услуга лоукостер воспользоваться миллион человек . авиакомпания благодаря ценовый политика уникальный модель пользоваться высокий востребованность российский рынок . средний загрузка рейс победа составлять процент большинство рейс достигать процент что представлять высокий показатель российский регулярный авиакомпания . главный задача авиакомпания повышение мобильность россиянин . год полёт человек впервые жизнь воспользоваться воздушный транспорт . победа ожидать дальнейший рост показатель . генерировать пассажиропоток победа удаваться благодаря доступный тариф динамичный развитие маршрутный сеть приоритетный значение отводиться внутрироссийский направление . минимальный тариф компания составлять рубль учёт аэропортовый сбор . В год победа предложить тысяча билет цена . процент карта полёт уникальный направление . |ngramms входящая_в_группа _ _ _ _ аэропорт_внуково аэропорт_внуково аэропорт_внуково миллион_пассажир миллион_пассажир миллион_пассажир год_планироваться миллион_человек миллион_человек процент_большой давать_возможность заявить_заместитель министр_транспорт рф__ генеральный_директор генеральный_директор председатель_совет_директор председатель_совет_директор сотня_тысяча снижение_тариф поддержка_президент российский_федерация В_результат человек_впервые воздушный_суд открыть_новое Я_уверенный хороший_результат международный_аэропорт С_начало главный_задача воздушный_транспорт дальнейший_рост маршрутный_сеть компания_составлять тысяча_билет +1145 |text чистый прибыль российский поисковик яндекс итог третье квартал год составить миллиард рубль что процент выше результат аналогичный период прошлое год . сообщаться отчёт компания . как гендиректор компания поисковик удаться нарастить доход контекстный реклама процент . темп рост доход показ реклама сайт партнёр увеличиться процент . итог девять месяц начало год прибыль яндекс увеличиться процент миллиард рубль . выручка увеличиться процент миллиард рубль . ценный бумага поисковик американский биржа nasdaq состояние москва вырасти процент доллар . полгода бумага подорожать . В середина яндекс осуществить год существование инвестиция контент проект компания приобрести кинопоиск крупный русскоязычный ресурс кино . сумма сделка не_разглашаться . что команда кинопоиск перейти яндекс . сайт сохранить прежний адрес бренд . |ngramms чистый_прибыль третье_квартал миллиард_рубль миллиард_рубль миллиард_рубль процент_выше аналогичный_период_прошлое_год отчёт_компания гендиректор_компания _ удаться_нарастить темп_рост девять_месяц ценный_бумага бумага_подорожать В_середина год_существование сумма_сделка +1146 |text росстандарт согласовать программа отзыв автомобиль производство концерн volkswagen . информация добровольный отзыв транспортный средство марка volkswagen тип caddy golf jetta реализовать год год разместить сайт ведомство . причина отзыв стать возможность возникновение транспортный средство volkswagen caddy golf jetta повреждение аккумулятор высокий давление гидросистема . приводить негерметичность система включение сигнальный лампа . дилер volkswagen уведомить владелец автомобиль необходимость предоставить автомобиль ближний дилерский центр проведение ремонтный работа . В сообщаться что немецкий автопроизводитель volkswagen ag daimler ag отзывать тысяча дизельный автомобиль audi porsche mercedes volkswagen opel . доработка подлежать модуль контроль токсичность выхлоп отключаться определённый температура двигатель . В год управление защита окружающий epa сша обнародовать исследование токсичность дизельный автомобиль audi volkswagen двигатель . tdi . оказаться что концентрация углекислый газа выхлоп превышать разрешить значение . миллион автомобиль быть оснастить специальный программный обеспечение обманывать измерительный оборудование время тест соответствие экологический стандарт . |ngramms концерн_volkswagen транспортный_средство транспортный_средство марка_volkswagen причина_отзыв высокий_давление владелец_автомобиль предоставить_автомобиль немецкий_автопроизводитель дизельный_автомобиль дизельный_автомобиль миллион_автомобиль программный_обеспечение экологический_стандарт +1147 |text организатор петербургский международный экономический форум пмэф опубликовать расширить версия программа указание спикер модератор сессия подтвердить мероприятие . сообщаться сайт пмэф . В деловой программа пмэф запланировать сто мероприятие различный формат . деловой сессия состояться рамка тематический направление глобальный экономика эпоха изменение россия использовать потенциал рост технология лидерство человеческий капитал цифровой экономика . объединять площадка столько различный мероприятие стремиться создать атмосфера сотрудничество взаимопонимание . как нельзя хороший отвечать цель форум создание экономика доверие советник президент российский федерация глава программный комитет пмэф кобяк . В рамка пмэф состояться региональный консультативный совет деловой двадцатка российский форум малое среднее предпринимательство международный молодёжный экономический форум сессия международный арктический форум арктика территория диалог тема арктический потенциал . северный морской путь как драйвер экономический рост . петербургский международный экономический форум пмэф состояться год девиз создавать экономика доверие . что немой тысяча гость страна мир . В петербург приехать делегация германия швейцария швеция греция италия индия саудовский аравия катар израиль вьетнам сша канада страна африканский континент . |ngramms организатор_петербургский международный_экономический_форум международный_экономический_форум деловой_программа состояться_в_рамка потенциал_рост цифровой_экономика различный_мероприятие российский_федерация В_рамка среднее_предпринимательство экономический_форум северный_морской экономический_рост тысяча_гость страна_мир +1148 |text сеть ресторан быстрый питание mcdonald запустить москва сервис доставка еда . сообщать ведомость ссылка буклет компания представитель сеть россия подтвердить издание информация . слово менеджер mcdonald проект стартовать . осуществляться тестовый режим сегодняшний немой участвовать ресторан быть расширяться . слово представитель сеть ресторан доставка стоить рубль минимальный сумма заказ нет . заказ можно оформить мобильный приложение ubereats . В mcdonald что сеть намерить выходить регион ubereats . партнёр mcdonald не_рассматривать . минувший неделя ряд сообщить что компания mcdonald подать роспатент заявка регистрация товарный знак макдоставка mcdelivery соответствующий логотип . В тестовый доставка москва регион запустить сеть быстрый питание kfc . В проект ресторан москва область город урал . минимальный сумма заказ отсутствовать стоимость доставка варьироваться зависимость адрес . сеть ресторан быстрый питание mcdonald быть основать год брат мак . первое заведение открыть город штат калифорния . В настоящее время сеть занимать место количество мир subway . |ngramms сеть_ресторан сеть_ресторан сеть_ресторан быстрый_питание быстрый_питание быстрый_питание запустить_в_москва представитель_сеть подтвердить_издание проект_стартовать сумма_заказ сумма_заказ мобильный_приложение минувший_неделя что_компания товарный_знак стоимость_доставка сан_бернардино штат_калифорния В_настоящее_время +1149 |text компания enel россия искать покупатель российский актив . писать ведомость ссылка источник близкие компания . слово продажа готовиться объект рефтинский грэс основной актив компания . enel намерить . приобрести станция быть предложить потенциальный покупатель . В приглашение сделка получить интер рао газпром энергохолдинг Т плюс . интер рао газпром энергохолдинг покупка отказаться . как представитель enel компания не_планировать продавать электростанция рф полностью уходить российский рынок . В год президент рф встреча главый итальянский правительство маттео ренци успешный проект enel инвестировать российский электроэнергетика кооперация российский роснефть лукойл владеть актив нефтеперерабатывающий предприятие италия . итальянский энергетический компания enel работать россия год . российский дочка энергохолдинг являться ведущий российский оптовый производитель электрический энергия . владеть грэс рефтинский среднеуральский невинномысский конаковский совокупный установленный мощность мегаватт . |ngramms российский_актив актив_компания быть_предложить потенциальный_покупатель сделка_получить _ не_планировать_продавать полностью_уходить рф__ энергетический_компания работать_в_россия ведущий_российский установленный_мощность +1150 |text инвесткомпание blackstone group отказаться участвовать борьба dell оценить миллиард доллар . сообщать york times ссылка анонимный источник . издание эксперт blackstone провести экспертиза dell выяснить что компания не_стоить деньга . blackstone group считаться основный претендент актив год когда компания быть выставить продажа . изначально предполагаться что купить основатель гендиректор dell microsoft инвестиционный фирма silver lake сделка выступить миноритарный акционер dell . В итог компания появиться претендент инвестор икан собственно blackstone . bloomberg отмечать что неизвестно быть икан настаивать сделка отказ нея blackstone . В начало стать что готовый быть согласиться сделка blackstone оставить должность генеральный директор . dell оказаться сложный финансовый положение стагнация рынок персональный компьютер вытеснять ноутбук планшет . В первое квартал год продажа компьютер мир упасть процент что подсчёт international corporation стать плохой результат год . У dell продажа снизиться процент . стагнация рынок сказаться акция dell . год стоить большой доллар штука конец год упасть отметка доллар . В начало год ценный бумага поддержать информация сделка dell акция равно торговаться доллар . оценка компания миллиард доллар означать что акция оцениваться доллар . |ngramms миллиард_доллар миллиард_доллар провести_экспертиза что_компания компания_быть выставить_на_продажа изначально_предполагаться _ _ сделка_выступить миноритарный_акционер В_итог В_начало В_начало готовый_быть генеральный_директор финансовый_положение В_первое_квартал продажа_компьютер стать_плохой доллар_за_штука год_упасть ценный_бумага оценка_компания +1151 |text авиакомпания трансаэро продолжить осуществлять операционный деятельность примерно зима . заявить журналист восточный экономический форум владивосток министр транспорт максим передавать корреспондент лента . . чиновник заверить что обязательство пассажир быть выполнить . слово когда кредитор авиаперевозчик договориться быть определить роль аэрофлот старший кредитор . быть следовать модель быть определить подписание документ добавить . подписание слово министр быть зафиксировать новый модель деятельность трансаэро зависимость состояние рынок авиаперевозка перспектива развитие . процесс связанный санация трансаэро переход контроль аэрофлот занять полгода потребовать пересмотр модель российский авиаперевозка добавить . призвать не_делать преждевременный вывод возможный рост цена авиабилет слияние трансаэро аэрофлот . сообщаться что крупный россия авиакомпания аэрофлот собираться купить процент плюс акция трансаэро . сумма сделка составить рубль . финансовый консультант санация трансаэро стать сбербанк . трансаэро находиться второе место объём перевозка страна . В парк компания входить самолёт . состояние конец чистый долг предприятие достигать миллиард рубль миллиард приходиться краткосрочный кредит . |ngramms продолжить_осуществлять операционный_деятельность экономический_форум министр_транспорт максим_ передавать_корреспондент быть_выполнить кредитор_авиаперевозчик быть_определить старший_кредитор добавить_ добавить_ быть_зафиксировать новый_модель рынок_авиаперевозка крупный_в_россия собираться_купить процент_плюс сумма_сделка стать_сбербанк второе_место В_парк компания_входить чистый_долг миллиард_рубль +1152 |text правительство россия обсуждать инструмент поддержка авиакомпания кризис оказаться сложный ситуация . сообщить газета ведомость . К время проблема заявить трансаэро ютэйр . слово рассматриваться вариант господдержка . госгарантия кредит выдаваться компания . сильнодействующий инструмент поскольку повышать заинтересованность банк урегулировать проблема рассказать . правительство готовый подумать субсидирование внутрироссийский маршрут сделать безубыточный авиакомпания . цена мера зрение бюджет небольшой сотня миллион рубль максимум миллиард средство можно изыскать зато итог плюс пассажир компания уточнить . что усилие приложить авиакомпания перевозчик необходимый рационализировать парк маршрут снизить издержка искать возможность выйти операционный безубыточность месяц . слово трансаэро получить госгарантия начало неделя . У ютэйр есть сильный акционер уверенный что готовый участвовать стабилизация деятельность компания добавить . агентство сообщить что трансаэро долг мочь прекратить полёт . информация источник авиакомпания миллиард рубль роснефть миллиард рубль газпром аэро . поздний перевозчик опровергнуть информация . ютэйр сообщить что год рамка оптимизация расход планировать сократить самолётный парк процент . уменьшение воздушный судно позволить перевозчик сэкономить лизинговый платёж миллиард рубль следующий год миллиард рубль конец год . авиакомпания намерить процент сократить маршрутный сеть . что позволить снизить производственный расход миллиард рубль конец следующий год . трансаэро занимать место россия объём перевозка лидер являться аэрофлот . месяц нынешний год авиакомпания перевезти миллион пассажир . ютэйр замыкать тройка крупный авиаперевозчик россия объём пассажиропоток . процент компания принадлежать нпф сургутнефтегаз остальной акция владеть дочерний структура предприятие миноритарий . |ngramms правительство_россия поддержка_авиакомпания сложный_ситуация вице_премьер вице_премьер вице_премьер _ рассказать_ миллион_рубль средство_можно снизить_издержка искать_возможность что_готовый деятельность_компания прекратить_полёт миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль поздний_перевозчик год_в_рамка оптимизация_расход планировать_сократить воздушный_судно лизинговый_платёж маршрутный_сеть что_это_позволить следующий_год лидер_являться нынешний_год авиакомпания_перевезти миллион_пассажир тройка_крупный россия_по_объём компания_принадлежать акция_владеть дочерний_структура +1153 |text В возраст год умереть создатель intel гроуть . сообщаться сайт корпорация . гроуть уродить грофа родиться будапешт эмигрировать венгрия год . изучать химический машиностроение городской колледж получить степень доктор философия калифорнийский университет . учёба гроуть приглашение учёный бизнесмен мура стать работать исследователь компания fairchild semiconductor где дослужиться помощник руководитель направление исследование разработка . В год коллега нойс покинуть fairchild semiconductor основать компания intel . К вскоре присоединиться гроуть . формально не_считаться основатель компания быть нанять сотрудник . В год гроуть стать президент intel главное исполнительный директор . В период год занимать пост председатель совет директор . как отмечаться сыграть решающий роль вместо микросхема память компания сфокусироваться микропроцессор . руководство гроува intel заниматься производство микропроцессорный чип pentium . компания увеличить годовой выручка миллиард доллар миллиард . помимо бизнес гроуть писать статья книга заниматься благотворительный деятельность . |ngramms В_возраст нью_йорк получить_степень бизнесмен_ коллега_ основать_компания основатель_компания исполнительный_директор занимать_пост председатель_совет_директор как_отмечаться заниматься_производство годовой_выручка миллиард_доллар благотворительный_деятельность +1154 |text минкомсвязи представить правительство доработать стратегия развитие почта россия год прочее предполагать полный отказ государственный поддержка . сообщаться министерство поступить редакция лента . . финансовый самостоятельность фгуп касаться содержание отделение крайний север . как уточнить замминистра инвестиция развитие почта мочь осуществлять предприятие . средство цель предлагаться получать счёт оптимизация работа повышение качество услуга запуск новый сервис . стратегия предполагать что почта стать инвестиционный привлекательный конкурентоспособный предприятие выплачивать сотрудник достойный зарплата отмечаться . подробность относительно прогнозный показатель развитие фгуп сообщение не_приводиться . минкомсвязи ожидать результат рассмотрение стратегия . заявить . неназванный источник знакомый предварительный версия стратегия рассказать агентство что документ предполагать рост годовой выручка миллиард рубль год есть сравнение год . прибыль год составить миллиард рубль . итог год фгуп заработать миллион рубль . писать что затрата модернизация почта соответствие новый стратегия развитие оцениваться миллиард рубль . сообщаться что минкомсвязи предлагать предприятие найти средство самостоятельно . правительство начать активно обсуждать новый стратегия развитие почта досрочный отставка гендиректор фгуп год . место руководитель предприятие занять бывший глава российский дочка шведский мобильный оператор страшновый . |ngramms представить_в_правительство стратегия_развитие стратегия_развитие стратегия_развитие почта_россия государственный_поддержка пресс_релиз пресс_релиз поступить_в_редакция как_уточнить _ _ качество_услуга новый_сервис стать_инвестиционный _заявить неназванный_источник версия_стратегия рассказать_агентство годовой_выручка миллиард_рубль миллиард_рубль миллиард_рубль миллион_рубль начать_активно отставка_гендиректор руководитель_предприятие бывший_глава мобильный_оператор +1155 |text мечело обжаловать решение суд взыскание компания миллиард рубль задолженность польза банка втб . сообщать . жалоба решение суд подать втб суть возражение банка не_сообщаться . арбитражный суд москва взыскать мечело миллиард рубль иск втб . госбанк требовать вернуть процент договор год рамка кредитный организация предоставить компания миллиард рубль . В год заёмщик перестать обслуживать кредит образоваться задолженность . встречный иск мечело изменение условие договор снижение процентный ставка суд отклонить . мечело испытывать сложность обслуживание долг состояние год составлять миллиард доллар . основный кредитор крупный российский банка газпромбанк втб сбербанк . рассматриваться разный вариант спасение мечело . менеджмент компания настаивать реструктуризация долг финансовый оздоровление . В время кредитор втб выступать конвертация долг акция . |ngramms решение_суд решение_суд миллиард_рубль миллиард_рубль миллиард_рубль банка_втб арбитражный_суд_москва кредитный_организация предоставить_компания перестать_обслуживать условие_договор процентный_ставка суд_отклонить обслуживание_долг год_составлять миллиард_доллар основный_кредитор крупный_российский менеджмент_компания реструктуризация_долг В_то_же_время +1156 |text федеральный агентство технический регулирование метрология росстандарт не_зафиксировать нарушение выхлоп автомобиль volkswagen . заявить министр промышленность торговля мантур передавать интерфакс . исходить дать получить росстандарт проблема нарушение норма стандарт сегодняшний нет министр . добавить что касаться работать россия автопроизводитель volkswagen . фон скандал подтасовка результат тестирование вредный выброс дизельный автомобиль volkswagen росстандарт направить российский подразделение концерн фольксваген груп русый соответствующий запрос . ведомство попросить компания предоставить необходимый разъяснение материал дать тема . В агентство охрана окружающий сша уличить volkswagen ag подтасовка результат тест экологичность авто дизельный двигатель . автопроизводитель приостановить продажа машина соединить штат . власть сша обязать концерн отозвать тысяча автомобиль марка volkswagen audi страна год . компания грозить штраф сумма миллиард доллар тысяча доллар автомобиль бывший гендиректор винтеркорный покинуть пост вскоре вскрыться махинация местный прокуратура заподозрить мошенничество . volkswagen начать внутренний расследование собираться проверить миллион автомобиль мир дизельный двигатель . акция автомобилестроительный концерн фон ситуация неделя подешеветь треть . |ngramms федеральный_агентство автомобиль_volkswagen промышленность_и_торговля _мантур работать_в_россия дизельный_автомобиль российский_подразделение соответствующий_запрос компания_предоставить дизельный_двигатель дизельный_двигатель приостановить_продажа соединить_штат власть_сша тысяча_автомобиль марка_volkswagen грозить_штраф миллиард_доллар бывший_гендиректор покинуть_пост миллион_автомобиль +1157 |text роснефть китайский sinopec подписать контракт поставка китай нефть год . как сообщать новость условие соглашение российский госкомпания быть отправлять китай миллион тонна нефть . слово руководитель роснефть сечин предоплата контракт составить процент . как заявить россия стоимость поставка российский нефть китай мочь составить миллиард доллар передавать интерфакс . российский нефтегигант подписать договор китайский компания cnpc . В немой графика запуск нефтеперерабатывающий завод поставка быть обеспечивать роснефть . слово сечин госкомпания быть единственный поставщик нпз . запуск планироваться год . роснефть китай являться основный рынок сбыт . госкомпания отправлять азиатский страна миллион тонна нефть год ответвление нефтепровод восточный сибирь тихий океан контракт год предполагать льготный кредит китай миллиард доллар пойти роснефть транснефть . летом год китай быть подписать очередной соглашение предусматривать постепенный увеличение поставка миллион тонна год . китайский госкомпания время стать претендовать получение сырьё россия разработка месторождение внутри страна . cnpc договориться новатэк приобретение процент проект ямал спг . С роснефть компания решить создать совместный предприятие освоение восточный сибирь дальний восток . В начало агентство bloomberg ссылка анонимный источник передавать что китайский компания petrochina намерить вложить освоение газовый месторождение восточный сибирь десять миллиард доллар . |ngramms контракт_на_поставка сообщать_риа_новость российский_госкомпания миллион_тонна_нефть миллион_тонна_нефть _сечин контракт_составить как_заявить премьер_министр россия__ поставка_российский нефть_в_китай мочь_составить миллиард_доллар миллиард_доллар миллиард_доллар китайский_компания китайский_компания В_немой быть_единственный рынок_сбыт восточный_сибирь восточный_сибирь восточный_сибирь быть_подписать увеличение_поставка миллион_тонна ямал_спг компания_решить совместный_предприятие дальний_восток агентство_bloomberg газовый_месторождение +1158 |text прибыль газпром второе квартал год сократиться сравнение второе квартал cо миллиард рубль . свидетельствовать расчёт эксперт интерфакс основа дать компания . прибыль компания первое полугодие год российский стандарт бухгалтерский учёт рсб составить миллиард рубль что процент маленький результат . официальный отчёт итог работа второе квартал год газпром опубликовать середина . система спарк интерфакс опубликовать сообщение предприятие стоимость чистый актив эмитент год триллион рубль триллион рубль год есть квартал сократиться миллиард рубль . величина прирост стоимость актив квартал квартал применяться поправка миллиард рубль обязательство выплата дивиденд точно соответствовать размер чистый прибыть период пояснить агентство . В первое квартал год чистый прибыль газпром составить миллиард рубль . В начало аналитика renaissance capital предсказать газпром отрицательный результат . компания мочь получить отрицательный свободный денежный поток объём миллиард доллар год сократить инвестпрограмма зафиксировать плохой отрасль динамик прибыть . В год член правление газпром сообщить что компания сократить протяжённость участок газопровод сила сибирь планироваться построить год километр . объяснить оптимизация затрата . год выручка группа газпром увеличиться процент чистый выручка продажа газа вырасти процент чистый выручка продажа газа европа страна процент . годовой прибыль группа газпром составить миллиард рубль . |ngramms год_сократиться второе_квартал миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль прибыль_компания первое_полугодие российский_стандарт процент_маленький итог_работа сообщение_предприятие чистый_актив триллион_рубль триллион_рубль стоимость_актив выплата_дивиденд чистый_прибыть В_первое_квартал чистый_прибыль В_начало мочь_получить свободный_денежный_поток миллиард_доллар член_правление __сообщить что_компания участок_газопровод сила_сибирь оптимизация_затрата год_выручка выручка_от_продажа выручка_от_продажа газа_в_европа прибыль_группа +1159 |text группа аэрофлот перевезти миллион процент пассажир авиакомпания трансаэро прекращать операционный деятельность . сообщать ссылка информация аэрофлот . В аэрофлот добавить что забронированный билет рейс трансаэро остаться тысяча пассажир . перевозка пассажир авиакомпания трансаэро быть осуществляться сила авиакомпания группа аэрофлот необходимость авиакомпания . бесперебойный перевозка пассажир трансаэро группа аэрофлот располагать необходимый производственный мощность . сертификат эксплуатант трансаэро прекратить действие . решение проверка авиакомпания росавиация . С начало трансаэро находиться операционный управление аэрофлот . задолженность трансаэро кредитор составлять миллиард рубль . трансаэро оказаться грань банкротство высокий нагрузка фон падение спрос авиаперелёт . |ngramms пассажир_авиакомпания операционный_деятельность билет_на_рейс тысяча_пассажир перевозка_пассажир перевозка_пассажир быть_осуществляться авиакомпания_группа производственный_мощность пресс_релиз сертификат_эксплуатант проверка_авиакомпания операционный_управление миллиард_рубль _нагрузка +1160 |text производитель пиво германия жаловаться нехватка тара . сообщать deutsche welle . жаркий погода установиться европа привести рост спрос пенный напиток . завод veltins что объём продажа достигнуть рекордный значение . привести нехватка бутылка ящик хранение перевозка . С просьба вернуть пустой бутылка выступить пивоварня moritz fiege . компания veltins konig pilsener сообщить что заказать дополнительный ящик . трудность тара усугубляться что производитель иметь упаковка собственный уникальный дизайн . как отмечать deutsche welle температура воздух германия неделя не_падать отметка градус продержаться уровень начало . глава татарстан миннихан попросить президент россия разрешить продажа пиво стадион . |ngramms объём_продажа рекордный_значение просьба_вернуть как_отмечать президент_россия__ продажа_пиво +1161 |text разрыв возрасти мелкооптовый стоимость бензин недостаточно быстрый корректировка розничный цена грозить убыток независимый азс . сообщать коммерсантъ ссылка эксперт рынок . цена бензин россия побить рекорд несмотря рост производство отсутствие дефицит рынок . тонна подорожать процент тысяча рубль биржа обновить исторический максимум . стоимость топливо увеличиться процент тысяча рубль тонна . В целое неделя бензин вырасти цена процент писать издание . розничный цена подняться копейка азс крупный производитель . розничный цена бензин thompson kortes среднее россия увеличиться копейка рубль литр копейка рубль литр . ценовый рекорд бензин половина лето весьма негативный сценарий независимый сеть азс . судить текущий соотношение оптовый мелкооптовый розничный цена независимый предстоять торговать бензин убыток месяц приводить газета мнение эксперт агентство аналитик товарный рынок . В обзор агентство что проблема независимый азс что вынудить покупать топливо мелкооптовый звено высокий цена продавать розничный не_окупать затрата . вертикально интегрировать нефтяной компания проблема нет как равно какой звено получать маржа . В начало сообщить что год рост стоимость бензин россия не_превысить процент . скорее подорожать предел инфляция заявить . С россия вырасти акциз автомобильный бензин дизельный топливо ставка акциз бензин повысить рубль расчёт литр . апрельский повышение быть второе начало год . С ставка бензин вырасти рубль . дважды год акциз расти год . |ngramms розничный_цена розничный_цена розничный_цена грозить_убыток независимый_азс независимый_азс тысяча_рубль санкт_петербургский стоимость_топливо В_целое писать_издание крупный_производитель сеть_азс мнение_эксперт что_проблема высокий_цена нефтяной_компания проблема_нет В_начало вице_премьер __сообщить рост_стоимость заявить_ дизельный_топливо +1162 |text газпром обвинить нафтогаз украина несанкционированный оседание газа украинский территория . сообщаться отчёт российский компания квартал год . соответствующий заявление направить арбитраж стокгольм . В отчёт сообщаться что середина год газпром предоставить арбитраж отзыв претензия украинский сторона выдвинуть встречный требование оплата несанкционированный осесть территория украина объём газа миллион доллар . устный слушание запланировать конец год решение быть конец . документ передать рамка пересмотр стоимость транзит российский газа украина . как отмечать интерфакс газпром впервые называть газовый конфликт страна год заявить что транзитный газ доходить европейский потребитель . год директор развитие бизнес нафтогаза что ближний время компания намерить обсудить газпром возможный изменение условие транзит российский газа украина . стать что украина увеличить тариф транспортировка российский газа территория страна доллар километр доллар . днём поздний киев пригрозить обращение стокгольмский арбитраж газпром отказаться платить транзит газа европа новый тариф . спорый стоимость транзит российский газа украина вестись год . отзыв направить газпром стокгольмский арбитраж прошлое год касаться иск нафтогаза подать . украинский компания немой потребовать передать контракт транзит российский газа нафтогаза украина укртрансгаз доработать соответствие требование евросоюз . отмечать новость нафтогаз требовать обязать газпром выплатить компенсация непредоставленный транзит объём газа сумма миллиард доллар процент сумма . сумма требование составить миллиард доллар вырасти миллиард . |ngramms нафтогаз_украина украинский_территория соответствующий_заявление арбитраж_стокгольм В_отчёт украинский_сторона миллион_доллар стоимость_транзит стоимость_транзит российский_газа российский_газа российский_газа российский_газа российский_газа как_отмечать европейский_потребитель директор_по_развитие компания_намерить изменение_условие что_украина территория_страна отказаться_платить газа_в_европа новый_тариф прошлое_год украинский_компания нафтогаза_украина требовать_обязать миллиард_доллар миллиард_доллар +1163 |text В латвийский шпрот выявить превысить содержание канцерогенный вещество бензпирен . сообщать ссылка россельхознадзор . версия обнаружение вредный вещество отчитаться роспотребнадзор . сайт ведомство написание заметка сообщение латвийский шпрот нет . партия консервы превысить содержание бензпирен обнаружить ход ветеринарный контроль . уточнять что продукция быть произвести компания sia randa . информация прайма производитель продукция оказаться компания sia randa klavas отношение нея россельхознадзор ввести режим усиленный лабораторный контроль . россельхознадзор выявлять превысить содержание бензпирен латвийский консервы год . В год роспотребнадзор запретить импорт шпрот повышенный содержание канцерогенный вещество . тогдашний глава роспотребнадзор что латвийский шпрот не_соответствовать российский европейский стандарт . В рига решение запрет продукция называть политически мотивированный . поправка В материал В латвийский шпрот обнаружить вредный вещество быть обнаружить исправить ошибка . В текст новость быть указать что нарушение выявить работа компания sia randa klavas rojas pagasts rojas novads . В действительность претензия предъявить компания sia randa . лента . приносить извинение читатель . |ngramms превысить_содержание превысить_содержание превысить_содержание пресс_служба вредный_вещество вредный_вещество быть_произвести компания_sia компания_sia ввести_режим запретить_импорт глава_роспотребнадзор _ В_материал быть_обнаружить В_текст быть_указать +1164 |text исполнять обязанность глава республика саха якутия высказаться сохранение нынешний менеджмент алмазодобывающий компания алрос передавать новость . считать что менеджмент поднять компания год остаться работать . слово борисов год руководство алроса глава президент сделать компания мировой лидер . глава регион что нет принципиальный разногласие стратегия развитие компания трутневой курировать алрос . появиться информация что трутнеть выступать кандидатура . В газета известие ссылка источник сообщить что президент компания мочь не_продлить контракт пост глава алроса рассматриваться кандидатура глава росимущество дергуновый главный федеральный инспектор якутия . передавать новый информация называть различный фамилия . когда решение быть узнать завить лента . . |ngramms исполнять_обязанность _ _ _ _ передавать_риа_новость президент__ мировой_лидер глава_регион стратегия_развитие вице_премьер появиться_информация компания__ глава_росимущество +1165 |text аэрофлот сообщить отмена десяток рейс авиакомпания трансаэро . авиаперевозчик поступить редакция лента . . идти как внутрироссийский рейс москва петербург екатеринбург новосибирск красноярск город международный одесса рига ереван барселона рим париж дубай . перевозка пассажир отменить рейс быть осуществляться рейс компания группа аэрофлот код su код шеринговый выполнять компания партнёр сообщение . пассажир рейс московский внуково норильск обратно быть передать авиакомпания таймыр . транзитный пассажир отменить рейс аэрофлот обещать обеспечить доставка пункт назначение стыковка аэропорт пулково шереметьево . перевозка пассажир трансаэро быть осуществляться год рейс трансаэро компания группа аэрофлот российский авиаперевозчик . В настоящее время формироваться суточный план рейс . продажа билет рейс трансаэро оказаться грань банкротство высокий нагрузка быть остановить . операционный управление компания быть передать менеджмент аэрофлот управлять директор назначить замглавы аэрофлот . |ngramms сообщить_о_отмена рейс_авиакомпания пресс_релиз поступить_в_редакция перевозка_пассажир перевозка_пассажир отменить_рейс быть_осуществляться быть_осуществляться быть_передать пассажир_отменить В_настоящее_время _нагрузка быть_остановить операционный_управление компания_быть_передать управлять_директор _ +1166 |text лизинговый компания ифк создать дочерний структура быть делать пакетный предложение российский зарубежный самолёт писать рбк . фирма быть зарегистрировать люксембург сделка быть акционер ифк . компания не_иметь возможность работать иностранный авиационный техника что зафиксировать устав корпорация . попытка изменить основной документ поддержка акционер не_получить . компания специализироваться продажа аренда лайнер ан . новый фирма получить название ifc international capital . задача стать реэкспорт российский самолёт отечественный авиакомпания . В подписать канадский bombardier контракт поставка самолёт вместимость человек . поставка быть осуществить год . эксплуатант самолёт ifc international стать авиаперевозчик вим . С компания подписать предварительный соглашение поставка sc количество факт что производство лайнер начаться . |ngramms лизинговый_компания _ _ дочерний_структура быть_зарегистрировать сделка_быть не_иметь_возможность авиационный_техника специализироваться_на_продажа получить_название задача_стать российский_самолёт отечественный_авиакомпания контракт_на_поставка быть_осуществить эксплуатант_самолёт предварительный_соглашение +1167 |text владелец супермаркет семь континент занадвор выставить продажа операционный компания торговый сеть право аренда магазин срок год . номер писать коммерсантъ ссылка неназванный источник . покупатель мочь отказаться бренд семь континент отмечаться публикация . информация издание начало занадвор предложить лидер розничный рынок поучаствовать тендер . победитель предлагаться объявить компания предложить хороший ставка аренда магазин площадь тысяча квадратный метр . торг быть выставить оао семь континент принадлежать право товарный знак сеть . недвижимость принадлежащий планироваться передать баланс отдельный структура контроль сохранить предприниматель . информация коммерсант тендер выиграть retail group предложить платить доллар аренда квадратный метр год . образ магазин мочь приносить миллион доллар год что составить миллиард доллар год . торговый сеть семь континент включать магазин подконтрольный . итог год чистый прибыль супермаркет российский стандарт бухгалтерский отчётность составить миллион доллар выручка миллиард доллар . retail group контролировать магазин пятёрочка перекрёсток карусель . крупный собственник сеть доля процент акция . В прошлое год получить убыток размер миллион доллар выручка миллиард доллар международный стандарт финансовый отчётность . |ngramms выставить_на_продажа торговый_сеть торговый_сеть покупатель_мочь тысяча_квадратный_метр быть_выставить товарный_знак принадлежащий_ отдельный_структура retail_group retail_group квадратный_метр магазин_мочь миллион_доллар миллион_доллар миллион_доллар чистый_прибыль российский_стандарт миллиард_доллар миллиард_доллар альфа_группа процент_акция В_прошлое_год убыток_в_размер международный_стандарт финансовый_отчётность +1168 |text крупный россия retail group пятёрочка перекрёсток карусель стать официальный партнёр олимпийский игра сочи год . номер писать газета ведомость ссылка неназванный представитель оргкомитет игра . retail group стать официальный оператор розничный продажа продукт питание товар повседневный спрос . компания смочь брендировать полка продавать товар символика предстоящий игра создавать специальный торговый зона . розничный сеть планировать продавать игрушка одежда посуда продукт питание символика олимпийский игра . предполагаться что товар можно быть купить магазин группа формат . стоимость контракт не_сообщаться . президент оргкомитет что размер отчисление партнёр составить процент объём продажа . издание контракт претендовать крупный ритейлер . В настоящее время статус партнёр игра сочи получить крупный ритейлер bosco sport спортмастер сеть детский товар бегемот . retail group являться крупный розничный сеть россия объём выручка . компания управлять тысяча магазин отдать франчайзинг . итог год выручка розничный сеть превысить миллиард рубль . крупный акционер принадлежать процент акция . процент акция принадлежать основатель пятёрочка процент находиться свободный обращение биржа . |ngramms retail_group retail_group retail_group стать_официальный олимпийский_игра олимпийский_игра писать_газета розничный_продажа продукт_питание продукт_питание компания_смочь розничный_сеть розничный_сеть розничный_сеть планировать_продавать можно_быть стоимость_контракт объём_продажа В_настоящее_время статус_партнёр являться_крупный тысяча_магазин год_выручка миллиард_рубль крупный_акционер альфа_группа _ процент_акция процент_акция принадлежать_основатель свободный_обращение +1169 |text shell остановить сотрудничество российский нефтяной компания газпром нефть рамка совместный предприятие нефтяной союз хмнс . сообщать новость ссылка слово глава газпром нефть . В рамка союз работа остановить продолжать работать хмнс самостоятельно никакой проблема не_видеть заявить . комментировать перспектива дальнейший сотрудничество shell сланцевый проект рамка salym petroleum development spd В рамка spd изучать возможность продолжить работа согласовывать возможность работа соответствующий регулятор решение . евросоюз опубликовать список российский компания попадать санкция . оказаться газпром нефть . европейский компания ограничить возможность оказывать россия некоторый услуга . В мочь бурить глубоководный сланцевый месторождение нефть газа арктика . газпром нефть попасть действие новое пакет санкция сша . американский компания запрещаться экспорт товар технология поддержка российский проект добыча нефть глубоководный участок арктический шельф сланцевый пласт . ограничиваться доступ газпром нефть зарубежный финансирование . нефтяной союз совместный предприятие shell газпром нефть создать рамка меморандум партнерство область разведка добыча сланцевый нефть . быть подписать год . хмнс разрабатывать сланцевый месторождение западный сибирь . |ngramms англо_голландский нефтяной_компания газпром_нефть газпром_нефть газпром_нефть газпром_нефть газпром_нефть газпром_нефть совместный_предприятие совместный_предприятие ханты_мансийский ханты_мансийский нефтяной_союз нефтяной_союз слово_глава _ В_рамка В_рамка никакой_проблема сланцевый_проект продолжить_работа опубликовать_список российский_компания компания_ограничить сланцевый_месторождение сланцевый_месторождение новое_пакет санкция_сша американский_компания экспорт_товар добыча_нефть арктический_шельф зарубежный_финансирование создать_в_рамка сланцевый_нефть +1170 |text лукойл заключать контракт международный подрядчик рубль . сообщить ход телефонный конференция инвестор компания федун передавать . заключать контракт международный подрядчик рубль что компания стараться ориентироваться российский подрядчик чувствительный колебание курс рубль доллар . слово федун минимальный уровень рентабельность добыча компания доллар баррель . большинство компания разрабатывать новое проект уровень рентабельность мнение составлять доллар баррель . федун добавить что ситуация мировой нефтяной рынок развиваться драматически большинство компания пересматривать бюджет год адаптироваться новый условие . что ценовый ситуация рынок страдать очередь подрядчик как объесть спрос услуга сокращаться уровень конкуренция сервисный услуга год быть значительно выше год . В стать что россия кндр переслать рубль взаимный расчёт . газпром нефть сообщить что договориться экспорт европа тысяча тонна нефть возможный оплата рубль . возможность переход рубль экспорт энергоресурсы начало обсуждаться правительство участник рынок возникновение угроза западный санкция . многие призвать осторожность президент роснефть сечин считать что отрасль переход готовый поскольку большой часть контракт заключить доллар . |ngramms международный_подрядчик международный_подрядчик телефонный_конференция вице_президент курс_рубль минимальный_уровень доллар_за_баррель доллар_за_баррель большинство_компания большинство_компания новое_проект нефтяной_рынок ситуация_на_рынок год_быть газпром_нефть тысяча_тонна участник_рынок западный_санкция _сечин большой_часть контракт_заключить +1171 |text крупный российский оператор железнодорожный грузовой вагон федеральный грузовой компания фгк дочерний структура российский железный дорога передать часть парк биржа . компания поступить редакция лента . . вагонный биржа railcommerce грузоотправитель мочь заказать подвижный состав режим онлайн аукцион . предоставление вагон электронный торговый площадка обеспечить равный доступность операторский услуга участник рынок позволить грузовладелец гарантированно привлекать подвижный состав фгк лот полувагон отмечаться сообщение . В настоящее время биржа размещаться лот перевозка минеральный строительный груз железный дорога возможность заказ полувагон месяц вперёд . В дальнейший торг быть идти долгосрочный лот доступный вид подвижный состав расширить . замгендиректор фгк пояснить что цель электронный площадка являться формирование рыночный уровень стоимость услуга . директор маркетинг компания рейл коммерс юрлицо торговый площадка дергун рассказать лента . что торговый марка биржа вагон быть зарегистрировать полтора месяц площадка возникнуть как стартап год . слово railcommerce размещать вагон основное средний размер оператор как уральский транспортный компания псковвтормет . фгк стать крупный клиент парк ограничиться примерно тысяча полувагон . пилотный торг подвижный состав фгк начаться добавить дергун . весной год фас россия одобрить сделка передача парк вагон компания увз логистика тысяча единица управление фгк . ведомство выдать ряд предписание направить сдерживание рост цена . ржд быть рекомендовать организовать торг биржа обеспечить размещение процент предложение перевозка груз универсальный подвижный состав . парк грузовой вагон компания управлять фгк составлять тысяча единица . российский рынок грузовой вагон оцениваться эксперт примерно миллион единица . |ngramms российский_оператор грузовой_вагон грузовой_вагон грузовой_вагон грузовой_компания дочерний_структура российский_железный_дорога пресс_релиз поступить_в_редакция подвижный_состав подвижный_состав подвижный_состав подвижный_состав подвижный_состав торговый_площадка торговый_площадка участник_рынок отмечаться_в_сообщение В_настоящее_время железный_дорога В_дальнейший торг_быть __пояснить рыночный_уровень стоимость_услуга торговый_марка быть_зарегистрировать транспортный_компания крупный_клиент фас_россия тысяча_единица тысяча_единица рост_цена российский_рынок миллион_единица +1172 |text министерство финансы россия готовить налоговый реформа результат нефтедобывающий компания прийтись платить большой налог добыча некоторый месторождение . сообщать ссылка источник минэнерго минфин черновик предложение . собеседник рассказать агентство что идти отмена налоговый льгота фактически новый месторождение . В настоящее время vygon consulting налоговый льгота распространяться новый действующий месторождение . предложение минфин укладываться логика масштабный налоговый реформа нефтяной отрасль рамка планироваться дополнить налог добыча полезный ископаемое ндпить экспортный пошлина налог добавить доход . В настоящее время суммарный ставка ндпить таможенный пошлина составлять месторождение процент цена нефть . компания льготник действовать налоговый ставка . подсчёт главный экономист vygon consulting ежовый ставка налог быть нулевой новый месторождение возврат инвестиция . предложение минфин пройти как инвестиция окупиться суммарный ставка налог месторождение составить процент вне зависимость наличие льгота . нефтедобывающий компания прийтись платить процент положительный денежный поток . сложный экономический ситуация девальвация рубль прошлое год правительство россия прийтись отложить обещать снижение экспортный пошлина вывоз нефть . В год быть решение заморозка пошлина уровень процент год . первоначально увеличение доходный часть бюджет минфин предлагать снять сливка нефтяной отрасль получить дополнительный доход девальвация рубль есть повысить ндпить . ведомство решить заморозить пошлина . подсчёт минфин мера принести дополнительно миллиард рубль бюджет . С год нефть brent подешеветь доллар баррель . ход торг цена нефть марка brent опускаться доллар баррель . |ngramms финансы_россия налоговый_реформа налоговый_реформа компания_прийтись компания_прийтись платить_большой рассказать_агентство налоговый_льгота налоговый_льгота новый_месторождение новый_месторождение В_настоящее_время В_настоящее_время предложение_минфин предложение_минфин нефтяной_отрасль нефтяной_отрасль экспортный_пошлина суммарный_ставка суммарный_ставка таможенный_пошлина цена_нефть как_инвестиция денежный_поток экономический_ситуация девальвация_рубль девальвация_рубль правительство_россия прийтись_отложить минфин_предлагать миллиард_рубль доллар_за_баррель доллар_за_баррель цена_на_нефть +1173 |text оборот группа компания техносерв упасть год процент миллиард рубль сравнение итог год . сообщение компания . причина падение оборот управлять директор техносерв назвать стагнация российский . В структура бизнес техносерв основный доля оборот генерировать направление системный интеграция процент консалтинговый услуга давать процент разработка программный обеспечение процент выручка прочий сфера деятельность приходиться процент . интеграционный направление основный часть оборот принести проект оператор государственный структура транспортный предприятие процент соответственно . разрабатывать программный обеспечение фирма рексофт входящая группа компания техносерв основный доля доход принести проект банк процент государственный структура процент . распределение доля зарубежный российский клиент остаться неизменный треть оборот фирма получать российский рынок . группа компания техносерв расположить москва региональный отделение находиться владивосток волгоград екатеринбург краснодар нижний новгород новосибирск . дочерний предприятие работать алматы баку бишкек ереван киев минск ташкент . численность сотрудник человек . |ngramms группа_компания группа_компания группа_компания миллиард_рубль причина_падение _ управлять_директор ит_рынок основный_доля основный_доля программный_обеспечение программный_обеспечение сфера_деятельность основный_часть принести_проект принести_проект государственный_структура государственный_структура процент_соответственно доля_зарубежный штаб_квартира расположить_в_москва нижний_новгород санкт_петербург дочерний_предприятие численность_сотрудник +1174 |text авиакомпания входящая группа аэрофлот тестовый режим внедрить новый бесплатный услуга развлечение воздух стриминговый система airfi venus box . перевозчик поступить лента . . airfi venus box современный развлекательный система высокоскоростной передача мультимедиа контент персональный устройство пассажир . пассажир смочь воспользоваться развлекательный программа просмотр время полёт собственный ноутбук планшет смартфон . программа содержимый фильм зарубежный отечественный производство включая сериал тв шоу детский канал новость спортивный автомобильный рубрика видеоклип музыка аудиокнига журнал популярный игра . получить доступ дать система пассажир подключить ноутбук планшет смартфон бесплатный wifi борт воздушный судный . услуга быть предоставляться пассажир воздушный суд маршрутный сеть авиакомпания . aurora airfi реализоваться аврора совместно голландский компания airfi bv . |ngramms входящая_в_группа пресс_релиз смочь_воспользоваться отечественный_производство дать_система воздушный_судный воздушный_суд маршрутный_сеть +1175 |text газпром необходимый снижать издержка . как сообщать заявить глава минэкономразвития . быть проводить линия снижение издержка компания компания заинтересовать сообщить министр . добавить что есть немало возможность . стать что правительство выдвинуть совет директор газпром . В управлять орган чиновник быть представлять интерес российский федерация . новый состав совет директор компания акционер холдинг проголосовать годовой собрание наметить год . В настоящее время совет входить член кабинет министр глава минэнерго новак . кандидатура включить новый список кандидат . занимать пост глава министерство экономический развитие год . предшественник быть белоус . девять год проработать центробанк год год минфин . газпром российский энергетический компания . заниматься геологоразведка добыча транспортировка хранение переработка продажа газа газовый конденсат нефть . доля компания мировой запас газа процент . процент акция корпорация принадлежать государство лицо росимущество . пакет процент владеть государственный компания роснефтегаз росгазификация соответственно . |ngramms заявить_глава _ _ сообщить_министр что_правительство управлять_орган представлять_интерес российский_федерация новый_состав совет_директор_компания годовой_собрание В_настоящее_время глава_минэнерго новый_список занимать_пост глава_министерство экономический_развитие девять_год энергетический_компания продажа_газа доля_компания запас_газа процент_акция принадлежать_государство процент_владеть государственный_компания +1176 |text букмекерский компания bwin объявить начало акция теннисный безумие итог участник получить фрибета freebet разный номинал сообщаться сайт компания . новый акция приурочить стартовать мельбурн турнир серия большой шлем australian open . акция мочь зарегистрировать клиент bwin.ru заключить пари матч коэффициент . В зачёт идти пари тип ординар событие мужской женский одиночный разряд . пари время сутки . В прематч лайва . пари сумма . суммироваться пари как выигрышный проигрышный отмечаться сайт . окончание акция участник зависимость игровой активность bwin быть начислить фрибета номинал рубль . букмекер bwin официально начать работа россия год стать история международный букмекер начать приём интерактивный ставка российский клиент . компания bwin основать год бренд принадлежать игровой холдинг gvc . партнерский соглашение бренд bwin иметь ряд европейский футбольный клуб боруссия дортмунд мадрид севилья валенсия . |ngramms объявить_о_начало сообщаться_на_сайт начать_работа ряд_европейский футбольный_клуб +1177 |text аэрофлот сократить процент офисный работник сообщить лента . начальник департамент авиакомпания общественность . уточнить что аэрофлот работать тысяча человек . идти процент сокращение численность офисный работник количество составлять процент есть человек прима . лента . сообщить . образ идти увольнение сотня человек . не_смочь назвать срок быть провести оптимизация штат что вопрос обсуждаться . гендиректор аэрофлот сообщить что перевозчик приступить оптимизация численность персонал как головной компания дочерний оренбургский авиалиния авиакомпания россия . аэрофлот отказываться маршрут не_окупаться расход топливо зарплата экипаж . слово подобный мера обусловить снижение спрос . летний расписание как сообщаться быть исключить рейс дубровник вар краков пунт кан торонто . |ngramms начальник_департамент _ _ тысяча_человек не_смочь_назвать оптимизация_штат численность_персонал головной_компания подобный_мера снижение_спрос быть_исключить +1178 |text лукойл получить предложение продажа нефтеперерабатывающий завод petrotel румыния намеренный соглашаться сделка . заявить нефтепереработка нефтехимия газопереработка холдинг передавать интерфакс . суд наложить арест актив лукойл румыния . не_уточнить кто поступить предложение продажа petrotel что останавливать предприятие компания не_намерить . не_планировать закрывать завод быть наложить арест быть вынудить сделать цитировать . счесть странный что лукойл получить предложение предприятие что европа завод покупать не_собираться . слово компания просить встреча представитель румынский правительство просьба пора не_удовлетворить . решение суд арест актив слово опротестовать вышестоящий инстанция . причина сложиться ситуация как мочь стать стремление власть румыния взимать лукойл большой налог . В городской суд румынский плоешти иск прокуратура решение арест имущество счёт лукойл страна сумма миллиард евро . местный сообщать что идти британский голландский счёт lukoil europe holdings bvatrium holland владеть нпз петротёл лукойл petrotel lukoil плоешти . отмечаться что причина арест стать подозрение отмывание деньга уклонение уплата налог . В рамка расследоваться деятельность сотрудник нпз петротёл лукойл российский гражданин . убыток действие подозревать румынский сторона оценивать миллион евро . В год нпз петротёл лукойл быть провести обыск изъять бухгалтерский документ предприятие приостановить работа . В ситуация вмешаться румыния понт поскольку безработный мочь оказаться тысяча сотрудник нпз производство быть возобновить . лукойл являться величина игрок румынский нефтяной рынок . помимо нпз компания приобрести год принадлежать сеть азс . |ngramms получить_предложение получить_предложение нефтеперерабатывающий_завод вице_президент _ суд_наложить _не_уточнить поступить_предложение наложить_арест быть_вынудить топ_менеджер завод_покупать встреча_с_представитель решение_суд сложиться_ситуация мочь_стать власть_румыния большой_налог городской_суд арест_имущество что_причина уплата_налог В_рамка сотрудник_нпз российский_гражданин действие_подозревать миллион_евро быть_провести приостановить_работа премьер_министр мочь_оказаться тысяча_сотрудник производство_быть нефтяной_рынок принадлежать_сеть +1179 |text правительство россия утвердить директива покупка роснефть государственный доля башнефть . сообщить источник новость минэнерго . собеседник агентство уточнить что роснефть тендер приобрести госпакет процент уставный капитал акция башнефть . сумма сделка оцениваться миллиард рубль . как сообщить источник rambler service правительственный директива не_предполагать отказ конкурсный торг . директива указующий разрешительный . пункт . быть что совет директор роснефть разрешаться участвовать тендер сообщить агентство федеральный чиновник . документ содержаться ограничение сумма сделка право роснефть подписать договор добавить источник . собеседник агентство сообщить что порядок продажа быть дополнительно определить распоряжение правительство . совет директор роснефть единогласно одобрить проведение крупный сделка . В сообщение компания указываться что деталь быть раскрытый поздний установленный порядок . информация источник rambler service соглашение касаться приватизация башнефть . глава минэкономразвития заявить что инвестконсультант приватизация башнефть рекомендовать провести продажа актив лот . слово власть россия состояние провести сделка . роснефть заявка приватизация подать российский фонд прямая инвестиция лукойл фонд энергия независимый нефтегазовый компания русснефть татнефть татнефтегаз . В настоящее время процент акция башнефть федеральный пакет процент плюс акция принадлежать республика башкортостан . региональный власть доля продавать не_планировать . |ngramms правительство_россия собеседник_агентство собеседник_агентство уставный_капитал сумма_сделка сумма_сделка миллиард_рубль как_сообщить rambler_news_service rambler_news_service совет_директор совет_директор сообщить_агентство федеральный_чиновник подписать_договор добавить_источник что_порядок распоряжение_правительство крупный_сделка В_сообщение деталь_быть глава_минэкономразвития __заявить продажа_актив российский_фонд прямая_инвестиция нефтегазовый_компания В_настоящее_время процент_акция процент_плюс республика_башкортостан региональный_власть +1180 |text газпром итог третье квартал год получить чистый убыток размер миллиард рубль сообщать rambler service ссылка финансовый отчётность компания . аналогичный период прошлое год нефтегазовый холдинг заработать миллиард рубль прибыть . совокупный доход акционер монополия несмотря отрицательный экономический результат работа вырасти процент составить миллиард рубль . выручка газпром квартал вырасти триллион рубль триллион операционный расход увеличиться миллиард рубль . чистый долг компания прошлое год составить миллиард рубль увеличиться конец процент . В прошлое год сообщаться что совокупный доход член правление газпром итог девять месяц составить миллиард рубль процент большой . председатель правление госкомпания впервые возглавить рейтинг дорогой российский версия журнал forbes . издание оценивать вознаграждение год миллион доллар . |ngramms третье_квартал получить_чистый убыток_в_размер сообщать_rambler_news_service финансовый_отчётность аналогичный_период_прошлое_год миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль совокупный_доход совокупный_доход результат_работа триллион_рубль операционный_расход чистый_долг прошлое_год прошлое_год член_правление девять_месяц процент_большой председатель_правление _ возглавить_рейтинг топ_менеджер журнал_forbes миллион_доллар +1181 |text арбитражный суд липецкий область признать незаконный решение налоговый инспекция доначислить расположить регион фабрика росить миллион рубль налог отказаться возмещать миллион рубль ндс . сообщаться сайт суд . арбитраж обязать налоговый орган возместить фабрика сумма налог добавить стоимость устранить нарушение допустить отношение лкф росить . В материал суд сообщаться что фабрика росить оспорить решение межрайонный инспекция федеральный налоговый служба крупный налогоплательщик липецкий область год . первое решение обязывать фабрика доплатить бюджет квартал год миллион рубль налог добавить стоимость пеня штраф . второе решение фнс отказать фабрика применение налоговый вычет ндс указанный период возврат миллион рубль . внимание налоговый служба привлечь договор росить строительный фирма металлимпресс . В фнс ссылка провести экспертиза заявить что строительный работа подрядчик выполняться завысить цена . мнение налоговик фабрика получить необоснованный выгода выражаться завышение налоговый вычет ндс приобретение товар услуга контрагент . представитель росить заявить что налоговый орган отсутствовать основание как доначисление налог добавить стоимость отказ возмещение . решение арбитражный суд вступить сила месяц не_быть обжаловать апелляционный порядок . В имущество липецкий фабрика входящая украинский корпорация roshen президент страна быть арестовать следственный комитет россия рамка расследование уголовный мошенничество . падение объём производство фабрика сокращать большой часть сотрудник . |ngramms арбитражный_суд арбитражный_суд липецкий_область липецкий_область признать_незаконный миллион_рубль миллион_рубль миллион_рубль миллион_рубль налоговый_орган налоговый_орган добавить_стоимость добавить_стоимость добавить_стоимость В_материал налоговый_служба налоговый_служба применение_налоговый провести_экспертиза строительный_работа вступить_в_сила липецкий_фабрика корпорация_roshen президент_страна _ быть_арестовать следственный_комитет падение_объём большой_часть +1182 |text годовой собрание акционер камаз утвердить совет директор компания кандидатура бывший министр оборона россия . сообщать ссылка материал компания . В совет директор сердюк прийти смена бывший председатель вэб . В новый состав совет директор акционер переизбрать гендиректор камаз глава госкорпорация ростёха чемезов замглавы ростех глава подразделение daimler ag вольфрам шмид развитие бизнес грузовой автомобиль daimler россия . состав совет директор остаться председатель профсоюзный комитет работник камаз бывший татарстан председатель совет директор автоваз скворцовый гендиректор президент ооо партнёр . российский компания занимать место ведущий мировой производитель тяжёлый грузовой автомобиль восемь место мир объём выпуск дизельный двигатель . В состав технологический цепочка группа входить крупный завод автомобильный производство подразделение вспомогательный цикл . В настоящее время компания выпускать автобус трактор комбайн электроагрегат тепловой комплектовать . основный производство расположить город набережная челны . крупный акционер камаз являться госкорпорация ростёха процент . акционер российский производитель грузовик зарегистрировать кипр avtoinvest limited процент германский автоконцерн daimler процент американский kamaz international management процент ооо компания камаз процент кипрский decodelement services limited процент . |ngramms собрание_акционер совет_директор_компания министр_оборона россия__ материал_компания совет_директор совет_директор совет_директор бывший_председатель _ _ _ _ _ _ новый_состав глава_госкорпорация вице_президент грузовой_автомобиль грузовой_автомобиль премьер_министр председатель_совет_директор президент_ооо __и__ российский_компания мировой_производитель место_в_мир дизельный_двигатель В_состав группа_входить крупный_завод В_настоящее_время мини_электростанция расположить_в_город крупный_акционер российский_производитель финансово_лизинговый +1183 |text компания татнефтегаз намереваться приобрести временной владение госпакет акция башнефть сообщать ведомость . компания предлагать выкупить процент плюс акция срок десять год . письмо исполнительный директор татнефтегаз бахир президент россия . В случай согласие росимущество владеть процент акция правительство башкирия процент плюс акция получить миллиард доллар соответственно . В настоящее время московский биржа процент башнефть оцениваться миллиард доллар . башнефть направлять дивиденд процент чистый годовой прибыть . В письмо что удвоение цена нефть сумма выплата дивиденд десять год не_превысить миллиард доллар . сделка предусматривать гарантия ежегодный доплата согласовать формула следующий год случай рост нефтяной цена . истечение год стоимость чистый актив башнефть оказаться дата продажа татнефтегаз обязываться вернуть разница . выше оставить процент разница . татнефтегаз обязываться согласовать сделка миноритария выкупить акция взять социальный программа башнефть . отмечаться что письмо наличествовать рука написать поручение помощник президент министр экономический развитие рассмотреть предложение проработка вопрос приватизация . стать что росимущество рекомендовать не_спешить проведение большой приватизация . ведомство предлагать продавать госсобственность стратегический инвестор купить крупный пакет акция публичный рынок актив можно быть реализовать прозрачный нормальный цена . большой приватизация необходимый пополнение дефицитный бюджет . разрыв доход расход составлять триллион рубль . минфин рассчитывать получить приватизация миллиард рубль . миллиард продажа контрольный пакет башнефть процент процент алроса примерно миллиард процент роснефть . президент россия потребовать не_продавать госпакет акция бесценок . подчеркнуть что реализация госимущество быть экономически оправдать целесообразный необходимый учитывать конъюнктура тенденция рынок . мнение президент контрольный пакет системообразующий госкомпания остаться рука государство . |ngramms госпакет_акция госпакет_акция компания_предлагать процент_плюс процент_плюс десять_год десять_год исполнительный_директор президент_россия__ президент_россия__ В_случай процент_акция В_настоящее_время миллиард_доллар миллиард_доллар процент_чистый В_письмо цена_на_нефть выплата_дивиденд нефтяной_цена чистый_актив вернуть_разница социальный_программа министр_экономический_развитие _ вопрос_приватизация что_росимущество большой_приватизация большой_приватизация стратегический_инвестор пакет_акция можно_быть триллион_рубль миллиард_рубль контрольный_пакет контрольный_пакет необходимый_учитывать тенденция_рынок рука_государство +1184 |text mail.ru group текущий год реализовать остаться пакет акция социальный сеть facebook полностью выйти капитал . официальный российский организация сообщаться результат работа половина текущий год . пакет миллион процент акция социальный сеть mail.ru group выручить миллион доллар . кома быть ценный бумага группа не_сообщить . исходить дать mail.ru group акция facebook быть цена примерно доллар штука . биржа nasdaq стоимость ценный бумага facebook колебаться доллар . С середина котировка соцсеть начать растить цена акция facebook подняться примерно доллар . В целое год выручка mail.ru group вырасти процент сравнение аналогичный период предыдущий год достигнуть миллиард рубль . чистый прибыль первое полугодие увеличиться процент миллиард рубль . mail.ru group начало постепенно сокращать доля facebook прошлое год . российский компания продавать принадлежащий акция соцсеть . В когда facebook провести ipo mail.ru group получить ценный бумага миллион доллар примерно миллион . В прошлое год управлять директор mail.ru group хаммонд рассказать что компания мочь направить средство получить продажа иностранный актив покупка доля российский компания . В мочь идти увеличение пакет mail.ru group социальный сеть вконтакте . |ngramms интернет_компания текущий_год текущий_год пакет_акция пресс_релиз российский_организация социальный_сеть миллион_доллар миллион_доллар ценный_бумага ценный_бумага ценный_бумага акция_facebook доллар_за_штука цена_акция В_целое год_выручка аналогичный_период предыдущий_год миллиард_рубль миллиард_рубль чистый_прибыль российский_компания российский_компания провести_ipo прошлое_год управлять_директор group_ что_компания_мочь получить_от_продажа иностранный_актив +1185 |text группа юный эколог журналист ученик астраханский школа совершить кизанский осетровый рыбзавод . мероприятие состояться рамка проект greenкор рассказать что мир зелёный ! приурочить год экология регион сообщать поступить редакция лента . . кизанский завод посетить школьник старый предприятие рыбоводческий отрасль россия . работать год . специалист показать ребята производственный цикл интересный зрелищный процесс называть дойка осетровый прижизненный изъятие икра . полтора месяц икринка появиться малёк подрастить выпустить река . В прошлое год завод выпустить миллион осетровый . усилие приносить плод . учёный зафиксировать рост популяция осетровый каспийский мор . В год количество осетровый русский осётр мор увеличиться приблизительно процент сравнение год . связывать успех воспроизводство сообщить замдиректора научный работа каспийский институт рыбный хозяйство каспнирх . следующий пункт программа стать встреча сотрудник областной умвд волго каспийский территориальный управление федеральный агентство рыболовство рассказать особенность работа как идти борьба браконьер . полиция начало год изъять сотня килограмм незаконно выловить осетровый . сюрприз юный стать мастер класс затевахина известный российский тело радиоведущий создатель программа диалог животное телеканал россия . обсуждение экологический проблема получить логический продолжение встреча губернатор астраханский область . В беседа школьник глава регион что норма вылов рыба дельта волга пойма год мочь ограничить килограмм человек . мнение советский время разрешаться вылавливать килограмм рыба . проект greenкор рассказать что мир зелёный ! реализовать каспийский поддержка компания газпром добыча астрахань . замысел организатор дальнейший стать традиционный . В неделя школьник создать журналистский продукт статья видеосюжет фоторепортаж . публикация быть разместить региональный . работа быть выдвинуть конкурс каспийский мечта пройти осень рамка очередной каспийский медиафорум . |ngramms пресс_тур пресс_тур мероприятие_состояться пресс_релиз поступить_в_редакция отрасль_россия полтора_месяц В_прошлое_год зафиксировать_рост год_количество научно_исследовательский _ федеральный_агентство известный_российский научно_популярный область__ глава_регион советский_время пресс_центр быть_разместить работа_быть +1186 |text корпорация toyota motor конец год прекратить выпускать автомобиль территория австралия . официальный компания . как указывать presse уход toyota автомобильный производство австралия фактически прекратиться . японский корпорация оставаться единственный крупный концерн выпускать машина территория страна исключение небольшой местный автофирма . как пояснить toyota решение сворачивание производство быть причина . В высокий себестоимость выпуск автомобиль слабый позиция австралийский доллар экспорт автомобиль стать невыгодный . В корпорация что toyota motor corporation australia быть преобразовать компания продажа местный сотрудник помочь дальнейший трудоустройство закрытие производство . В профсоюз australian manufacturing workers заявить что уход toyota австралийский рынок мочь спровоцировать рецессия страна . В местный подразделение toyota быть основать год работать тысяча человек . В прошлое год сворачивание производство австралия конец год заявить концерн general motors результат работа остаться тысяча австралийский работник gm . В год производство страна свернуть ford mitsubishi подобный решение . |ngramms год_прекратить выпускать_автомобиль пресс_релиз как_указывать уход_toyota автомобильный_производство японский_корпорация оставаться_единственный выпуск_автомобиль австралийский_доллар экспорт_автомобиль компания_по_продажа что_уход рынок_мочь местный_подразделение тысяча_человек прошлое_год general_motors производство_в_страна +1187 |text продажа автомобиль lada месяц год вырасти процент сравнение аналогичный период год тысяча штука . сообщаться ассоциация европейский бизнес аеб поступить редакция лента . . россиянин стать покупать большой kia renault . реализация машина марка увеличиться процент соответственно обладатель продукция корейский автоконцерн стать тысяча человек французский тысяча . успешный начать год оказаться немецкий volkswagen тысяча машина продемонстрировать рост . В целое спрос легковой лёгкое коммерческий авто продолжать снижаться . аеб россия быть тысяча машина что процент худой период прошлое год . председатель комитет автопроизводитель аеб шрайбер что наблюдаться разнонаправленный динамик продажа бренд бренд что рынок не_смочь выйти плюс . некоторый традиционный лидер сделать вклад аналогичный период прошлое год . возможный причина разнообразный можно предположить что временной . предположение улучшать перспектива рынок предстоящий месяц указать . ассоциация продажа hyundai месяц упасть процент тысяча машина . взлететь продажа renault позволить французский автопроизводитель оттеснить месяц корейский конкурент третье место . продажа упасть входящая десятка популярность российский рынок toyota nissan процент . снизиться спрос ford mercedes benz bmw mitsubishi audi lifan land rover . увеличить продажа koda уаз chevrolet datsun lexus mazda infiniti ряд . В прошлое год россия быть миллион легковой лёгкое коммерческий автомобиль . прогноз аеб год рост рынок процент продажа составить миллион машина . В год стать что продолжиться господдержка российский авторынок программа утилизация trade льготный кредитование автолизинг . |ngramms продажа_автомобиль сравнение_с_аналогичный_период тысяча_штука пресс_релиз ассоциация_европейский_бизнес поступить_в_редакция покупать_большой процент_соответственно тысяча_человек тысяча_машина тысяча_машина тысяча_машина В_целое лёгкое_коммерческий лёгкое_коммерческий период_прошлое_год председатель_комитет автопроизводитель_аеб аналогичный_период_прошлое_год возможный_причина можно_предположить увеличить_продажа В_прошлое_год рост_рынок продажа_составить миллион_машина +1188 |text президент россия заявить что правительство не_намерить продавать газпром не_терять вера компания несмотря что десятилетие холдинг потерять процент капитализация долларовый выражение . глава государство сообщить интервью агентство bloomberg опубликовать . добавить что газпром настоящее время явно недооценить . объяснить нежелание российский власть приватизировать особенность российский экономика социальный сфера российский энергетика . слово глава государство функция холдинг обеспечить бесперебойный прохождение страна осенний зимний максимум справляться функция . президент сообщить что оценка газовый холдинг носить спекулятивный характер власть не_беспокоить . знать что газпром что стоить что быть стоить ближний год несмотря допустить развитие газа соединить штат где регион мир . трубный газ быть дешёвый констатировать . добавить что газовый монополист наращивать экспорт страна традиционный партнёр наиболее активно европа . несмотря проблема менеджмент газпром предпринимать необходимый шаг проблема решать бороться интерес мировой рынок добавить . |ngramms президент_россия__ что_правительство глава_государство глава_государство сообщить_в_интервью агентство_bloomberg российский_власть российский_экономика социальный_сфера газовый_холдинг быть_стоить соединить_штат _добавить наиболее_активно мировой_рынок добавить_ +1189 |text пример банкротство видный безусловный политический воля разрешение проблема пострадавший дольщик государство брать ситуация контроль результат объект достраиваться разный схема финансирование . мнение высказать профессор высокий школа экономика авторский статья комсомольский правда комментировать банкротство urban group недавний время крупный застройщик подмосковье . что касаться urban group дольщик застройщик причислять обмануть нет никакой основание подчеркнуть . процедура банкротство начаться как объяснять минстрой способ скорый возобновление строительство . руководство подмосковье федеральный правительство достигнуть договорённость что объект быть достроить заниматься фонд защита право гражданин участник долевой строительство эксперт . слово губернатор московский область заверить что областной правительство взять завершение строительство сопутствующий социальный инфраструктура . половина необходимый средство выделить федеральный бюджет процент региональный . слово начало парламент московский область решение увеличение областной бюджет год выделение миллиард рубль стройка . стартовать приём документ дольщик включение реестр требование передача жилой помещение . подмосковье открытый специализировать центр ряд приостановить стройка . навстречу дольщик идти сбербанк портфель сотня ипотечный кредит проект urban group продлить заёмщик срок подтверждение целевой использование заём год писать профессор вшэ . предостерегать гражданин участник дду досрочный расторжение договор долевой . мнение экономически нецелесообразный . факт практически не_спорить . разница стоимость строиться готовый жильё причина прогнозировать рост цена новостройка дальнейший эксперт . фон нагнетать объект urban ситуация появляться информация попытка подтолкнуть дольщик расторжение договор долевой предпринимать агентство недвижимость всевозможный толк юрист цель выкуп будущий квартира занизить стоимость . И не_рекомендовать делать . учитывать скорость развитие ситуация можно уверенность что новый застройщик объект urban быть вывести площадка ближний время подытожить . |ngramms профессор_высокий школа_экономика _ _ что_касаться нет_никакой процедура_банкротство федеральный_правительство достигнуть_договорённость объект_быть защита_право московский_область московский_область областной_правительство завершение_строительство социальный_инфраструктура федеральный_бюджет миллиард_рубль жилой_помещение появляться_информация что_новый быть_вывести ближний_время +1190 |text министерство массовый коммуникация предложить фгуп почта россия привлечение квалифицировать кадр увеличить средний зарплата тысяча рубль . номер писать газета известие ссылка материал ведомство описываться модель развитие предприятие . сотрудник следующий год предлагаться сократить процент . В материал отмечаться что увеличение доход сотрудник год обернуться предприятие убыток размер миллиард рубль . выйти безубыточный уровень зарплата нужно повысить тысяча рубль . эффективный работа фгуп сократить процент расход логистика сортировка почтовый отправление увеличить тариф отправка бандероль процент отмечать минкомсвязи . ведомство прогнозировать что год количество посылка пересылать почта россия вырасти миллион миллион штука письмо миллиард миллиард штука . предыдущий вариант стратегия минкомсвязи признать несостоятельный . В немой предлагаться разделить фгуп предприятие обслуживание население логистический компания впоследствии можно быть приватизировать . В новый вариант стратегия сценарий не_упоминаться . неделя министр заявить что преобразование почта россия понадобиться год . отмечать что программа модернизация фгуп планироваться представить рассмотрение правительство летом год . начало модернизация почта россия сообщить новый гендиректор предприятие страшновый . назначить вместо правительство досрочно отправить отставка днями . |ngramms массовый_коммуникация почта_россия почта_россия почта_россия почта_россия средний_зарплата тысяча_рубль тысяча_рубль писать_газета финансово_экономический модель_развитие В_материал увеличение_доход убыток_в_размер миллиард_рубль эффективный_работа год_количество миллион_штука вариант_стратегия В_немой логистический_компания новый_вариант __заявить новый_гендиректор _ +1191 |text hilcorp energy крупный частное американский компания заниматься добыча природный газа нефть объявить что выдать сотрудник бонус . обещать сумма конец год получить работник составлять тысяча доллар сообщать fox . forbes отмечать что год когда hilcorp energy удвоить добыча ископаемое глава компания миллиардер джефри jeffery hildebrand предоставить сотрудник выбор взять тысяча доллар потратить исключительно автомобиль получить тысяча наличный цель . В год несмотря неутешительный конъюнктура hilcorp вновь увеличить добыча нефть тысяча баррель сутки . В работник намерить выплатить качество премия тысяча доллар . подарок секретарь amanda thompson работать компания год . hilcorp основать год находиться хьюстон штат техас . В год подряд попасть список fortune хороший компания трудоустройство . состояние руководитель оцениваться миллиард доллар . войти сотня богатый американец версия forbes . |ngramms крупный_частное американский_компания заниматься_добыча природный_газа тысяча_доллар тысяча_доллар тысяча_доллар forbes_отмечать глава_компания В_это_год добыча_нефть тысяча_баррель _ работать_в_компания штаб_квартира попасть_в_список миллиард_доллар +1192 |text компания usm holdings объявить выкуп процент собственный акция мажоритарный акционер . ценный бумага быть распределить управлять холдинг значиться председатель совет директор оао металлоинвест стрешинский генеральный директор оао мегафон член совет директор usm . стоимость сделка не_разглашаться . стрешинский быть принадлежать процент акция usm . процент быть передать менеджер помогать создавать usm holdings . процент распределить управленец группа дочерний компания металлоинвест . как сообщить лента . холдинг переставать быть контролировать акционер usm holdings . прежний быть принадлежать крупный пакет акция компания размер составить процент . доля связать что многолетний деловой партнёр господин конвертировать косвенный экономический интерес принадлежать имя протяжение длительный время прямой владение акция usm . выручить продажа процент акция средство намеренный инвестировать добывать сектор сфера высокий технология производство различный регион мир . изменение структура капитал usm holdings как сообщить лента . направить мотивация поощрение ключевой менеджер группа . решение быть господин год ход создание usm . возможность быть указать проспект эмиссия акция оао мегафон . В немой что процент акция usm мочь быть распределить руководитель холдинг . компания указывать что намеренный отходить роль как основатель usm остаться ключевой . А usm holdings оставаться крупный актив бизнесмен . возглавлять группа дальнейший продолжить нынешний председатель совет директор моширь . |ngramms usm_holdings usm_holdings usm_holdings usm_holdings usm_holdings собственный_акция _ _ _ _ _ ценный_бумага председатель_совет_директор председатель_совет_директор генеральный_директор совет_директор стоимость_сделка быть_принадлежать быть_принадлежать процент_акция процент_акция процент_акция быть_передать дочерний_компания как_сообщить как_сообщить пресс_служба контролировать_акционер пакет_акция_компания деловой_партнёр акция_usm высокий_технология медиа_контент регион_мир менеджер_группа акция_оао В_немой мочь_быть основатель_usm крупный_актив +1193 |text масштабный отзыв лицензия российский банк подходить конец заявить заместитель председатель цб . цитировать агентство . массировать этап отзыв лицензия потихоньку завершаться подходить этап завершение финансовый оздоровление банковский сектор . В год цб отозвать лицензия банк . кредитный организация траст рост банк советский автовазбанк азиатско тихоокеанский банк быть передать санация фонд консолидация банковский сектор подконтрольный регулятор . В год лицензия быть отозвать банк открытие бинбанк промсвязьбанк отправиться санация . помимо рейтинговый агентство эксперт представить свежевать версия индекс здоровье банковский сектор . итог половина год значение достигнуть процент процент начать год . автор что банковский система оставаться значительный участник вовсе свернуть традиционный банковский деятельность сделать ставка рискованный бизнес модель . В ближний год прогноз агентство банк мочь объявить дефолт невозможность расплачиваться обязательство . |ngramms масштабный_отзыв российский_банк заместитель_председатель _ цитировать_агентство отзыв_лицензия банковский_сектор банковский_сектор банковский_сектор кредитный_организация быть_передать быть_отозвать банковский_система традиционный_банковский В_ближний мочь_объявить +1194 |text ikea планировать год расширить ассортимент продукция наладить выпуск ковровый текстиль изготовить жить иордания сирийский беженец . сообщать cnn . образ известный шведский компания намерить создать рабочий место примерно человек очередь женщина . пообещать создать гибкий график работа хватать время воспитание ребёнок . ситуация сирия масштабный трагедия время иордания взять большой ответственность размещение сирийский беженец . решить подумать как ikea мочь внести вклад цитировать телеканал компания йесперо бродина . вещий производство предполагаться привлечь беженец сирийский арабский республика планироваться выпускать ограниченный партия продавать ближний восток страна заключить иордания соглашение свободный торговля . инициатива ikea направить поддержка иммигрант . создать специалист компания проект жильё беженец быть удостоить престижный премия хороший дизайн год . пожертвовать миллион евро программа обеспечение электричество лагерь беженец ближний восток африка азия . оон иордания разместить свыше тысяча сириец имя выдать порядок тысяча разрешение работа многие беженец работать необходимый документ . уровень занятость женщина крайне низкий поскольку плечо лежать большой часть семейный обязанность . компания ikea быть основать швеция год кампрадом нея крупный мир торговый сеть продажа мебель бытовой товар . |ngramms компания_намерить рабочий_место топ_менеджер планироваться_выпускать ограниченный_партия создать_специалист быть_удостоить престижный_премия миллион_евро разрешение_на_работа необходимый_документ крайне_низкий большой_часть торговый_сеть +1195 |text агропромышленный холдинг мираторг планировать утроить поставка мясо китай . сообщить холдинг передавать интерфакс . первое этап планироваться увеличить экспорт есть примерно тысяча тонна говядина месяц . В настоящее время мираторг поставлять тысяча тонна . холдинг рассчитывать что конец год перерабатывать предприятие получить разрешение поставка китай напрямую рассказать . В настоящее время предприятие аттестовать поставка гонконг . В время подчеркнуть что несмотря рост экспорт китай обеспечение внутренний рынок остаться компания приоритет . год мираторг планировать заместить процент импортный говядина россия . быть производить процент сегодняшний импорт . заместить процент импорт высококачественный говядина приводить слово холдинг . мираторг рассчитывать что мощность завод производство мясо крупный рогатый скот год достигнуть тысяча тонна текущий тысяча тонна . материнский стадо планироваться нарастить тысяча гол поголовье тысяча гол . слово среднесрочный перспектива планироваться уйти импорт . компания направить миллиард рубль инвестиция вэб развитие направление год закончить реализация транш . объесть инвестиция составить миллиард рубль . мираторг вертикально интегрировать агропромышленный холдинг крупный производитель поставщик мясо россия . компания основать год работать регион россия . структура холдинг включать направление растениеводство производство комбикормовый говядина мясо птица мясопереработка изготовление полуфабрикат . владелец холдинг являться брат президент компания председатель совет директор . чистый прибыль группа итог год вырасти процент миллиард рубль . выручка компания увеличиться процент достигнуть миллиард рубль . |ngramms вице_президент вице_президент _ _ планироваться_увеличить тысяча_тонна тысяча_тонна тысяча_тонна тысяча_тонна В_настоящее_время В_настоящее_время получить_разрешение рассказать_ В_то_же_время _подчеркнуть рост_экспорт внутренний_рынок завод_по_производство год_достигнуть перспектива_планироваться миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль год_закончить регион_россия структура_холдинг владелец_холдинг брат_ компания__ председатель_совет_директор чистый_прибыль выручка_компания +1196 |text совет директор мегафон одобрить сделка приобретение процент голосовать акция mail.ru group миллион доллар . сообщение оператор . условие планировать сделка мегафон приобрести миллион акция класс А миллион обыкновенный акция капиталь mail.ru group представлять приблизительно процент голосовать акция mail.ru group technology investment lp technologies capital partners limited ardoe finance limited входящая группа usm отмечаться сообщение . указанный сумма миллион доллар быть выплатить закрытие сделка остаться миллион доллар год закрытие . оператор быть владеть процент уставный капитал mail.ru group . В мегафон что завершение сделка компания продолжить работать полностью рыночный условие . команда менеджмент остаться независимый . внеочередной собрание акционер мегафон утверждение сделка наметить год . решение покупка акция подлежать согласование федеральный антимонопольный служба россия . mail.ru group занимать лидировать позиция русскоязычный сегмент сеть сайт ежемесячно посещать процент российский пользователь интернет . mail.ru group принадлежать почтовый сервис . социальный сеть вконтакте одноклассник мир портфолио крупный онлайн игра сервис maps . мессенджер агент . icq . мегафон мобильный оператор федеральный значение россия количество абонент насчитывать миллион человек . |ngramms совет_директор голосовать_акция голосовать_акция миллион_доллар миллион_доллар миллион_доллар планировать_сделка миллион_акция класс_А capital_partners входящая_в_группа отмечаться_в_сообщение указанный_сумма закрытие_сделка быть_владеть уставный_капитал завершение_сделка компания_продолжить рыночный_условие собрание_акционер покупка_акция федеральный_антимонопольный_служба сегмент_сеть пользователь_интернет group_принадлежать почтовый_сервис социальный_сеть крупный_онлайн мобильный_оператор федеральный_значение количество_абонент миллион_человек +1197 |text совет федерация не_быть переходить обслуживание мтс мегафон как не_обеспечить перенос номер сеть стандарт mnp называть отмена мобильный рабство . новость заявить глава комиссия совфеда развитие информационный общество гаттар . совет федерация находиться обслуживание мтс . поскольку мегафон условие контракт не_выполнить мтс участвовать конкурс согласиться оказывать услуга предложить мегафон цена . В совет федерация не_отказываться план перейти выиграть конкурс оператор когда появиться возможность . вечером сообщаться сайт газета ведомость ссылка неназванный источник верхний палата парламент . мегафон выиграть конкурс обслуживание номер совет федерация . условие госконтракт стать обязанность новое оператор обеспечить перенос номер сеть стандарт mnp . В конец мегафон пожаловаться что мтс не_отдавать номер . представитель компания уточнять что заявка перенос номер подаваться мтс отклонить сослаться недостоверность предоставить дать . мтс несмотря заверение технический готовность мегафон действительность не_смочь инициировать заявка перенос номер соответствие закон корректно осуществить процедура . заявка отклонить оператор база дать перенести номер центральный нии ссылаться что мтс не_отвечать запрос установленный срок . спорый мтс мегафон заинтересоваться федеральный антимонопольный служба . фас начало проверка деятельность мтс жалоба мегафон . услуга mnp доступный россия год . абонент предоставляться возможность перейти мобильный компания сохранить старый номер . необходимый написать заявка оператор . компания предоставить возможность отсрочить переход абонент середина год . |ngramms совет_федерация совет_федерация совет_федерация совет_федерация перенос_номер перенос_номер перенос_номер перенос_номер стандарт_mnp стандарт_mnp заявить_глава условие_контракт участвовать_в_конкурс выиграть_конкурс когда_появиться сообщаться_на_сайт В_конец представитель_компания _ предоставить_дать база_дать перенести_номер установленный_срок федеральный_антимонопольный_служба начало_проверка услуга_mnp старый_номер предоставить_возможность переход_абонент +1198 |text представитель корпорация развитие малое среднее предпринимательство мсп деловой программа красноярский экономический форум проходить . сообщать корпорация получить редакция лента . . В корпорация мсп совместно роснефть ржд тема субъект мсп закупка госкомпания . заместитель гендиректор корпорация рассказать мера расширение доля субъект мсп закупка крупный компания государственный . результат дать работа стать стабильный рост объём малое средний компания закупка . объесть закупка субъект мсп итог год составить триллион рубль подчеркнуть . что роснефть ржд входить крупный заказчик объём количество закупка субъект мсп корпорация быть подписать соглашение сотрудничество сфера госзакупка . В рамка деловой программа форум состояться демонстрация портал бизнес навигатор мсп . ресурс полезный как владелец бизнес кто планировать открыть . С помощь можно бесплатно определить оптимальный вид бизнес рассчитать бизнес план узнать конкурент получить информация кредитный продукт мера господдержка условие закупка крупный заказчик государственный . частью экосистема бизнес навигатор мсп являться технологический платформа поток разработать группа компания rambler совместно корпорация мсп . платформа обеспечивать предприниматель необходимый начальный этап ведение бизнес собственный сайт инструмент продвижение система аналитика отслеживание эффективность . бизнес навигатор мсп охватывать город россия красноярский край красноярск ачинск . В ближний время быть разработать мобильный приложение ресурс . |ngramms представитель_корпорация среднее_предпринимательство деловой_программа деловой_программа экономический_форум пресс_релиз корпорация_мсп корпорация_мсп субъект_мсп субъект_мсп субъект_мсп субъект_мсп заместитель_гендиректор _ дать_работа рост_объём средний_компания год_составить триллион_рубль крупный_заказчик крупный_заказчик быть_подписать соглашение_о_сотрудничество В_рамка портал_бизнес планировать_открыть вид_бизнес рассчитать_бизнес кредитный_продукт группа_компания город_россия красноярский_край В_ближний_время быть_разработать мобильный_приложение +1199 |text blackberry подать суд компания typo products llc производить чехол смартфон iphone . сообщать press . В blackberry что разработка чехол typo keyboard оснастить qwerty клавиатура компания typo products нелегально использовать технология дизайн смартфон blackberry . податель иск надеяться добиться судебный запрет производство чехол typo keyboard получение компания typo products специальный разрешение blackberry . В typo products никак не_прокомментировать подача иск . компания typo products основать партнёр популярный сша ведущий музыкальный телешоу american idol сикрест ryan seacrest . В фирма вложить миллион доллар . как заявлять основатель будущее объесть инвестиция мочь быть довести миллион доллар выше . typo keyboard представлять чехол задний панель модель iphone iphone iphone состоять часть . В нижний часть находиться клавиатура размещаться экран iphone когда чехол надеть смартфон . чехол typo keyboard поступить продажа цена доллар . В настоящее время сайт typo products доступный предзаказ . iphone выпускаться год не_иметь физический клавиатура . blackberry напротив пора выпускать классический смартфон qwerty клавиатура . продажа blackberry сильно упасть год компания уступить рынок apple производитель телефон android . |ngramms смартфон_iphone сообщать_associated_press смартфон_blackberry подача_иск миллион_доллар как_заявлять объесть_инвестиция мочь_быть модель_iphone поступить_в_продажа В_настоящее_время выпускать_классический продажа_blackberry уступить_рынок производитель_телефон +1200 |text аэропорт домодедово намеренный построить полоса впп . сообщать коммерсантъ . план содержаться проект соглашение аэропорт государство . инвестиция объект московский авиаузел год оцениваться примерно миллиард рубль . затратный мочь оказаться объект домодедово . В аэропорт строиться дополнительный полоса быть ввести первое полугодие год . старый впп стать рулёжный дорожка . впп появиться год домодедово жаловаться правительство диспаритет бюджетный финансирование отмечать что заключение концессионный соглашение столичный аэропорт подходить неравный условие . аэропорт указать что год бюджетный финансирование инфраструктура шереметьево составлять миллиард рубль внуково миллиард рубль домодедово миллиард рубль . представитель аэропорт предлагать дифференцировать плата рамка концессия большой получить выше сумма платёж . возмещение расход концессия аэропорт московский авиаузел предлагать увеличить сбор операция . авиакомпания выступать . как уточнять газета расход миллиард рубль год означать сбор рубль пассажир . постановление правительство условие концессионный соглашение развитие инфраструктура появиться середина отмечать коммерсантъ . В год российский авиакомпания понести убыток миллиард рубль . наибольший потеря прийтись внутренний перевозка . В год домодедово величина аэропорт россия обслужить миллион человек . |ngramms взлетно_посадочный взлетно_посадочный миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль мочь_оказаться первое_полугодие бюджетный_финансирование бюджетный_финансирование аэропорт_московский как_уточнять постановление_правительство российский_авиакомпания наибольший_потеря миллион_человек +1201 |text американский компания united parcel service ups подключить сотня офисный сотрудник доставка посылка повышение количество заказ преддверие рождество . сообщать wall street journal . компания праздник обычно отдельно нанимать команда помогать справиться объём заказ год ups осуществлять доставка срок быть вынудить привлечь бухгалтер маркетолог офисный сотрудник . В некоторый доставлять посылка личный транспорт попросить переодеться пойти помогать ближний отделение доставка . ups гот помощь офисный сотрудник доставка посылка преддверие рождество пояснить что компания быть важный не_возникать задержка . причина сложиться ситуация стать большой количество онлайн покупка год . ups столкнуться проблема найм сезонный рабочий поскольку сша зафиксировать низкий безработица год процент . |ngramms американский_компания экспресс_доставка wall_street_journal быть_вынудить пресс_секретарь компания_быть сложиться_ситуация большой_количество +1202 |text ржд планировать направить жалоба федеральный антимонопольный служба фас правительство кратное повышение цена поставщик компания . как передавать новость сообщить президент российский железный дорога . Я намеренный обратиться глава фас вопрос быть рассмотреть . добавить что указание базироваться реальный возможность . что мочь сделать пытаться договариваться сдерживание цена мочь компенсировать рост заявляться процент . рост процент внутрироссийский производитель обоснованный . страшный монополизм государственный частный поскольку не_регулироваться заявить . слово процент поставщик отказать ржд пересмотр цена . К пример металлург повышать стоимость продукция процент президент компания . |ngramms ржд_планировать направить_жалоба федеральный_антимонопольный_служба повышение_цена передавать_риа_новость сообщить_президент российский_железный_дорога _ _ глава_фас быть_рассмотреть _добавить пересмотр_цена К_пример президент_компания +1203 |text В сша прокурор подать иск федеральный суд манхэттен ходатайство блокирование сумма размер миллион доллар . американский минюст деньга фигурировать коррупционный сделка вымпелком мтс сообщать агентство bloomberg . как следствие vimpelcom . оао мобильный телесистема использовать сеть подставной компания фиктивный контракт консалтинговый услуга прикрыть дача взятка некого близкий родственник президент узбекистан обмен доступ рынок телекоммуникация страна . В жалоба указываться что денежный средство находиться счёт bank york mellon ирландия люксембург бельгия . как сообщать новость повод стать публикация материал суд стокгольм следовать что вымпелком виргинский water trail industries год перечислить миллион доллар компания takilant связывать дочь президент узбекистан . мтс быть вынудить уйти рынок телекоммуникационный услуга узбекистан летом год ряд обвинение сторона власть . связывать возрасти влияние дочь президент . начинать осень год впасть опал ныне фактически находиться домашний арест . быть объявить возвращение мтс узбекистан . согласно условие компания совместно государственный комитет создать совместный предприятие быть работать бренд мтс . |ngramms В_сша подать_иск сумма_в_размер миллион_доллар миллион_доллар сообщать_агентство близкий_родственник _ _ денежный_средство сообщать_риа_новость повод_стать материал_суд дочь_президент дочь_президент быть_вынудить телекоммуникационный_услуга домашний_арест согласно_условие государственный_комитет совместный_предприятие +1204 |text бизнесмен дым работать рынок колбасный изделие намеренный создать многопрофильный ритейлерский холдинг . писать рбк . В следующий год открыть магазин включая интерьерный детский . получить отдельный торговый марка . детский сеть быть называться республика kids магазин товар дом интерьер республика . режим магазин магазин планироваться развивать формат республика . aroma spa . одноимённый сеть книжный магазин основать дымовой семь год пора не_выйти территория москва . качество цель продвижение рассматриваться крупный город . В фирма рассчитывать выйти екатеринбург . логистика город мочь участвовать бизнес компания франшиза . соответствующий опыт республика есть торговый работать нахабино тепло стан . В следующий год республика планировать открыть зарубежный магазин киев . помещение новый магазин не_найти . объесть инвестиция потребоваться развитие бренд республика не_раскрываться . выручка компания прошлое год превысить полмиллиард рубль . |ngramms бизнесмен_ работать_на_рынок намеренный_создать следующий_год следующий_год торговый_марка быть_называться территория_москва санкт_петербург крупный_город ростов_на_дону город_мочь бизнес_компания соответствующий_опыт планировать_открыть новый_магазин объесть_инвестиция выручка_компания +1205 |text международный рейтинговый агентство standard poor понизить кредитный рейтинг ряд крупный российский энергетический транспортный компания передавать bloomberg . быть понизить рейтинг производитель природный газа оао газпром нефтедобывающий компания оао роснефть трубопроводный оператор оао транснефть поставщик электроэнергия оао федеральный сетевой компания единый энергетический система железнодорожный оператор оао российский железный дорога дочерний структура оао федеральный пассажирский компания . кредитный рейтинг иностранный валюта компания быть понизить ввв ввв . утром стать что рейтинговый агентство standard poor понизить суверенный рейтинг россия bbb bbb рейтинг негативный . показатель находиться ступень выше мусорный уровень . негативный прогноз эмитент отражать негативный прогноз россия отмечаться заявление S P . кредитный рейтинг организация напрямую зависеть рейтинг государство учитывать роль государство . S P понизить негативный прогноз долгосрочный кредитный рейтинг иностранный национальный валюта банка втб дочерний структура втб страхование втб лизинг втб лизинг банк москва втб капитал bbb bbb передавать . В fitch агентство большой тройка ухудшить прогноз рейтинг россия стабильный негативный . В компания объяснить пересмотр рейтинг потенциальный воздействие санкция российский экономика деловой климат . В ответ снижение рейтинг международный агентство российский власть заявить необходимость поддержать создание отечественный глобальный рейтинговый агентство . В руководство страна неоднократно заявлять что рейтинг страна мочь быть занизить политический давление сторона иностранный государство . |ngramms кредитный_рейтинг кредитный_рейтинг кредитный_рейтинг кредитный_рейтинг крупный_российский транспортный_компания передавать_bloomberg природный_газа оператор_оао оператор_оао энергетический_система российский_железный_дорога дочерний_структура дочерний_структура пассажирский_компания иностранный_валюта компания_быть негативный_прогноз негативный_прогноз отмечаться_в_заявление национальный_валюта втб_лизинг втб_лизинг втб_капитал большой_тройка В_компания международный_агентство российский_власть руководство_страна неоднократно_заявлять рейтинг_страна мочь_быть иностранный_государство +1206 |text компания campbell soup крупный мир производитель консервированный суп согласиться часть бизнес европа инвестиционный компания cvc capital partners . официальный campbell . сумма сделка составить миллион евро . cvc capital partners стать владелец бренд campbell как liebig royco франция erasco германия bla band швеция devos lemmens бельгия . инвесткомпание перейти фабрика campbell упомянуть страна . соглашение инвестор не_включать kelsen group дания campbell приобрести год расширение присутствие зарубежный рынок . как отмечаться сообщение campbell текущий финансовый год объесть продажа подразделение компания сменить владелец составить примерно миллион доллар . В campbell намерить направить поступление сделка cvc capital partners погашение собственный задолженность корпоративный цель . campbell soup company быть основать год . В бренд владеть компания как campbell pepperidge farm arnott bolthouse farms plum organics kjeldsens . продукция campbell продаваться страна . акция компания campbell включить индекс standard poor dow jones sustainability . |ngramms крупный_в_мир инвестиционный_компания capital_partners capital_partners capital_partners пресс_релиз сумма_сделка миллион_евро стать_владелец отмечаться_в_сообщение год_объесть подразделение_компания миллион_доллар акция_компания +1207 |text финансовый гарантия туроператор лабиринт не_хватить клиент . эфир русский служба новость рсн рассказать российский союз туриндустрия . финансовый гарантия компания не_хватить . что часть финансовый обеспечивать печально известный компания восхождение центробанк приостановить лицензия заявить . слово ростуризм ожидать что лабиринт прекратить работа . опасаться когда произойти история оренбургский авиалиния что туроператор лабиринт быть основный заказчик авиакомпания добавить . В цб агентство заявить что страховой компания восхождение приостановить лицензия обязать исполнять обязательство клиент лабиринт . лабиринт объявить приостановка деятельность . интерфакс пострадать мочь тысяча человек . причина приостановка деятельность лабиринт рсн называть называться резкий рост курс валюта негативный политический экономический ситуация россия рекомендация запрет выезд граница сотрудник внутренний служба . |ngramms финансовый_гарантия финансовый_гарантия служба_новость пресс_секретарь российский_союз _ часть_финансовый приостановить_лицензия приостановить_лицензия заявить_ когда_произойти основный_заказчик добавить_ страховой_компания приостановка_деятельность приостановка_деятельность тысяча_человек резкий_рост курс_валюта экономический_ситуация внутренний_служба +1208 |text председатель совет директор ростелеком избранный генеральный директор госхолдинг связьинвест . официальный телекоммуникационный холдинг . О что государство основной акционер ростелеком предложить назначить главый совет однокурсник россия ленинградский государственный университет написать газета коммерсантъ . издание кандидатура выдвинуть президент холдинг . кандидат пост глава совет ростелеком являться газпромбанк . номинировать генеральный директор газпромбанк управление актив . И совет директор ростелеком выдвинуть газпромбанк держатель процент акция холдинг интерес бизнесмен фонд marshall capital . совет директор ростелеком быть избранный середина . В руководящий орган компания входить человек . ростелеком включить план приватизация государственный актив год . правительство рассчитывать госпакет холдинг минимум миллиард доллар . осень текущий год государство планировать завершить реформа связьинвест быть присоединить ростелеком ликвидировать . связьинвест владеть процент акция ростелеком . |ngramms председатель_совет_директор генеральный_директор генеральный_директор _ _ _ _ пресс_релиз телекоммуникационный_холдинг что_государство основной_акционер предложить_назначить премьер_министр россия__ государственный_университет кандидатура_ президент_холдинг глава_совет вице_президент управление_актив процент_акция процент_акция совет_директор быть_избранный компания_входить план_приватизация миллиард_доллар текущий_год +1209 |text недавний время возглавлять авиакомпания трансаэро являться совладелец перевозчик заявить что избавиться акция . сообщить страница twitter . Я дочь большой не_являться акционер авиакомпания трансаэро написать . супруга основать трансаэро быть крупный акционер предприятие . совокупный пакет акция прямой владение составлять процент . неофициальный супруга косвенно контролировать процент акция . процент принадлежать матерь анодина возглавлять межгосударственный авиационный комитет мак . мак сообщить что большой не_являться владелец бумага авиакомпания . коммерсант акционер трансаэро направить аэрофлот оферта выкуп акция срок истечь . владелец ценный бумага не_смочь отвести время собрать необходимый пакет продажа . причина источник газета называть что процент плюс акция оставаться залог банка втб . совладелец аэропорт внуково ванец принадлежать процент трансаэро обратить внимание издание что акционер прийтись консолидировать акция крупный акционер миноритарий . сообщить рбк что дочь подарить акция муж передача пакет аэрофлот . В результат являться владелец процент акция часть как заложить втб . процент настоящее время принадлежать дочерний структура трансаэро компания трансаэро финансы . образ доля казначейский акция составлять пакет есть необходимый передача аэрофлот . попросить аэрофлот продлить срок оферта . трансаэро перейти операционный управление аэрофлот критический финансовый положение . управлять директор стать заместитель глава аэрофлот . спасение авиаперевозчик аэрофлот выкупить процент плюс акция трансаэро символический сумма рубль . соответствующий директива быть одобрить правительство россия направить аэрофлот совет директор поддержать предложение . супруга остаться состав совет директор авиакомпания быть избрать председатель . трансаэро занимать место объём перевозка страна первое полугодие обслужить миллион человек . парк компания включать самолёт . состояние конец текущий год чистый долг трансаэро составлять миллиард рубль . крупный кредитор быть втб газпромбанк . |ngramms _ _ _ _ _ время_возглавлять большой_не_являться большой_не_являться акционер_авиакомпания написать_ _и__ крупный_акционер крупный_акционер процент_акция процент_акция процент_принадлежать авиационный_комитет пресс_служба выкуп_акция ценный_бумага время_собрать источник_газета процент_плюс процент_плюс банка_втб аэропорт_внуково обратить_внимание что_акционер __сообщить В_результат являться_владелец дочерний_структура продлить_срок операционный_управление финансовый_положение управлять_директор заместитель_глава быть_одобрить совет_директор совет_директор супруга_ первое_полугодие миллион_человек парк_компания текущий_год чистый_долг миллиард_рубль крупный_кредитор +1210 |text французский торговый дом модный аксессуар hermes фиксировать рост продажа россия фон кризис . заявить управлять директор россия влие передавать rambler service ссылка . конкретный цифра отказаться раскрыть . В настоящее время hermes магазин россия . расположить московский гум недавно быть расширить площадь увеличиться вдвое . исполнительный директор модный дом что расширение торговый площадь россия hermes расценивать как долгосрочный инвестиция . дом модный аксессуар hermes специализироваться производство продажа изделие кожа аксессуар парфюмерия предмет роскошь готовый одежда класс люкс . основать франция год шорник эрма thierry hermes . известный дорогостоящий сумка kelly birkin . выручка hermes третье квартал год вырасти процент миллиард евро . |ngramms торговый_дом рост_продажа россия_ rambler_news_service конкретный_цифра В_настоящее_время недавно_быть исполнительный_директор _ торговый_площадь третье_квартал миллиард_евро +1211 |text оформить маршрутный карта проезд фура федеральный дорога россия мочь зарегистрировать система грузоперевозчик . оператор система компания поступить редакция лента . . отмечаться что оформить регистрация сайт система необходимый документ поскольку предусмотреть возможность приложить поздний . В подчёркивать что заранее извещать предприниматель планировать нововведение что привести резкий рост зарегистрировать система грузовик . В конец начало быть когда перевозчик регистрировать тысяча транспортный средство сутки отмечаться сообщение . В релиз что технически готовый введение система постоплата проезд . И заработать выход соответствующий постановление правительство россия . В настоящее время система завести дать процент тонник выезжать федеральный дорога тысяча машина . пользователь система взимание плата оформить миллион маршрутный карта выдать тысяча бортовый устройство . время работа собрать миллиард рубль . В начало суд отклонить иск блогер навальный предприниматель оператор система взимание плата грузовик компания рт инвест транспортный система . истец требовать признать недействительный соглашение росавтодор ссылаться что быть заключить проведение конкурсный процедура . В конец замглавы росавтодор прончат жаловаться что ежедневно фиксировать тысяча случай неоплата проезд система . использовать повторно маршрутный карта не_зарегистрироваться система чиновник . система взимание плата проезд федеральный трасса грузовой автомобиль масса тонна заработать россия прошлое год . тариф проезд составлять рубль километр год планироваться увеличить рубль . плат взиматься как российский иностранный транспорт . собранный грузовик средство направляться федеральный дорожный фонд . год работа планироваться собрать миллиард рубль . разработчик оператор система являться компания принадлежащий аркадия структура ростех рт инвест . |ngramms маршрутный_карта маршрутный_карта маршрутный_карта пресс_релиз оператор_система оператор_система оператор_система поступить_в_редакция предусмотреть_возможность резкий_рост транспортный_средство отмечаться_в_сообщение В_релиз соответствующий_постановление правительство_россия В_настоящее_время федеральный_дорога тысяча_машина миллиард_рубль миллиард_рубль В_начало отклонить_иск _ транспортный_система истец_требовать грузовой_автомобиль прошлое_год дорожный_фонд работа_планироваться +1212 |text биотехнологический компания biocad выиграть завершиться аукцион поставка дорогостоящий препарат лечение рак кровь ритуксимаб . сумма контракт составить миллиард рубль что миллион маленький изначально установленный государство цена . впервые время федеральный торг быть применить правило лишний направить защита российский производитель сохранение справедливый конкуренция . поступить редакция лента . . согласно нововведение торг российский компания заявка импортный поставщик отклонять . В год минздрав россия объявить закупка ритуксимаб . заявка торг подать компания . российский биотехнологический компания biocad ритуксимаб собственный разработка фармстандарт локализовать производство ритуксимаб рош мощность фармстандарт представлять интерес индийский компания dr . reddy . государственный комиссия единогласно снять аукцион кандидатура исходить правило лишний . десять год страна вырасти новый русский рассказать генеральный директор биотехнологический компания biocad . мнение активный роль сыграть государство . программа приносить плод многие жизненно важный лекарство полностью разрабатываться производиться россия успешно заменить импортный препарат цена гораздо . правило лишний полгода направить поддержка отечественный производитель . сообщаться что biocad успешно провести испытание новое российский препарат рак . дать этап исследование препарат показать высокий показатель эффективность западный препарат мир . новый препарат активировать внутренний сила организм человек борьба рак . лекарство основа моноклональный антитело блокировать взаимодействие белок pd pd маскировать раковый клетка здоровый . нейтрализация pd организм начинать распознавать опухолевый клетка как чужеродный уничтожать . здоровый ткань организм не_повреждаться как токсичный химиотерапия . |ngramms компания_biocad компания_biocad компания_biocad контракт_составить миллиард_рубль торг_быть российский_производитель пресс_релиз поступить_в_редакция российский_компания представлять_интерес индийский_компания десять_год генеральный_директор _ поддержка_отечественный +1213 |text группа втб приобретать процент акция компания магнит миллиард рубль . договорённость достигнуть владелец . сообщить втб . закрытие сделка потребоваться получение согласование федеральный антимонопольный служба рф отмечаться сообщение . слово глава втб госбанк становиться крупный акционер магнит сообщать . У оставаться пакет район процент оставаться миноритарный акционер указать . сделка стать крупный слияние поглощение год добавить . мировой рынок розничный торговля проходить период кардинальный трансформация вызвать расти требование предпочтение потребитель взаимный проникновение онлайн канал продажа усиление роль высокий технология глава втб . опираться опыт финансовый ресурс группа втб планировать вывести компания магнит качественно новый уровень развитие . рбк сообщать что почта россия банк втб компания магнит подписать соглашение долгосрочный партнерство . как рассказать собеседник агентство магнит начать продавать товар почта россия . почта россия объединить логистический транспортный ресурс . магнит крупный розничный сеть россия количество магазин . |ngramms группа_втб группа_втб процент_акция_компания миллиард_рубль _ _ _ пресс_служба закрытие_сделка федеральный_антимонопольный_служба отмечаться_в_сообщение глава_втб глава_втб крупный_акционер миноритарный_акционер стать_крупный мировой_рынок розничный_торговля проходить_период канал_продажа высокий_технология новый_уровень почта_россия почта_россия почта_россия как_рассказать собеседник_агентство продавать_товар розничный_сеть +1214 |text президент российский железный дорога ржд дать неделя разобраться кумовство компания . заявить селекторный совещание руководство железнодорожный госмонополия передавать интерфакс . недопустимый взгляд являться положение когда член семья работать руководство член семья сын отец жена муж . Я не_хотеть называть имя . давать неделя быть навести порядок . фаворитизм место ржд . глава ржд подчеркнуть что поддерживать существование рабочий династия компания когда ребёнок железнодорожник продолжать традиция семья приходить работать железный дорога . ржд госкомпания владеть железнодорожный инфраструктура пользование локомотив подвижный состав . входить тройка крупный транспортный компания мир . В компания работать тысяча человек . |ngramms российский_железный_дорога _ член_семья член_семья глава_ржд что_поддерживать железный_дорога железнодорожный_инфраструктура подвижный_состав тройка_крупный транспортный_компания В_компания тысяча_человек +1215 |text газпром увеличить сумма претензия нафтогаза стокгольмский арбитражный суд миллиард доллар сообщаться финансовый отчётность российский компания . уточнить сумма требование пао газпром нак нафтогаз украина составить свыше миллиард доллар сообщаться документ . поясняться что включать требование оплата задолженность поставить год газ оплата обязательство брать платить год пеня просрочка оплата газа . В год главный коммерческий директор нафтогаза признать возможность банкротство компания случай проигрыш газпром стокгольм . В случай предприятие прийтись расставаться актив . распродажа не_попасть газотранспортный система украина поскольку находиться государственный собственность констатировать менеджер . глава нафтогаза коболеть оценивать сумма иск арбитраж стокгольм миллиард доллар . судебный тяжба российский украинский компания длиться год . газпром обратиться арбитражный институт торговый палата стокгольм цель взыскание неоплаченный задолженность природный газ процент нея . украинский сторона очередь обратиться арбитраж требование ретроактивный изменение цена природный газ возмещение переплата осуществить год . В очередь rt ссылка отчёт компания сообщать что польский государственный нефтегазовый компания pgnig подать ек жалоба газпром нарушение антимонопольный право ес . |ngramms увеличить_сумма арбитражный_суд миллиард_доллар миллиард_доллар миллиард_доллар финансовый_отчётность российский_компания сумма_требование нафтогаз_украина составить_свыше оплата_газа коммерческий_директор _ банкротство_компания предприятие_прийтись газотранспортный_система арбитраж_стокгольм украинский_компания обратиться_в_арбитражный торговый_палата природный_газ природный_газ украинский_сторона В_свой_очередь отчёт_компания польский_государственный нефтегазовый_компания право_ес +1216 |text контракт газпром поставка газа китай заслуживать включение книга рекорд . заявить руководитель газпром экспорт сообщать новость . не_уточнить какой параметр позволять договор как рекордный . добавить что несмотря масштаб соглашение удовлетворить часть прогнозный спрос кнр . контракт поставка российский газа китай быть подписать председатель правление газпром президент китайский cnpc чжоу цзипин . договор предполагать экспорт трубопроводный топливо кнр протяжение год объесть поставка миллиард кубометр российский газа год . сумма контракт исходить текущий цена углеводород составлять миллиард доллар . как сообщаться газпром получить cnpc предоплата строительство газопровод быть транспортироваться топливо объём миллиард доллар . газ китай быть поставляться чаяндинской месторождение якутия газопровод сила сибирь . объесть инвестиция разработка месторождение строительство трубопровод составить миллиард доллар миллиард быть предоставить китайский стороной . |ngramms книга_рекорд газпром_экспорт _ сообщать_риа_новость _добавить контракт_на_поставка российский_газа быть_подписать председатель_правление китайский_cnpc объесть_поставка миллиард_кубометр газа_в_год миллиард_доллар миллиард_доллар миллиард_доллар как_сообщаться быть_поставляться сила_сибирь разработка_месторождение быть_предоставить +1217 |text компания мосгорлогистика заниматься эвакуация автомобиль штрафстоянка прокомментировать обращение следственный комитет россия первое зампред комитет госдума госстроительство лысакова передавать радиостанция москва . депутат попросить проверить обоснованность тариф эвакуация машина москва . В мосгорлогистика заявить что экономически обоснованный стоимость перемещение транспортный средство исключение грузовой негабаритный машина составлять рубль стоимость эвакуация большинство легковой автомобиль тысяча рубль . образ компания нынешний тариф позволять работать грань рентабельность . соблюдать жёсткий требование контракт выполнять обязательство правительство москва радиостанция представитель компания . В мосгорлогистика подчеркнуть что депутат лысак пользоваться служебный автомобиль отдельный парковка возле здание госдума не_знать сколько ресурс требоваться задействовать своевременный освобождение уличный дорожный сеть неправильно припарковать машина . |ngramms следственный_комитет передавать_радиостанция попросить_проверить транспортный_средство тысяча_рубль жёсткий_требование правительство_москва представитель_компания +1218 |text башнефть отменить торг выбор организация провести исследование привлекательность бренд нефтяной компания отношение клиент передавать интерфакс . подрядчик предстоять выявить объективный положение башнефть отрасль оценить цитируемость отношение компания житель регион присутствие сотрудник компания отраслевой эксперт . заказчик рассчитывать получить информация функционирование бренд розничный бизнес . агентство отмечать что заявка тендер подаваться восемь включительно определиться победитель компания быть десять . башнефть опубликовать извещение отказ проведение закупка . максимальный стоимость договор планироваться заключить победитель составлять миллион рубль . В минэкономразвития внести правительство россия отчёт способ приватизация государственный доля компания башнефть . министр экономический развитие россия отмечать что правительство планировать госпакет акция компания текущий год . приватизация госпакет башнефть подать заявка роснефть . покупка ценный бумага интересоваться лукойл татнефтегаз китайский cnpc . В настоящее время собственность российский федерация находиться процент акция . В собственность республика башкортостан процент плюс акция . не_планировать продавать доля предлагать консолидировать федеральный региональный пакет акция башнефть передать управление специализировать компания . В год решение суд процент акция башнефть быть возвратить собственность государство обнаружить нарушение приватизация компания год . судебный решение владелец ценный бумага быть афк система . башнефть включить прогнозный план приватизация федеральный имущество год . |ngramms отменить_торг провести_исследование нефтяной_компания житель_регион сотрудник_компания рассчитывать_получить розничный_бизнес агентство_отмечать что_заявка миллион_рубль правительство_россия приватизация_государственный доля_компания министр_экономический_развитие россия__ что_правительство акция_компания текущий_год приватизация_госпакет подать_заявка ценный_бумага ценный_бумага В_настоящее_время российский_федерация процент_акция процент_акция В_собственность республика_башкортостан не_планировать_продавать пакет_акция решение_суд обнаружить_нарушение судебный_решение быть_афк план_приватизация федеральный_имущество +1219 |text кондитерский изделие украинский компания roshen соответствовать норма качество содержимый вредный вещество . как сообщать местный телеканал publika заявить министр сельский хозяйство пищевой промышленность республика бумаковый . соответствие продукция roshen стандарт качество отсутствие вредный вещество сообщить казахстан таджикистан . проверка изделие проводить минск белоруссия не_сообщать итог . регулировать орган страна решить проверить изделие кондитерский компания как россия запретить поставка roshen рынок . roshen отмечать что заявление содержание изделие бензпирен мочь рассматриваться как обвинение нарушение норматив поскольку норма территория таможенный союз не_существовать . регламент содержание бензпирен шоколадный продукция нет евросоюз уточнять компания . украинский власть сообщать ссылка проверка независимый лаборатория что изделие roshen соответствовать стандарт качество . роспотребнадзор объявить запрет ввоз конфета roshen . как пояснять глава ведомство кондитерский изделие быть обнаружить канцерогенный вещество бензпирен . роспотребнадзор не_устроить органолептический свойство продукция содержание жир . roshen являться крупный кондитерский компания территория бывший ссср . производитель располагать фабрика литва россия украина . компания выпускать вид кондитерский продукция . |ngramms кондитерский_изделие кондитерский_изделие украинский_компания соответствовать_норма вредный_вещество вредный_вещество как_сообщать местный_телеканал заявить_министр продукция_roshen стандарт_качество стандарт_качество решить_проверить кондитерский_компания кондитерский_компания россия_запретить рассматриваться_как таможенный_союз украинский_власть изделие_roshen как_пояснять глава_ведомство _ быть_обнаружить являться_один_из_крупный бывший_ссср кондитерский_продукция +1220 |text аэрофлот уменьшить процент номинировать евро тариф международный рейс город россия . сообщаться официальный крупный российский перевозчик . как пояснить компания мера направить снижение стоимость перевозка увеличиться результат существенный падение курс рубль . В аэрофлот что послать шаг поскольку стоимость международный перелёт значительно вырасти отличие покупательский способность пассажир . В аэрофлот напомнить что год выступать отказ публикация международный тариф евро перейти цена национальный валюта . тариф евро создавать неудобство пассажир как стоимость перевозка российский рынок ставиться зависимость курс иностранный валюта . В начало текущий год курс основный мировой валюта рубль вырасти рекордный уровень . В конец официальный курс евро впервые история превысить рубль . стоимость доллар время превысить рубль достигнуть максимум год . центр макроэкономический исследование сбербанк спрогнозировать что курс рубль укрепиться рубль доллар . В конец министр финансы россия силуановый заявлять что ослабление российский валюта являться временной явление . |ngramms город_россия пресс_релиз крупный_российский снижение_стоимость существенный_падение курс_рубль курс_рубль значительно_вырасти национальный_валюта стоимость_перевозка иностранный_валюта В_начало текущий_год мировой_валюта рекордный_уровень В_конец В_конец курс_евро министр_финансы россия_ российский_валюта являться_временной +1221 |text компания amazon открывать магазин не_быть продавец кассовый аппарат . проект запустить сиэтл сша сообщаться twitter . тестирование amazon длиться год завершить . В время испытывать сотрудник компания . покупатель приложить смартфон турникет вход выбрать нужный товар . технология использоваться магазин позволять распознать что посетитель брать полка что класть обратно . основать компьютерный зрение информация считываться помощь датчик . выход сумма покупка списаться кредитный карта . покупатель надо быть сканировать штрих код . amazon анонсировать магазин год намереваться открыть . amazon американский компания создать год . являться крупный мир оборот площадка продавать товар услуга массовый спрос интернет . |ngramms сообщаться_в_twitter сотрудник_компания что_посетитель сумма_покупка кредитный_карта американский_компания крупный_в_мир продавать_товар +1222 |text компания virgin hyperloop анонсировать стоимость проезд капсула высокоскоростной пассажирский транспорт hyperloop индия . стоимость билет мочь составить доллар . писать bloomberg . капсула город пуна мумбай планировать запустить год . сократить время путь город порядок часы минута . как отмечать агентство стоимость проезд капсула итог мочь оказаться маленький билет самолёт . быть выше стоимость проезд класс обычный поезд билет стоять доллар . hyperloop проект высокоскоростной транспорт предложить основатель spacex tesla илоно маск . предполагаться что капсула пассажир быть передвигаться специальный вакуумный тоннель высокий скорость . реализация проект заниматься virgin spacex hyperloop transportation technologies . virgin hyperloop год смочь разогнать капсула рекордный скорость километр час . план увеличить скорость капсула тысяча километр час . В маск анонсировать тестирование туннель hyperloop . слово состояться ближний время . как капсула внутри вакуумный тоннель развить скорость километр час половина скорость звук . образ hyperloop рамка проект маска мочь побить установленный рекорд . |ngramms пассажирский_транспорт стоимость_билет мочь_составить планировать_запустить сократить_время как_отмечать мочь_оказаться стоимость_проезд предложить_основатель пассажир_быть реализация_проект год_смочь километр_в_час километр_в_час тысяча_километр ближний_время установленный_рекорд +1223 |text облачный хранилище файл dropbox планировать привлечь инвестор миллион доллар условие оценивать компания восемь миллиард доллар . сообщать bloomberg ссылка неназванный источник . информация подтверждать york times ссылка анонимный источник . сведение издание dropbox мочь организовать первичный размещение акция ipo не_планировать выходить биржа . компания намерить оставаться частный некоторый время нарастить стоимость . В ход предыдущий этап финансирование состояться год компания привлечь миллион доллар . инвестор оценить сервис миллиард доллар . компания насчитывать сотрудник . мера развитие dropbox уделять большой внимание корпоративный сегмент . стать что хранилище планировать создать новый продукт dropbox business ориентировать автоматизация работа дать компания . dropbox business как обычный сервис предоставить возможность загружать документ фото файл хранение получение доступ устройство . отличие новое продукт стать очередь повышенный безопасность . dropbox появиться год . недавно аудитория хранилище превысить отметка миллион пользователь причём месяц подписчик увеличиться миллион . dropbox предоставлять бесплатно гигабайт память . объесть можно увеличить гигабайт приглашать сервис давать мегабайт . облачный файлохранилище есть . В россия услуга предоставлять google яндекс . . диск google бесплатно предоставлять гигабайт яндекс десять облако . гигабайт . |ngramms планировать_привлечь миллион_доллар миллион_доллар миллиард_доллар миллиард_доллар первичный_размещение компания_намерить некоторый_время В_ход компания_привлечь создать_новый предоставить_возможность новое_продукт миллион_пользователь интернет_компания В_россия +1224 |text главный исполнительный директор amazon безос продолжать сдавать позиция рейтинг богатый человек мир . В состояние уменьшиться миллиард доллар результат опуститься третье место список . стать следствие падение стоимость акция amazon процент мировой биржа сообщать bloomberg . фиксировать убыток прийтись безоса . агентство снизиться котировка многий компания . итог торг богач недосчитаться сложность миллиард доллар . стать плохой днём биржа месяц . фондовый рынок отреагировать воинственный заявление президент трамп адрес северный корея . американский лидер заявлять что кндр нервничать подумать напасть соединить штат союзник . В очередь потерять владелец высокотехнологичный компания . глава китайский netease лэй недосчитаться миллиард доллар основатель facebook миллиард доллар . безос быть признанный богатый человек мир . состояние составлять миллиард доллар миллион доллар большой основатель microsoft . следующий глава amazon уступить лидерство оказаться второе место рейтинг . итог торг капитал уменьшиться миллиард доллар миллиард . |ngramms исполнительный_директор amazon_ богатый_человек богатый_человек миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар стоимость_акция сообщать_bloomberg стать_плохой фондовый_рынок президент__трамп соединить_штат В_один_очередь интернет_компания основатель_facebook _ _ быть_признанный миллион_доллар основатель_microsoft глава_amazon уступить_лидерство +1225 |text В москва цвк экспоцентр пройти форум российский софт эффективный решение . первое мероприятие рамка подготовка российский неделя высокий технология рнвт состояться будущее год . О проблема продвижение отечественный программный обеспечение обсуждать участник форум рассказывать лента . . форум провести соответствие поручение правительство популяризация отечественный софт . организатор минкомсвязи центр компетенция импортозамещение сфера икт экспоцентр комитет госдума образование наука ассоциация разработчик программный продукт отечественный софт . продвижение российский стать приоритет госпрограмма развитие цифровой экономика . С новинка ведущий отечественный участник форум иметь возможность ознакомиться начало пленарный заседание выставка презентация российский софт . дискуссия открыть депутат госдума возглавлять оргкомитет российский неделя высокий технология . значимость форум докладчик определяться что основа цифровой экономика лежать программный продукт напомнить . переход отечественный софт вопрос национальный безопасность подчеркнуть . В создание цифровой экономика ведущий роль отводиться бизнес убедить заместитель глава минкомсвязи . задача государство чиновник сформировать благоприятный . государство работать направление . В быть создать единый реестр отечественный зарегистрировать тысяча продукт российский напомнить . В результат удаться изменить ситуация сфера госзакупка . год доля закупка отечественный софт вырасти . В федеральный структура показатель составлять процент региональный орган власть процент . тема развить директор центр импортозамещение сфера икт массухой . этап развитие ит страна находить достойный ответ есть шанс опередить западный конкурент . яндекс спокойно конкурировать google признанный мир бренд . переход отечественный утопия реальность считать массухой . завоевать мировой рынок надо не_потерять внутренний . когда компания нет домашний рынок мир переставать воспринимать констатировать . В массухой считать необходимый ввести запрет покупка заграничный сфера антивирус документооборот бухгалтерия . использование называть свободный open source создание собственный решение рассказать старший сбербанк ведяхина . адаптировать отечественный специалист open source иметь надёжный защита . создание высокотехнологичный рабочий место российский предприятие деньга не_уходить страна подчеркнуть ведяхина . президент ассоциация тайзный . рассказать проект интегрировать безопасность . слово строительство сложный киберфизический система необходимый учитывать множество риск . есть угроза безопасность сохранность надёжность приватность устойчивость . заверить что российский разработчик состояние защитить практически риск угроза отключение красный кнопка . В год почтовый отделение россия обрабатывать тысяча посылка . миллион . стать возможный благодаря цифровизация почтовый сервис . причём революция произойти благодаря российский софт заявить заместитель гендиректор почта россия . база осуществляться управление автотранспорт недвижимость госкомпания . электронный документооборот вскоре быть запустить база отечественный пообещать . |ngramms В_москва эффективный_решение высокий_технология высокий_технология будущее_год О_проблема программный_обеспечение участник_форум участник_форум разработчик_программный продвижение_российский цифровой_экономика цифровой_экономика цифровой_экономика ит_разработчик иметь_возможность депутат_госдума _ _ _ _ программный_продукт напомнить_ напомнить_ национальный_безопасность ведущий_роль заместитель_глава быть_создать единый_реестр продукт_российский ит_компания В_результат изменить_ситуация доля_закупка орган_власть директор_центр западный_конкурент мировой_рынок необходимый_ввести вице_президент сбербанк_ рабочий_место необходимый_учитывать угроза_безопасность _заверить что_российский почтовый_отделение стать_возможный почтовый_сервис произойти_благодаря заместитель_гендиректор почта_россия быть_запустить +1226 |text оао аэрофлот российский авиалиния неопределённый время отменить рейс канада . сообщить гендиректор компания передавать интерфакс . подчеркнуть что компания рейс торонто стать убыточный . наверное надолго . У быть идея что смочь подхватить некий поток транзитный пассажир идти индия заходить тема дважды не_получаться . считать жизнь показывать не_лететь заявить добавить что рейс не_окупать закрыть . как сообщать транспортный клиринговый палата аэрофлот решение отменить регулярный рейс торонто канада . пассажир билет авиаперевозчик рейс дата разрешаться вынужденный возврат место приобретение вынужденный переоформление билет рейс москва торонто авиакомпания альянс sky team париж амстердам предел семь первоначальный срок поездка . аэрофлот возобновить полёт маршрут год . пауза полёт составить год рейс быть закрытый начало . |ngramms гендиректор_компания _ _ что_для_компания У_мы_быть как_сообщать место_приобретение нью_йорк быть_закрытый +1227 |text авиакомпания сибирь входить группа год устанавливать монопольно высокий тариф билет маршрут новосибирск сочи . сообщаться федеральный антимонопольный служба фас . как уточнять фас образ перевозчик нарушить закон О защита конкуренция . антимонопольщик сравнить стоимость билет рейс сибирь тариф владивосток маршрут новосибирск краснодар сопоставимый маршрут новосибирск сочи расстояние сезонный колебание тип использовать самолёт . проверка фас прислать вывод что нормальный специальный тариф сибирь выше владивосток процент процент соответственно . себестоимость перевозка пассажир сибирь владивосток . сайт указываться что стоимость перелёт новосибирск сочи дата составлять восемь тысяча рубль . уличить завышение цена перевозчик направить предписание устранение нарушение . В авиакомпания заявить новость что быть оспаривать решение фас . авиакомпания группа глобус сибирь выполнять рейс бренд airlines . как сообщаться середина минувший итог год группа предварительный результат перевезти миллион пассажир . сравнение год показатель вырасти четверть . |ngramms входить_в_группа эконом_класс эконом_класс эконом_класс пресс_релиз федеральный_антимонопольный_служба как_уточнять нарушить_закон защита_конкуренция билет_на_рейс владивосток_ владивосток_ владивосток_ маршрут_новосибирск маршрут_новосибирск процент_соответственно что_стоимость тысяча_рубль авиакомпания_группа выполнять_рейс год_группа миллион_пассажир год_показатель +1228 |text аэрофлот распространить официальный заявление обратить внимание искажение факт сообщение авиакомпания трансаэро . релиз поступить лента . . подобный искажение мнение аэрофлот содержаться объявление трансаэро прекращение год приём заявление отделение сбербанк владелец авиабилет трансаэро возврат плата оформить невыполненный перелёт . В деловой часть сообщение трансаэро являться фактический копия выпустить днём аэрофлот претензия не_вызывать . аэрофлот считать необходимый указать недостоверность включить текст комментарий генеральный директор трансаэро благодаря усилие перевозчик быть возвратить сотня миллион рубль несостоявшийся перелёт что свести минимум материальный ущерб обычный пассажир отмечаться заявление аэрофлот . В авиакомпания подчёркивать что вследствие безответственный бизнес стратегия трансаэро год быть отозвать сертификат эксплуатант пострадать большой количество пассажир . основный часть работа перевозка выплата компенсация неиспользованный билет трансаэро поручение правительство взять аэрофлот дочерний компания . В сообщение отмечаться что год операционный управление аэрофлот быть перевезти миллион пассажир билет трансаэро рука . благодаря считать компания удаться избежать транспортный коллапс общенациональный масштаб . авиаперевозчик обращать внимание что группа компания аэрофлот быть создать тысяча вакансия бывший работник трансаэро обеспечить выплата зарплата персонал . аэрофлот издержка выполнение обязательство пассажир работник трансаэро составить миллиард рубль . оказать существенный воздействие финансовый результат группа аэрофлот год . трансаэро являться объём перевозка российский авиакомпания обанкротиться высокий нагрузка фон падение спрос перелёт . перевозчик перейти операционный управление аэрофлот начало прошлое год росавиация аннулировать сертификат эксплуатант . |ngramms официальный_заявление отделение_сбербанк В_деловой пресс_релиз считать_необходимый генеральный_директор _ благодаря_усилие отмечаться_в_заявление быть_отозвать сертификат_эксплуатант сертификат_эксплуатант большой_количество основный_часть дочерний_компания В_сообщение_отмечаться операционный_управление операционный_управление быть_перевезти миллион_пассажир обращать_внимание группа_компания быть_создать миллиард_рубль финансовый_результат российский_авиакомпания _нагрузка прошлое_год росавиация_аннулировать +1229 |text совет директор российский железный дорога ржд рассмотреть вопрос выход капитал сбербанк сообщать rambler service ссылка документ госмонополия . источник агентство сообщить что размер пакет незначительный процент . минэкономразвития россия подтвердить что продажа осуществляться рамка выход компания непрофильный актив . В ржд сделка не_комментировать . исходить стоимость бумага сбербанк московский биржа состояние цена процент акция кредитный организация составлять миллиард рубль . В конец сообщаться что фас россия предложить железнодорожный госмонополия комплекс мера повышение эффективность расход независимый аудит инвестпрограмма внедрение год мониторинг крупный инвестпроект разработка план сокращение затрата . фас рекомендовать избавиться непрофильный актив футбольный клуб локомотив корпоративный телевидение ржд тв . В год ржд доля аэроэкспресс бетэлтранс нерудный компания заработать миллиард рубль . В год возглавлять компания что год компания намерить непрофильный актив сумма миллиард рубль . избавиться доля росжелдорпроект транстелеком ржд строй не_удаться . В год торг планироваться выставить акция калужский завод ремпутьмаш вагоноремонтный компания врк врк . |ngramms совет_директор российский_железный_дорога рассмотреть_вопрос сообщать_rambler_news_service агентство_сообщить россия_подтвердить что_продажа стоимость_бумага процент_акция кредитный_организация миллиард_рубль миллиард_рубль миллиард_рубль В_конец фас_россия повышение_эффективность сокращение_затрата футбольный_клуб год_ржд год_возглавлять компания__ компания_намерить +1230 |text глава lockheed martin space systems магуайра joanne maguire подать отставка . сообщаться производитель оружие разместить pr newswire . ответственный космический система стать нынешний заместитель магуайра эмброуз rick ambrose . совет директор компания одобрить отставка исполнительный linda gooden возглавлять подразделение информационный технология gs . новый главый подразделение gs стать барбор sondra barbour занимать пост главный специалист информационный технология . кадровый перестановка вступить сила . В сообщение отмечаться что основный достижение space systems руководство магуайра являться разработка новый космический система предупреждение пуск баллистический ракета sbirs space based infrared system . спутник ранний обнаружение пуск ракета geo быть вывести орбита год . магуайра стать женщина удостоить премия фон карман калифорнийский технологический институт вручать достижение аэрокосмический сфера . кадровый перестановка lockheed martin произойти месяц работа новое гендиректор компания хьюсон marillyn A . hewson являться исполнительный подразделение electronic systems . хьюсон занять пост отставка объявить прошлое год . изначально планироваться что новый гендиректор компания стать тогдашний президент операционный директор christopher kubasik уволить сотрудница . |ngramms пресс_релиз космический_система космический_система совет_директор_компания вице_президент вице_президент _ _ информационный_технология информационный_технология новый_главый занимать_пост вступить_в_сила В_сообщение_отмечаться разработка_новый удостоить_премия месяц_работа гендиректор_компания гендиректор_компания занять_пост прошлое_год изначально_планироваться что_новый директор__ +1231 |text руководство почта россия решить не_проводить корпоративный празднование новое год . сообщать интерфакс ссылка почтовый оператор . как отмечаться сообщение почта новогодний проект сохранить традиционный подарок компания ребёнок работник . что касаться подразделение почта мочь решение проведение корпоратив опираться собственный возможность личный средство . неделя ряд крупный госкомпания отказаться проведение новогодний корпоративный праздник счёт государственный деньга . президент ржд сообщить что правление железнодорожный компания заплатить празднование новое год куда пригласить тысяча человек личный средство . В ростёха запретить дочерний организация организовывать корпоратив счёт бюджетный деньга угроза увольнение руководитель дочка . неназванный представитель роснефть сообщить агентство что нефтяной госкомпания провести новогодний корпоратить счёт сотрудник добровольно участвовать празднование . В объединить авиастроительный корпорация рассказать что год корпоратить новый год проводить не_планироваться работник оак решить собраться сделать счёт . В начало президент россия выступать форум общероссийский народный фронт выразить недоумение повод выделение средство проведение корпоратив госкомпания бюджет организация . предложить сотрудник госкомпания сбрасываться празднование личный средство . |ngramms почта_россия пресс_служба пресс_служба почтовый_оператор отмечаться_в_сообщение что_касаться личный_средство личный_средство личный_средство ряд_крупный президент_ржд __сообщить железнодорожный_компания тысяча_человек бюджетный_деньга неназванный_представитель сообщить_агентство нефтяной_госкомпания объединить_авиастроительный_корпорация В_начало президент_россия__ выделение_средство +1232 |text впервые автолюбитель смочь познакомиться электромобиль mercedes benz год парижский автомобильный салон . концерн начать серийный производство новый линейка год завод бремен . подготовка событие находиться разгар . новый eqc быть интегрировать текущий серийный производство как чисто электрический автомобиль . быть задействовать современный производственный технология . помимо бремен начало производство автомобиль eqc местный рынок готовиться совместный китайский предприятие beijing benz automotive . автомобиль mercedes benz eqc быть оснастить электродвигатель передний задний суммарный мощность квт относиться кроссовер suv . быть модель mercedes benz новый производственный технологический бренд eq автомобиль eqc располагать система привод новый разработка где передний задний применяться компактный электрический силовой агрегат eats . образ eqc обладать ходовой качество автомобиль полный привод . В цель снижение потребление электроэнергия повышение динамика электрический силовой агрегат eats получить разный конфигурация передний электрический машина настроить диапазон нагрузка низкий средний есть оптимальный экономичность время как задний определять динамик . передавать дорога мощность квт суммарный максимальный крутить составлять нм . предварительный дать опубликовать концерн расход электроэнергия смешанный цикл составлять километр нулевой выброс . запас ход электрический тяга свыше километр согласно nefz новый европейский ездовой цикл . заверение специалист концерн инженер mercedes benz суметь повысить акустический комфорт . В автомобиль eqc электрический силовой агрегат счёт использование резиновый опора дважды разомкнуть остальной конструкция автомобиль первое случай блок силовой агрегат размыкаться подрамник второе подрамник размыкаться кузов . эффективный размыкание дополняться мера шумоизоляция . В результат салон автомобиль eqc ощущаться необыкновенный тишина . литий ионный аккумулятор обеспечивать автомобиль запас энергия . расход энергия запас ход случай электромобиль сильно зависеть стиль вождение . автомобиль eqc оказывать водитель поддержка предлагать режим движение разный характеристика . автомобиль eqc серийно комплектоваться бортовый зарядный устройство жидкостный охлаждение board lader obl мощность киловатт подготовить зарядка сеть переменный ток домашний условие общественный зарядный станция . зарядка настенный зарядный устройство mercedes benz осуществляться быстрый бытовой розетка . А быстрый идти зарядка постоянный ток . В зависимость состояние заряд автомобиль eqc зарядный станция быть заряжаться максимальный мощность киловатт . время зарядка процент уровень заряд составить случай предварительный минута . |ngramms автомобильный_салон серийный_производство серийный_производство производство_автомобиль местный_рынок автомобиль_mercedes суммарный_мощность В_цель снижение_потребление киловатт_час киловатт_час запас_ход запас_ход В_результат станция_быть +1233 |text лондонский суд округа вестминстер отказать удовлетворение запрос российский власть экстрадиция бывший гендиректор тольяттиазот королева обвинять рф мошенничество . сообщить британский telegraph писать . мнение судья арбутнота российский сторона не_предоставить достаточный доказательство гуманный отношение обвинять случай выдача . суд решить что следователь вести близкий владелец уралкалий мазепин . бизнесмен акционер тольяттиазот подать иск суд ирландия возмещение убыток сумма миллиард фунт стерлинг миллиард доллар . королева ряд бывший руководитель акционер тольяттиазот обвиняться россия мошенничество . версия следствие год руководство предприятие занизить цена продавать аммиак карбамид швейцарский компания nitrochem distribution ag афиллировать мажоритарный акционер корпорация . nitrochem distribution ag рыночный цена перепродавать сырьё независимый покупатель . В итог миноритарный акционер тольяттиазот компания уралхий получать маленькая дивиденд . уменьшаться размер налог поступать российский бюджет . королева год проживать великобритания объявить розыск российский правоохранитель . тольяттиазот крупный мир производитель аммиак доля процент . |ngramms суд_округа российский_власть бывший_гендиректор _королева судья_ российский_сторона что_следователь подать_иск фунт_стерлинг миллиард_доллар бывший_руководитель швейцарский_компания рыночный_цена В_итог миноритарный_акционер российский_бюджет крупный_в_мир +1234 |text россия венгрия подписать контракт строительство энергоблок атомный электростанция пакша сообщать ссылка представитель корпорация росатом . контракт заключить рамка соглашение сотрудничество область использование атомный энергия мирный цель . соглашение быть подписать год итог переговоры президент россия венгрия орбана . реализация проект москва предоставить будапешт кредит размер миллиард евро . средство пойти оплата поставка оборудование работа услуга проектирование строительство ввод эксплуатация энергоблок . кредит предоставляться год ставка процент годовой процент годовой . аэс пакша состоять энергоблок вырабатывать процент электроэнергия венгрия . единственный действовать атомный электростанция страна . предприятие расположить километр будапешт ряд город пакша . аэс построить советский проект запустить эксплуатация год . |ngramms венгрия_подписать представитель_корпорация контракт_заключить соглашение_о_сотрудничество атомный_энергия быть_подписать год_по_итог президент_россия премьер_министр миллиард_евро поставка_оборудование процент_годовой процент_годовой +1235 |text ввс сша готовиться подписать контракт компания boeing покупка президент трамп самолёт модель заказать российский авиакомпания трансаэро . писать портал defense ссылка знакомый ситуация источник . издание самолёт быть заказать компания год обанкротиться год трансаэро не_суметь выкупить boeing стоять консервация пустыня калифорния . журналист выяснить что борт ввс мочь заплатить миллион доллар . В год трамп раскритиковать программа обновление президентский авиаотряд . слово заявить сумма миллиард доллар выходить контроль встреча трамп глава boeing пообещать что корпорация снизить затрата разработка поставка новый президентский самолёт . что встреча быть достигнуть серьёзный прогресс упрощение требование борт номер . слово позволить снизить стоимость программа . В год трамп приобрести самолёт соучредитель microsoft полый . бизнесмен вложить оснастка boeing миллион доллар . лайнер располагать кожаный кресло фиксатор ремень безопасность позолотить отделка салон выполнить красный дерево . самолёт есть спальня . |ngramms компания_boeing президент__трамп российский_авиакомпания самолёт_быть журналист_выяснить мочь_заплатить миллион_доллар миллион_доллар заявить_сумма миллиард_доллар _ что_корпорация поставка_новый что_на_встреча быть_достигнуть снизить_стоимость полый_ +1236 |text почта россия совместно издатель запустить тестовый эксплуатация подписной онлайн агентство . почтовый оператор поступить лента . . издатель смочь напрямую взаимодействовать почта россия распространение подписной печатный издание получить дополнительный инструмент анализ читательский аудитория пояснить госкомпания . К заключение прямая договор издательство планироваться приступить год . гендиректор почта россия страшновый слово приводиться релиз что поддержка институт подписка год почтовый компания направить миллиард рубль обеспечение скидка издательство население . добавить что собственный подписной онлайн агентство позволить взаимодействовать издатель напрямую посредник образ сделать подписка доступный . почта россия федеральный почтовый оператор входить перечень стратегический предприятие рф . включать тысяча отделение страна . предприятие работать тысяча человек . почта россия обслуживать порядок миллион подписчик россия . |ngramms почта_россия почта_россия почта_россия почта_россия почта_россия пресс_релиз почтовый_оператор почтовый_оператор получить_дополнительный год_почтовый компания_направить миллиард_рубль перечень_стратегический тысяча_человек +1237 |text tesla определиться кандидатура новое глава совет директор сменить вынужденный покинуть пост основатель компания маска . сайт tesla . должность занять денхолм входить совет директор как независимый директор . В настоящее время денхолм занятый компания финансовый директор глава департамент стратегия австралийский мобильный оператор telstra . полгода быть совмещать должность tesla быть помогать маск . хотеть поблагодарить что присоединиться команда . выражать глубокий уважение . рассчитывать совместный работа написать основатель tesla twitter . денхолм прокомментировать назначение Я верить компания верить миссия надеяться помочь tesla достигнуть устойчивый прибыльность добиться увеличение стоимость акция долгосрочный перспектива . маск вынужденный покинуть пост tesla являться гендиректор соглашение комиссия ценный бумага биржа сша sec . как tesla выплатить миллион доллар . наказание летний твит бизнесмен пообещать выкупить акция компания доллар штука вывести биржа . действие быть квалифицировать как попытка манипулирование рынок . |ngramms новое_глава совет_директор совет_директор вынужденный_покинуть вынужденный_покинуть основатель_компания _маска занять_ В_настоящее_время финансовый_директор глава_департамент мобильный_оператор совместный_работа основатель_tesla стоимость_акция долгосрочный_перспектива ценный_бумага биржа_сша миллион_доллар доллар_за_штука как_попытка +1238 |text лукойл решение процент акция эстонский дочка lukoil eesti . российский компания lukoil european holdings заключить договор купля продажа эстонский топливный компания olerex приобрести процент акция lukoil eesti . сообщать интерфакс ссылка информация olerex . стоимость сделка не_разглашаться . договор вступить сила как одобрить департамент конкуренция эстония . слово лукойл продажа актив эстония являться частью программа российский компания оптимизация топливный рынок европа . В эстония лукойл принадлежать заправочный станция . вступление сделка сила сеть азс olerex быть включать свыше заправка стать крупный эстония . В год лукойл азс чехия словакия венгрия год украина . В конец год лукойл сообщать что продажа ряд зарубежный актив находиться баланс компания готовиться реализация принести миллиард миллион доллар . лукойл крупный нефтегазовый компания мир . обеспечивать процент мировой добыча нефть . доказать запас углеводород компания состояние конец год составлять миллиард баррель . |ngramms процент_акция процент_акция российский_компания российский_компания стоимость_сделка вступить_в_сила вице_президент _ являться_частью В_эстония сеть_азс В_конец что_продажа зарубежный_актив миллион_доллар нефтегазовый_компания процент_мировой добыча_нефть запас_углеводород год_составлять миллиард_баррель +1239 |text россельхознадзор оштрафовать магазин leroy merlin новорижский шоссе подмосковье что не_быть обеззаразить секция сад . сообщаться сайт ведомство . продаваться семя цветок овощ не_допустить использование нарушение правило маркировка . не_предоставить документ подтверждать карантинный фитосанитарный состояние реализовать подкарантинный продукция не_провести карантинный фитосанитарный обследование помещение секция сад отмечаться сообщение россельхознадзор . размер штраф не_уточняться . проверка торговый центр проводить специалист управление россельхознадзор москва московский тульский область . ведомство помимо штраф выдать магазин предписание устранение обнаружить нарушение . leroy merlin крупный ретейлер сектор diy строительный материал товар дом ремонт представить россия . В год компания открыть рф магазин страна торговый . итог прошлое год оборот сеть россия вырасти процент миллиард рубль . |ngramms отмечаться_в_сообщение размер_штраф торговый_центр управление_россельхознадзор обнаружить_нарушение компания_открыть прошлое_год миллиард_рубль +1240 |text коммерческий суд подгорица объявить банкротство местный алюминиевый комбинат крупный промышленный предприятие страна . сообщать новость . совладелец завод являться российский миллиардер дерипаск держать процент . банкротство быть объявить истечение время выделить предоставление план реорганизация предприятие . имущество комбинат быть распродать целиком частично зависимость соглашение кредитор . слово судья драган наиболее приемлемый быть продажа завод качество юридический лицо . следующий владелец предприятие не_быть обременить долг . таков условие прописать новый черногорский закон банкротство . процедура банкротство суд санкционировать год . кредитор предъявить требование миллион евро балансовый стоимость комбинат миллион евро . власть заявлять что хотеть сохранить завод социальный значимость страна . доля комбинат приходиться процент местный ввп . крупный кредитор завод являться черногорский правительство миллион евро центральный европейский алюминиевый компания принадлежащий дерипаск структура en миллион евро поставщик электричество электропривред черногория миллион евро . en приобрести доля алюминиевый комбинат подгорица год . конфликт en власть черногория начаться приход российский компания страна . правительство балканский государство время не_оставлять попытка вернуть контроль предприятие . |ngramms объявить_о_банкротство промышленный_предприятие являться_российский миллиардер_ быть_объявить продажа_завод юридический_лицо владелец_предприятие закон_о_банкротство процедура_банкротство миллион_евро миллион_евро миллион_евро миллион_евро миллион_евро крупный_кредитор завод_являться российский_компания +1241 |text завод метровагонмаш входящий состав трансмашхолдинг подписать московский метрополитен контракт технический обслуживание вагон . официальный трансмашхолдинг . вагон составлять парк электродепо новогиреево обслуживать калининский линия метро . метрополитен контракт метровагонмаш управление стать заключённый частный компания . договор структура трансмашхолдинг подписать год . агентство сумма контракт срок действие составить миллиард рубль . метровагонмаш выиграть конкурс техобслуживание депо организовать городской власть . как исполнять обязанность мэр москва договор метровагонмаш выгодный метрополитен . смочь сэкономить эксплуатационный расход оптимизировать капитальный затрата . О что частный компания впервые получить управление электродепо столичный метро конец сообщить заместитель мэр вопрос транспорт максим . отмечать что депо остаться собственность город частный компания передать оперативный управление . единственный номинальный акционер трансмашхолдинг являться голландский breakers investments bv . В владелец фирма входить российский железный дорога ржд . акция breakers investments bv контролироваться французский alstom структура бизнесмен . принадлежать доля трансмашхолдинг прошлое год партнёр компания . В текущий год гуп государственный унитарный предприятие мосгортранс впервые разрешить частный компания перевозить пассажир регулярный автобусный маршрут . перевозка маршрут номер северный административный округа москва заняться фирма север авто подразделение оао . |ngramms московский_метрополитен технический_обслуживание пресс_релиз частный_компания частный_компания частный_компания частный_компания миллиард_рубль городской_власть исполнять_обязанность мэр_москва _ _ капитальный_затрата сообщить_заместитель максим_ оперативный_управление российский_железный_дорога бизнесмен__ текущий_год +1242 |text аэрофлот планировать выкупить ценный бумага акционер согласный покупка boeing airbus . сообщать новость ссылка перевозчик . компания выкупить акция рубль бумага что соответствовать рыночный стоимость акция определённый независимый организация русский оценка . торг акция аэрофлот подорожать процент рубль . акция смочь собственник быть голосовать лизинг самолёт airbus boeing не_принять голосование . внеочередной собрание акционер рассмотрение быть вынести вопрос сделка состояться . О намерение аэрофлот взять лизинг самолёт boeing generation стать . первоначально контракт стоимость миллиард доллар быть заключить год имя ростех . подконтрольный госкорпорация авиакапитал сервис получить boeing передача лизинг аэрофлот . стать что крупный российский перевозчик намеренный взять лизинг новый самолёт airbus . |ngramms планировать_выкупить ценный_бумага пресс_служба выкупить_акция соответствовать_рыночный стоимость_акция самолёт_airbus самолёт_airbus собрание_акционер О_намерение самолёт_boeing миллиард_доллар быть_заключить подконтрольный_госкорпорация крупный_российский +1243 |text немецкий автомобильный концерн volkswagen планировать год увеличить численность персонал нынешний тысяча тысяча человек . заявить председатель производственный совет компания остерлох bernd osterloh интервью газета handelsblatt . полностью интервью быть опубликовать . как рассказать остерлох volkswagen планировать нанимать новый персонал скорее китай нежели европейский государство . большой половина сотрудник концерн трудиться завод расположить предел европа . В ближний год volkswagen намеренный удвоить мощность китайский завод . слово остерлох год volkswagen рассчитывать обогнать японский toyota motor стать мировой лидер продажа автомобиль . В год немецкий автопроизводитель миллион автомобиль что превышать показатель предыдущий год процент . В очередь toyota предварительный реализовать прошлое год миллион машина рост год составить процент . положение японский корпорация негативно сказаться спорый япония китай остров сенкака отзыв рекордный партия автомобиль год . |ngramms концерн_volkswagen год_увеличить численность_персонал тысяча_человек быть_опубликовать как_рассказать volkswagen_планировать В_ближний китайский_завод японский_toyota мировой_лидер немецкий_автопроизводитель миллион_автомобиль превышать_показатель предыдущий_год В_свой_очередь миллион_машина год_составить японский_корпорация +1244 |text правительство гоа запретить открывать территория пляжный клуб playboy быть стать индия . как сообщать индийский economic times заявить гоа манохара manohar parrikar . слово причина запрет технический лицензия прибрежный кафе гоа выдаваться индивидуальный предприниматель компания . О план открытие сеть пляжный клуб playboy быть объявить год . планироваться что клуб гоа стать индия сеть распространиться территория . К год индия быть запуститься клуб бренд . подготовка открытие клуб заниматься мумбайский компания pb lifestyle выиграть соответствующий лицензия . отмечать что клуб быть придерживаться индийский норма мораль девушка не_быть ходить полураздетый . план открытие клуб вызвать бурный полемика индия критика playboy уверять что клуб бренд быть рекламировать проституция . клуб playboy начать появляться сша год . отличительный особенность являться что официантка одетый костюм зайчик называть playboy bunnies . В год клуб американский тв быть запустить специальный сериал playboy club закрыть эпизод . |ngramms как_сообщать премьер_министр причина_запрет открытие_сеть быть_объявить что_клуб что_клуб открытие_клуб открытие_клуб соответствующий_лицензия быть_запустить +1245 |text мечело завершить сделка продажа американский дочка угольный компания mechel bluestone семья миллиардер сша джастис . сообщаться сайт российский металлургический холдинг . соглашение предполагать единовременный выплата миллион доллар . покупатель обязываться выплачивать мечело доллар добыть реализовать тонна уголь . помимо структура подконтрольный джастис обязать быть выплатить процент выручка возможный будущий перепродажа bluestone контракт быть заключить год дата нынешний сделка процент предприятие перепродать год . условие соглашение мечело структура джастис являться отказ сторона взаимный исковый требование . мечело bluestone управлять горнодобывающий комплекс западный виргинии рамка стратегия реализация непрофильный нестратегический актив . гендиректор мечело корж что сделка позволить холдинг избежать убыток нести американский предприятие сократить обязательство баланс группа объём миллион доллар снять судебный риска мечело пытаться отсудить миллион доллар компания weir international некорректный оценка запас bluestone прима . лента . . высвободить денежный поток смочь сконцентрировать обслуживание долг компания добавить . мечело испытывать сложность обслуживание долг конец миллиард доллар продавать подмосковный москокс братский завод ферросплав железнодорожный ветка бама эльгинский угольный месторождение безуспешно пытаться ржд миллиард рубль доля эльгинский проект добыча уголь якутия . добыча уголь шахта разрез bluestone нерентабельный . средний ежегодный чистый убыток компания год составить миллион доллар . В год мечело приобрести bluestone структура подконтрольный семья джастис миллион доллар процент собственный акция . |ngramms сделка_по_продажа угольный_компания семья_миллиардер металлургический_холдинг соглашение_предполагать миллион_доллар миллион_доллар миллион_доллар быть_выплатить быть_заключить исковый_требование сделка_позволить денежный_поток долг_компания топ_менеджер обслуживание_долг миллиард_доллар угольный_месторождение миллиард_рубль чистый_убыток собственный_акция +1246 |text генеральный директор кб стрелка рамка восточный экономический форум проходить владивосток выступить форум молодая предприниматель притяжение дальний восток . рассказать предпринимательский подход решение проблема городской привести пример успешный развитие обозначить ключевой участник процесс городской преобразование . предпринимательский подход решение подобный задача слово отличать что предприниматель не_ждать хороший условие оценивать текущий ситуация искать возможность привнести нея нечто новое . что задача кб стрелка искать находить городской решение предполагать соблюдение баланс интерес власть бизнес общество . специалист кб использовать подход . комплексный подход есть понимание городской как совокупность взаимосвязанный элемент образующая единый целое . мультидисциплинарный подход означать привлечение команда специалист различный область социальный экономический технологический архитектурный градостроительный . системность есть управление полный цикл разработка городской стратегия сопровождение реализация городской проект . кб стрелка как удаться создать платформа привлекать деятельность большой количество молодая компания . кб стрелка успешно сотрудничать сотня компания как российский иностранный отдельный проект подбираться пул профессиональный команда способный решить иной поставить задача . В качество пример привести программа развитие городской кб работать совместно агентство ипотечный жилищный кредитование аижк . В соответствие план программа год начинать преображаться город благоустроить общественный пространство . дать программа реализоваться рамка национальный проект формирование комфортный городской . весной год житель смочь пройтись обновить площадь набережная парка город как воронеж ижевск набережная челны пенза кемерово красноярск липецк новосибирск нижний новгород оренбург рязань саратов уфа краснодар чебоксары иркутск астрахань хабаровск волгоград ульяновск екатеринбург владикавказ белгород калининград . сайт город будущее . рф представить концепция общественный пространство город житель предлагаться оставлять комментарий идея проект готовиться реализация год . цель проект привлечь горожанин формирование комфортный городской . форум молодая предприниматель дальневосточный федеральный округа впервые открыть год деловой программа вэф . основной участник форум человек основное молодая человек возраст год . |ngramms генеральный_директор _ экономический_форум молодая_предприниматель молодая_предприниматель дальний_восток решение_проблема привести_пример ключевой_участник решение_подобный хороший_условие текущий_ситуация искать_возможность как_отметить_ большой_количество поставить_задача В_качество программа_развитие год_начинать дать_программа ростов_на_дону нижний_новгород федеральный_округа деловой_программа участник_форум молодая_человек +1247 |text суд интеллектуальный право сип оставить изменение акт нижестоящий судно взыскание липецкий предприятие росить дочерний структура украинский кондитерский корпорация roshen принадлежащий президент украина миллион рубль незаконный использование товарный знак певунья . сообщать новость ссылка материал суд . сип отклонить кассационный жалоба росить решение арбитраж липецкий область постановление девятнадцать арбитражный апелляционный суд полностью удовлетворить исковый требование тульский кондитерский фабрика ясный поляна . образ арбитражный суд инстанция согласиться довод истец что обозначение ласточка певунья разместить этикетка конфета росить товарный знак певунья фабрика ясный поляна сходный степень смешение . как следовать материал истец являться правообладатель товарный знак певунья товар как мармелад конфета шоколад пралине пряник печение булка галета вафля восточный сладость . В год тульский кондитер узнать что ответчик выпускать конфета название ласточка певунья обратиться иск защита право интеллектуальный собственность . истец заявить требование взыскание денежный средство вид двукратное размер стоимость товар незаконно разместить товарный знак . размер исчислить основание дать ответчик объём выпуск конфета ласточка певунья год стоимость рубль килограмм . roshen крупный украина производитель кондитерский изделие включать киевский мариупольский донецкий область кременчугский полтавский область винницкий кондитерский фабрика масломолочный комбинат бершадьмолоко литинский племзавод винницкий область липецкий фабрика росить россия клайпедский кондитерский фабрика литва . корпорация производить вид кондитерский изделие шоколадный желейный конфета карамель шоколад печение вафля бисквитный рулет торт . объесть производство достигать тысяча тонна продукция год . |ngramms липецкий_предприятие дочерний_структура украинский_кондитерский корпорация_roshen украина__ незаконный_использование товарный_знак товарный_знак товарный_знак товарный_знак материал_суд решение_арбитраж липецкий_область апелляционный_суд исковый_требование кондитерский_фабрика кондитерский_фабрика кондитерский_фабрика арбитражный_суд что_ответчик истец_заявить денежный_средство стоимость_товар объём_выпуск кондитерский_изделие кондитерский_изделие донецкий_область липецкий_фабрика корпорация_производить производство_достигать тысяча_тонна +1248 |text реализация проект северный поток турецкий поток оставить украина транзит газа стоимость газотранспортный система страна упасть . заявить эфир телеканал глава компания нафтогаз украина коболеть . быть проект северный поток проект турецкий поток вариант линия договор строительство линия недавно пройти ратификация парламент турция есть намерение довольно серьёзный заслать довольно далеко предполагать что территория украина не_быть никакой транзит что предположить уменьшить стоимость гтс украина приблизительно приводить слово глава нафтогаза новость . коболеть сообщить что компания рассматривать вариант оспорить решение еврокомиссия расширение доступ газпром газопровод opal суд . решение ек неприятно украина считать что есть некоторый политический мотивированность надеяться что есть вероятность решение отменить добавить что нафтогаз подать жалоба немецкий регулятор решение . президент россия заявить что северный поток быть реализовать несмотря препона сторона некоторый страна . подчеркнуть что участник проект не_выразить желание покинуть . реализация проект транзитный страна потерять выгода услуга оплачивать конечный потребитель резюмировать глава государство . соглашение акционер проект северный поток подразумевать расширение северный поток строительство нитка быть подписать начало год . В состав новое консорциум войти газпром E . shell basf wintershall omv engie . новое нитка годовой мощность миллиард кубометр как действующий пройти российский побережье дно балтийский море германия . ввод трубопровод эксплуатация запланировать квартал год . строительство северный поток выступать прибалтийский государство польша украина . проект критиковать сша . парламент турция ратифицировать соглашение россия проект строительство газопровод турецкий поток . проект предполагать прокладка нитка магистральный газопровод мощность миллиард кубометр дно чёрный море . нитка газ быть поставляться турецкий рынок транзит турция европейский страна . еврокомиссия одобрить исключение процент мощность газопровод opal третье энергопакет что давать возможность газпром увеличить прокачка газа европа . газпром иметь право процент мощность ограничение наложить ек год . нынешний решение дать возможность российский концерн приобретать квота процент мощность . |ngramms реализация_проект реализация_проект северный_поток северный_поток северный_поток северный_поток северный_поток северный_поток турецкий_поток турецкий_поток турецкий_поток транзит_газа газотранспортный_система глава_компания нафтогаз_украина территория_украина не_быть_никакой слово_глава что_компания рассматривать_вариант решение_еврокомиссия расширение_доступ что_есть подать_жалоба немецкий_регулятор президент_россия__ быть_реализовать некоторый_страна участник_проект глава_государство соглашение_акционер быть_подписать В_состав консорциум_войти миллиард_кубометр миллиард_кубометр ввод_трубопровод строительство_газопровод проект_предполагать газопровод_мощность чёрный_море быть_поставляться европейский_страна мощность_газопровод давать_возможность газа_в_европа иметь_право процент_мощность процент_мощность дать_возможность российский_концерн +1249 |text министерство транспорт предлагать отменить обязательный требование авиаперевозчик иметь восемь самолёт . номер писать газета ведомость ссылка документ министерство . В ведомство считать что отмена ограничение нужный создание россия бюджетный авиакомпания . заместитель директор департамент государственный политика область гражданский авиация шнырёв заявить издание что порог восемь самолёт являться фактически запретительный выход рынок новый авиаперевозчик . мнение требование минимальный самолёт парка авиакомпания мочь быть отменить полностью . остальной предложение минтранс называть аэрофлот . крупный авиаперевозчик считать что появление бюджетный авиакомпания необходимый разрешить не_кормить пассажир полёт продавать невозвратный билет взимать плата багаж нанимать пилот иностранец . сообщаться что аэрофлот намеренный создавать авиакомпания . большинство проект создание бюджетный перевозчик россия нынешний время быть неудачный . год приостановить деятельность лоукостёр авиановый что быть связать внутренний конфликт акционер . В год неудовлетворительный финансовый состояние быть отозвать лицензия дискаунтер sky express . российский рынок намеренный выйти крупный лоукостёр европа ирландский компания ryanair . В год тогдашний президент поручить сократить количество действующий россия авиакомпания что быть вызвать серия авиакатастрофа . отмечать что нужно почистить кто готовый работать . норматив минимальный самолёт разрабатывать министерство транспорт . обращать внимание что страна мир количество самолёт не_считаться критерий авиационный безопасность . |ngramms министерство_транспорт министерство_транспорт восемь_самолёт писать_газета В_ведомство отмена_ограничение бюджетный_авиакомпания бюджетный_авиакомпания директор_департамент государственный_политика гражданский_авиация заявить_издание самолёт_являться выход_на_рынок мочь_быть крупный_авиаперевозчик бюджетный_перевозчик финансовый_состояние быть_отозвать намеренный_выйти президент__ сократить_количество быть_вызвать обращать_внимание страна_мир авиационный_безопасность +1250 |text бывший гендиректор retail group левый стать заместитель президент сбербанк писать коммерсантъ ссылка источник банковский отрасль . пригласить повышение эффективность бизнес процесс скорость принятие решение банка . недавний время являться исполнительный директор новый формат крупный мир американский компания wal mart куда устроиться год . сайт компания список директор не_значиться . зампред сбербанк быть назначить максим прийти московский отделение . сфера компетенция быть разграничить . В время как быть курировать административный операционный вопрос заняться конкретный бизнес процесс . иметь опыт управление банка . В год руководить самарский филиал автовазбанк работать . год быть торговый дом перекрёсток retail group владелец сеть пятёрочка . считаться высокооплачиваемый управленец российский несырьевой компания . В год зарегистрировать фамилия как товарный знак кириллица латиница . |ngramms бывший_гендиректор retail_group retail_group левый_ президент_сбербанк банковский_отрасль повышение_эффективность принятие_решение вице_президент вице_президент вице_президент исполнительный_директор новый_формат американский_компания быть_назначить максим_ время_как быть_курировать альфа_банк топ_менеджер торговый_дом владелец_сеть товарный_знак +1251 |text акция сервис микроблог twitter ход первичный размещение ipo оценить доллар ценный бумага . сообщаться официальный аккаунт компания . что торг начаться фондовый биржа nyse . twitter собираться nyse миллион акция стоимость миллиард доллар . капитализация компания быть оценить миллиард доллар писать . компания предоставить банка организатор размещение возможность тридцать купить дополнительный миллион акция . образ стоимость акция составить миллиард доллар . компания повысить диапазон стоимость акция доллар сравнение предыдущий оценка доллар . twitter подать заявка ipo комиссия ценный бумага сша . первичный размещение акция twitter американский назвать ожидать ipo facebook состояться год . социальный сеть twitter быть создать год . состояние конец год аудитория насчитывать миллион ежемесячно активный пользователь сайт входить десятка посещать ресурс интернет . |ngramms акция_сервис первичный_размещение первичный_размещение ценный_бумага ценный_бумага нью_йоркский фондовый_биржа twitter_собираться миллиард_доллар миллиард_доллар миллиард_доллар компания_быть компания_предоставить организатор_размещение миллион_акция компания_повысить акция_twitter интернет_компания социальный_сеть активный_пользователь +1252 |text продажа часть госакция роснефть мочь принести бюджет миллиард рубль . заявить ход выступление госдума замминистра финансы россия сообщать новость . В середина министр экономический развитие заявлять что доход приватизация крупный компания год планироваться уровень миллиард рубль . уточнять что идти приватизация госкомпания роснефть башнефть алроса совкомфлот втб . заявить что государство получить деньга приватизация пакет роснефть дивиденд роснефтегаз . старт приватизация быть дать совещание экономический вопрос президент россия . В кандидат продажа актив ростелеком транснефть аэрофлот роснефть совкомфлот ряд компания . В ход совещание потребовать не_продавать госпакет акция бесценок . подчеркнуть что реализация госимущество быть экономически оправдать целесообразный необходимый учитывать конъюнктура тенденция рынок . мнение президент контрольный пакет системообразующий госкомпания остаться рука государство . В год министр финансы россия силуановый заявить что рассматривать возможность приватизация роснефть как источник замещение дополнительный расход резервный фонд . |ngramms продажа_часть мочь_принести миллиард_рубль миллиард_рубль финансы_россия статс_секретарь _ _ В_середина министр_экономический_развитие год_планироваться что_государство получить_деньга быть_дать президент_россия__ В_ход _потребовать госпакет_акция необходимый_учитывать тенденция_рынок контрольный_пакет рука_государство министр_финансы россия_ рассматривать_возможность дополнительный_расход +1253 |text журнал forbes признать основатель совладелец люксембургский холдинг letterone миллиардер бизнесмен год россия . вложить миллиард доллар иностранный компания рекордный сумма российский бизнесмен год писать издание . В год холдинг letterone приобрести английский сеть здоровый питание holland barrett миллиард доллар вложить миллиард доллар новый фонд компания pamplona capital management . кто forbes выбирать бизнесмен год . год миллиардер удостоиться честь как ключевой организатор сделка продажа половина акция тнк вр компания роснефть миллиард доллар . состояние forbes оценивать миллиард доллар . заняться частное предпринимательство год создать фирма . В бизнесмен основать стать крупный коммерческий банк россия . |ngramms журнал_forbes альфа_группа миллиардер__ год_в_россия _ миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар иностранный_компания российский_бизнесмен писать_издание сделка_по_продажа половина_акция состояние_ альфа_банк +1254 |text консолидированный чистый прибыль мтс третье квартал год снизиться процент миллиард рубль сравнение миллиард рубль аналогичный период прошлое год . сообщить президент компания дубовсков передавать корреспондент лента . . слово дубовсков снижение прибыть произойти неденежный списание вызвать изменение курс валюта рубль . консолидированный выручка компания номинировать российский рубль вырасти третье квартал процент составить миллиард рубль . скорректировать консолидированный показатель oibda вырасти процент миллиард рубль маржа oibda составить процент . капитальный затрата третье квартал составить миллиард рубль . компания сохранять прогноз капзатрата год согласно показатель вырасти миллиард рубль сравнение миллиард рубль год . компания что волатильность валютный курс мочь оказать влияние итоговый объесть инвестиция итог год . дивидендный политика мтс предусматривать привязка выплата свободный денежный поток генерировать компания . итог месяц год показатель составить миллиард рубль . чистый прибыль группа россия третье квартал год снизиться процент составить миллиард рубль сравнение миллиард рубль аналогичный период прошлое год . выручка вырасти процент миллиард рубль . показатель oibda увеличиться процент составить миллиард рубль . |ngramms чистый_прибыль чистый_прибыль третье_квартал третье_квартал третье_квартал третье_квартал миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль аналогичный_период_прошлое_год аналогичный_период_прошлое_год пресс_конференция президент_компания_ передавать_корреспондент вызвать_изменение курс_валюта выручка_компания процент_и_составить процент_и_составить процент_и_составить капитальный_затрата валютный_курс объесть_инвестиция свободный_денежный_поток +1255 |text крупный российский продовольственный ритейлер год открыть новый магазин формат что превзойти результат предкризисный год стать новый рекорд . номер писать газета ведомость ссылка дать агентство infoline получать информация розничный сеть . совокупный торговый площадь ритейлер вырасти миллион квадратный метр миллион . чистый прирост вычет закрытый магазин составить процент . лидер рост остаться магнит доля новый торговый площадь составить процент . открыть новый магазин площадь вырасти миллион квадратный метр . место сохранить retail group пятёрочка перекрёсток карусель доля прирост составить процент . третье место достаться дикси процент . В прошлое год retail group следовать французский auchan . В отраслевой агентство отмечать что доля крупный ритейлер рынок сокращаться время как мелкий региональный сеть как холидея ра интерторг расти . год магнит приходиться процент прирост крупный сеть прошлое год показатель составить процент . хороший год отечественный считаться . торговый площадь крупный ритейлер вырасти миллион квадратный метр . В год рост составить миллион квадрат миллион год миллион квадратный метр . В время рейтинг крупный ритейлер объём выручка отличаться список сеть наибольший магазин . согласно рейтинг infoline первое место объём выручка позапрошлый год занять retail group удаться заработать миллиард рубль . место занимать магнит миллиард третье auchan миллиард рубль . |ngramms крупный_российский год_открыть новый_магазин новый_магазин стать_новый писать_газета розничный_сеть торговый_площадь торговый_площадь торговый_площадь квадратный_метр квадратный_метр квадратный_метр квадратный_метр retail_group retail_group retail_group прирост_составить третье_место В_прошлое_год агентство_отмечать показатель_составить рост_составить В_то_же_время рейтинг_крупный согласно_рейтинг первое_место год_занять миллиард_рубль миллиард_рубль +1256 |text компания киевский площадь владеть миллиардер год нисан выкупить спорткомплекс олимпийский группа компания альянс возглавлять . сообщать forbes ссылка новое владелец . сумма сделка не_разглашаться . реконструкция заняться польский компания apa wojciechowski участвовать строительство отель зарядье . работа быть проводиться год . новое собственник планировать инвестировать проект миллион доллар . киевский площадь собираться реконструировать расширить спортивный комплекс счёт оптимизация пространство площадь быть увеличить тысяча квадратный метр тысяча квадратный метр пояснить . быть провести реконструкция бассейн установить новое система очистка вода смонтировать экран трансляция соревнование . новое владелец намереваться реконструировать хоккейный футбольный . как сообщить компания владелец завершение реконструкция олимпийский быть теннисный корт гимнастический зала плавательный прыжковый бассейн аквапарк оздоровительный реабилитационный комплекс центр экстремальный спорт крытый каток зала концерт выставка конференция . помимо обновить олимпийский собираться разместить кинотеатр возможность просмотр картина формат развлекательный центр ребёнок . быть увеличить парковка спорткомплекс . К время киевский площадь владеть рынок садовод москва южный ворот торговый центр европейский . собственность компания находиться гостиница украина комплекс торговля продовольствие фуд сити . |ngramms киевский_площадь киевский_площадь киевский_площадь группа_компания _ пресс_служба пресс_служба пресс_служба новое_владелец новое_владелец сумма_сделка польский_компания строительство_отель работа_быть инвестировать_в_проект миллион_доллар спортивный_комплекс быть_увеличить тысяча_квадратный_метр тысяча_квадратный_метр быть_провести торговый_центр компания_находиться +1257 |text глава профсоюз volkswagen бернд остерлох заявить что коллектив отказываться выполнить требование руководство увеличение производительность труд процент текущий год . сообщать rambler service ссылка . цель поставить рабочий главный исполнительный директор бренд volkswagen . слово остерлох абсолютно нереалистичный мочь привести сокращение рабочий место . не_быть поддерживать дальнейший усиление производительность . считать что производительность находиться позитивный направление заявить . профсоюзный лидер добавить что коллектив ждать vw гарантия безопасность труд . В vw отчитаться что получить операционный убыток итог третье квартал размер миллиард евро впервые год . В компания отмечать что основной расход оказаться связать ликвидация последствие называть дизельный скандал автопроизводитель прийтись выплатить миллиард евро рамка урегулирование претензия власть покупатель . месяц агентство охрана окружающий epa сша обнаружить машина volkswagen audi дизельный двигатель программный обеспечение фальсифицировать результат тест количество вредный вещество выхлоп . история получить широкий резонанс привести отставка глава vw винтеркорный . покинуть концерн некоторый . аналогичный проблема дизельный двигатель vw открыться германия приостановить продажа авто двигатель франция италия испания великобритания япония страна . попасть программа устранение дефект программный обеспечение мочь миллион автомобиль мир . В сша концерн грозить штраф нарушение экологический норма максимальный сумма оцениваться миллиард евро . концерн volkswagen объединять сотня предприятие мир . помимо одноимённый бренд автоконцерн принадлежать марка audi bentley bugatti lamborghini porsche seat skoda мотоцикл ducati . владеть акция компания специализироваться выпуск грузовой лёгкое коммерческий пассажирский транспорт scania man . автоконцерн занимать место японский toyota ежегодно продавать машина . итог год реализовать миллион автомобиль . |ngramms что_коллектив что_коллектив сообщать_rambler_news_service исполнительный_директор _ рабочий_место гарантия_безопасность что_получить операционный_убыток третье_квартал миллиард_евро миллиард_евро миллиард_евро компания_отмечать что_основной дизельный_скандал прийтись_выплатить дизельный_двигатель дизельный_двигатель программный_обеспечение программный_обеспечение вредный_вещество получить_широкий отставка_глава топ_менеджер приостановить_продажа миллион_автомобиль миллион_автомобиль В_сша грозить_штраф концерн_volkswagen одноимённый_бренд принадлежать_марка акция_компания лёгкое_коммерческий японский_toyota год_реализовать +1258 |text арбитражный суд москва встать сторона центральный таможенный управление отклонить иск apple . сообщить rambler service представитель управление . В заявление apple просить признать незаконный решение центральный таможенный управление федеральный таможенный служба фтс изменение классификация apple watch . представитель управление уточнить что спорый рассматриваться суд инстанция . документ служба не_поступать дальнейший действие сторона нельзя . В конец сообщаться что apple подать судебный иск арбитражный суд москва центральный таможенный управление . заявление apple арбитраж московский область ответчик указанный . В конец год решение фтс гаджет apple watch стать классифицироваться как обычный наручный часы облагаться процентный сбор . товар считаться беспроводный устройство приём передача дать что подразумевать отсутствие пошлина . продажа apple watch начаться год . российский рынок умный часы появиться . |ngramms арбитражный_суд_москва арбитражный_суд_москва центральный_таможенный центральный_таможенный центральный_таможенный отклонить_иск rambler_news_service представитель_управление представитель_управление _ В_заявление признать_незаконный управление_федеральный таможенный_служба что_спорый В_конец В_конец apple_подать московский_область как_обычный +1259 |text компания технопромэкспорт заявить арбитражный суд москва встречный иск российский подразделение siemens . истец требовать признать частично недействительный договор поставка турбина заключённый сименс технология газовый турбина . сообщать новость . просить признать недействительный пункт . договор год цитировать агентство представитель технопромэкспорт . отмечаться что содержание оспаривать пункт заседание огласить не_быть . В середина российский дочка siemens подать иск одноимённый структура ростех оао ооо технопромэкспорт . О суть претензия не_сообщаться . В суд технопромэкспорт подать корпорация siemens обвинить инжиниринговый дочка ростех незаконный поставка крым газовый турбина . В немецкий компания что полуостров нарушение контрактный обязательство быть переместить турбина поставить летом год проект тамань . концерн намереваться добиться возвращение оборудование тамань предотвратить новое поставка крым . сообщаться что siemens готовый выкупить оборудование аннулировать контракт . В москва настаивать что поставить полуостров турбина иметь российский происхождение . В скандал поставка турбина крым евросоюз расширить санкция отношение россия . |ngramms арбитражный_суд_москва российский_подразделение истец_требовать сообщать_риа_новость просить_признать цитировать_агентство В_середина одноимённый_структура поставка_в_крым поставка_в_крым немецкий_компания поставить_летом добиться_возвращение готовый_выкупить В_москва российский_происхождение +1260 |text летний колебание курс рубль мочь быть вызвать бегство инвестор испугаться новый санкция писать цб обзор ликвидность банковский сектор финансовый рынок . дополнительный причина выплата компания дивиденд пик приходиться как летний месяц . В конец начало российский рынок завершаться период выплата дивиденд . В год объесть утвердить дивиденд примерно процент превысить объесть выплата предыдущий год . крупный дивидендный выплата мочь приводить заметный изменение курс рубль документ . слово регулятор привести последствие . компания экспортёр выплачивать дивиденд прийтись менять валютный выручка рубль поддержать рубль . получить дивиденд акционер начать наоборот менять валюта ослабить рубль . указывать цб курс российский валюта меняться часто разнонаправленный . целое ситуация российский валютный фондовый рынок регулятор оценивать как стабильный . котировка инструмент сегмент итог месяц измениться несущественный . месяц наблюдаться период как ухудшение улучшение рыночный конъюнктура . определять влияние конъюнктура российский рынок оказывать внешний фактор обзор . В начало середина курс рубль резко упасть обновлять минимум год . курс евро время достигнуть отметка рубль курс доллар рубль . |ngramms курс_рубль курс_рубль курс_рубль мочь_быть новый_санкция банковский_сектор финансовый_рынок летний_месяц выплата_дивиденд В_это_год утвердить_дивиденд объесть_выплата предыдущий_год акционер_начать указывать_цб российский_валюта ситуация_на_российский фондовый_рынок российский_рынок В_начало резко_упасть курс_доллар +1261 |text газпром нефть познакомить автолюбитель процесс производство транспортировка топливо деталь устройство азс помощь технология виртуальный реальность . надеть vr очки посетитель флагманский азс сеть газпромнефть смочь увидеть глаз путь проходить топливо как попасть бак автомобиль . газпром нефть помощь виртуальный реальность делать технологический процесс прозрачный желающий . проект стартовать москва екатеринбург . поступить редакция лента . . В сообщение отмечаться что ведущий фильм участник квартет И актёр провести виртуальный тур ключевой объект нефтяной инфраструктура нпз нефтебаза лаборатория система подземный коммуникация азс . зритель фильм увидеть крупный нефтеперерабатывающий завод россия омский нпз газпром нефть где процесс сложный технологический процесс нефть преобразоваться моторный топливо . ознакомиться нефтебаза хранилище ёмкость тысяча тонна оказаться кабина современный многосекционный бензовоз заглянуть невидимый часть резервуарный парк азс . благодаря пятиминутный фильм зритель эффект полный погружение мочь увидеть технологический процесс сопровождать нефтепродукт производство бак автомобиль элемент непрерывный система контроль качество мочь слышать . vr решение глубокий проникать различный сфера деятельность . выстраивать бизнес клиент использовать как возможность наглядно показать процесс производство реализация моторный топливо выступить потребитель проводник мир новый технология директор региональный продажа газпром нефть . vr фильм минувший выходной посмотреть посетитель азс . В москва екатеринбург показ начаться неделя . В следующий год зритель фильм стать житель город . просмотр фильм бесплатный . подробность проект график показ можно узнать ресурс gpnbonus.ru . |ngramms газпром_нефть газпром_нефть газпром_нефть газпром_нефть технологический_процесс технологический_процесс технологический_процесс проект_стартовать санкт_петербург санкт_петербург пресс_релиз поступить_в_редакция В_сообщение_отмечаться актёр__ зритель_фильм зритель_фильм нефтеперерабатывающий_завод тысяча_тонна система_контроль сфера_деятельность новый_технология _ следующий_год подробность_проект можно_узнать +1262 |text белаз создать большой мир самосвал грузоподъёмность тонна сообщать бёлтый . грузовик быть представить испытательный полигон белорусский автомобильный завод . компания готовить документ представление машина книга рекорд . предыдущий достижение быть установить самосвал liebherr год смочь поднять тонна . аналогичный грузоподъёмность грузовик быть создать белаз поздний год . карьерный самосвал белаз электромеханический трансмиссия переменный ток предназначить перевозка горный масса сложный горнотехнический условие глубокий карьер открытый разработка месторождение полезный ископаемое технологический дорога различный климат температура воздух градус тепло . масса самосвал составлять тонна . самосвал иметь колесо радиальный бескамерный пневматический шина . максимальный скорость грузовик составлять километр час . |ngramms автомобильный_завод книга_рекорд быть_установить год_смочь быть_создать разработка_месторождение максимальный_скорость километр_в_час +1263 |text пассажир международный рейс российский авиакомпания год упасть процент миллион человек миллион . сообщаться сайт росавиация . перевозка дальний зарубежье снизиться сильный процент миллион человек . В снг отправиться миллион пассажир что маленький прошлогодний процент . фон вырасти пассажир путешествовать россия авиакомпания перевезти внутренний рейс миллион человек что процент большой результат год . крупный авиакомпания сильный пострадать ютэйр услуга воспользоваться треть маленький клиент миллион человек . сибирь уральский авиалиния суметь улучшить показатель процент соответственно . перевозчик обслужить миллион человек . услуга обанкротиться конец год авиакомпания трансаэро успеть воспользоваться миллион пассажир что четверть маленький показатель год . крупный российский перевозчик оставаться аэрофлот . перевезти миллион пассажир улучшить показатель процент . объесть перевозка груз почта год росавиация незначительно подрасти миллион тонна . перераспределение пассажиропоток внутренний рейс прошлое год происходить фон запрет полёт россия украина ввиду конфликт авиавласть страна египет теракт борт пассажирский лайнер airbus компания когалымавиа . запрет попасть чартерный рейс турция инцидент сбить российский бомбардировщик сирия введение власть рф санкция страна . |ngramms российский_авиакомпания год_упасть миллион_человек миллион_человек миллион_человек миллион_человек миллион_человек дальний_зарубежье миллион_пассажир миллион_пассажир миллион_пассажир авиакомпания_перевезти процент_большой уральский_авиалиния процент_соответственно крупный_российский перевозка_груз миллион_тонна запрет_полёт лайнер_airbus запрет_попасть +1264 |text втб процент мобильный оператор россия консорциум инвестор глава банк россия структура миллиард рубль сообщаться квартальный отчётность банка . О что госбанк половина пакет россия стать впервые желание расстаться актив кредитный организация рассказать . сумма сделка первоначально не_раскрываться . У втб остаться половина оператор быть приобрести банк миллиард доллар примерно миллиард рубль . учитывать нынешний цена банк сделка остаться . В ближний план создание совместный предприятие ростелеком . намеренный внести создавать мобильный оператор сотовый компания россия оценить миллиард доллар . актив россия оцениваться миллиард доллар . прошедшее совет директор ростелеком принципиальный решение объединение впрочем не_быть . новый мобильный оператор рт мобайл появиться результат предполагать слияние мочь занять процент рынок стать крупный компания сотовый россия . |ngramms мобильный_оператор мобильный_оператор мобильный_оператор консорциум_инвестор _ миллиард_рубль миллиард_рубль кредитный_организация сумма_сделка миллиард_доллар миллиард_доллар миллиард_доллар нынешний_цена сделка_остаться В_ближний сотовый_компания совет_директор мочь_занять процент_рынок крупный_компания +1265 |text нитка газопровод турецкий поток быть построить год . заявить зампред правление газпром передавать . слово работа идти график морской часть турецкий поток наземный . В настоящее время готовиться межправсоглашение россия турция план работа изыскание участок . срок строительство простой год объём предназначить турецкий поток быть транзитироваться . идти миллиард кубометр газа турция примерно миллиард европа . сообщить что газпром готовый начать поставка газа восточный коридор трубопровод сила сибирь мощность миллиард кубометр год китай год . В год газпром отказаться строительство газопровод обход украина южный поток сопротивление еврокомиссия пользоваться поддержка сша . ход визит турция президент рф взамен закрытый южный поток москва анкара договориться прокладка дно чёрный море газопровод турецкий поток пропускной способность миллиард кубометр газа год . В глава мид греция сербия македония венгрия турция подтвердить намерение участвовать строительство газопровод новый маршрут . итальянский строительный компания saipem быть работать рамка южный поток заявить готовность начать работа рамка проект турецкий поток поступление соответствующий запрос газпром . трубопровод турецкий поток протяжённость километр быть состоять нитка . газпром намеренный транспортировать топливо страна европа греция . предполагаться что турецкий греческий граница быть создать газовый хаб страна ес быть самостоятельно строить инфраструктура приём топливо территория . |ngramms нитка_газопровод турецкий_поток турецкий_поток турецкий_поток турецкий_поток турецкий_поток турецкий_поток быть_построить зампред_правление _ морской_часть В_настоящее_время срок_строительство миллиард_кубометр_газа _также_сообщить поставка_газа сила_сибирь миллиард_кубометр миллиард_кубометр строительство_газопровод строительство_газопровод южный_поток южный_поток южный_поток рф__ чёрный_море газа_в_год глава_мид подтвердить_намерение новый_маршрут строительный_компания начать_работа соответствующий_запрос километр_быть топливо_в_страна юго_восточный греческий_граница быть_создать страна_ес самостоятельно_строить приём_топливо +1266 |text московский управление фас россия проверить поставщик мебель заподозрить картельный сговор торг сообщаться сайт ведомство . проверка коснуться компания виктория восход дёкий ивановский мебельный фабрика десятка . фас компания период год участвовать открытый конкурс поставка медицинский мебель мебель назначение провести агентство закупка департамент здравоохранение москва . максимальный цена контракт составить миллион рубль . В случай выявление признак нарушение закон защита конкуренция ведомство инициировать возбуждение антимонопольный отношение указанный организация предупредить фас . В год фас рассказать что ведомство быть выявить картельный сговор госзакупка лекарственный препарат медицинский оборудование . признак картель быть обнаружить проведение тысяча открытый аукцион электронный форма . объесть начальный максимальный цена контракт закупка превышать миллиард рубль сообщить начальник управление борьба картель фас . антимонопольный служба прошедшее год картель российский рынок вырасти процент . В год фас отчитаться проверка закончить расследование крупный картель . сговор поставка лекарство аукцион региональный больница поставка форма силовой структура аукцион миллиард рубль . |ngramms московский_управление фас_россия пресс_релиз проверка_коснуться открытый_конкурс цена_контракт цена_контракт миллион_рубль В_случай защита_конкуренция что_ведомство быть_выявить быть_обнаружить миллиард_рубль миллиард_рубль начальник_управление _ антимонопольный_служба прошедшее_год год_фас силовой_структура +1267 |text россия год утратить статус крупный поставщик газа литва уступить норвегия . заявить министр энергетика литва рокас передавать . В год рыночный доля норвегия литовский газовый рынок впервые превысить российский составить процент . конец год монополия поставка газа литва обладать газпром . снизить зависимость российский газа литва открыть город клайпеда восточный побережье балтийский море терминал приём сжидить природный газа спг начать экспортировать норвегия . В год литва рассчитывать втрое нарастить объесть поставка газа благодаря новый контракт норвежский statoil . топливо приобретать газовый lietuvos duju tiekimas ldt компания achema производитель азотный удобрение . образ поставка терминал порту клайпеда вырасти миллиард кубометр потребность литва миллиард кубометр . конец согласно klaipedos nafta литва прибыть танкер спг . рыночный доля газпром будущее быть зависеть цена коммерческий условие добавить . В год председатель совет директор газпром что первое квартал ожидать поставка газа европа цена примерно уровень доллар тысяча кубометр что доллар стоимость поставка первое квартал прошлое год . слово год газпром поставить европа миллиард кубометр треть потребить страна европа газа . В год газпром нарастить поставка дальний зарубежье процент предыдущий год миллиард кубометр экспорт германия вырасти процент италия процент франция процент великобритания процент . образ соблюдение план текущий год объесть поставка газа европа не_измениться . |ngramms крупный_поставщик министр_энергетика рыночный_доля рыночный_доля газовый_рынок впервые_превысить год_монополия российский_газа море_терминал природный_газа В_это_год поставка_газа миллиард_кубометр миллиард_кубометр миллиард_кубометр миллиард_кубометр потребность_литва добавить_ председатель_совет_директор тысяча_кубометр прошлое_год страна_европа дальний_зарубежье предыдущий_год +1268 |text компания чигиринский подать кипрский суд иск миллион доллар структура основный владелец магнитогорский металлургический комбинат ммк рашникова партнёр . сообщить ведомость ссылка источник близкие истец . информация подтвердить лента . адвокат чигиринский поволоцкий . заявление подать окружный суд лимасол . суд вынести решение арест ряд актив рашникова обеспечительный мера наложить счёт компания snapbox вилла юг франция рассказать адвокат чигиринский . рашник мочь воспользоваться деньга размер миллион доллар причитаться качество дивиденд продажа башня эволюция . иск чигиринский не_связать подчеркнуть юрист представлять интерес предприниматель . головной компания группа снегирь чигиринский S T equity требовать миллион доллар фирма snapbox holdings рашникова . snapbox год купить снегирь процентный доля проект evolution tower деловой центр примерно миллион доллар . рыночный стоимость проект оценка cushman wakefield составлять миллион доллар . образ снегирь мочь получить миллион доллар . объяснение сделка низка цена связать что сторона договориться передача снегирь процент доля гостиница россия варварка одноимённый башня уточнять симкина . проект принадлежать паритетный основа чигиринский рашникова . быть достигнуть договорённость привлечение снегирь как девелоперо проект строительство башня россия . рашник не_выполнить условие доля чигиринский гостиница россия одноимённый башня выкупить не_предложить сделать снегирь заявить ведомость юрист чигиринский симкина . S T equity требовать рашник вернуть разница рыночный стоимость проект цена сделка . миллион доллар фирма чигиринский hazlewood investment finance намерить взыскать подконтрольный рашникова надрать компания ocean flow international antequera enterprises . рашник скрыть факт проведение оценка объект результат . убеждать чигиринский что объект ничто не_стоить время как быть пояснить адвокат чигиринский поволоцкий лента . . подробность приводить ведомость покупка доля башня россия партнёр предложить чигиринский выкупить процент проект миллион доллар поздний цена быть снизить миллион доллар . слово адвокат рыночный цена актив составлять миллион доллар получение ряд разрешение миллион доллар . уверить позиция . В противный случай не_выступать иск отношение мошеннический действие сторона рашникова заведомо ввести заблуждение партнёр чигиринский заявить адвокат чигиринский лента . . рассматривать как мошеннический действие соответствие кипрский право что важный подчеркнуть поволоцкий . нарушение отношение партнёр акционер . В сила что партнёр акционер налагаться определённый обязательство скрывать информация действовать . представитель рашникова комментировать ведомость выдвинуть отношение бизнесмен претензия назвать необоснованный базироваться домысел полностью противоречащий факт документ . слово реальный цель иск чигиринский неправомерный завладение инвестиция доля прибыть рашникова evolution tower . поволоцкий очередь заявить что утверждение сознательный умышленный введение человек заблуждение . как можно совершать противоправный действие обращаться суд ? клиент чигиринский иск обращаться суд защита право юрист . состояться судебный заседание как ожидать поволоцкий быть назначить конкретный дата дальнейший рассмотрение . |ngramms _и_ суд_иск миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллион_доллар основный_владелец металлургический_комбинат _ информация_подтвердить адвокат_ адвокат_ адвокат_ чигиринский_ чигиринский_ ряд_актив москва_сити москва_сити москва_сити иск_чигиринский иск_чигиринский представлять_интерес головной_компания процентный_доля деловой_центр рыночный_стоимость рыночный_стоимость процент_доля _чигиринский _чигиринский _чигиринский _чигиринский _чигиринский _чигиринский быть_достигнуть проект_строительство цена_сделка быть_снизить рыночный_цена актив_составлять иск_в_отношение как_можно защита_право судебный_заседание быть_назначить +1269 |text оператор ростелеком обратиться государственный помощь направить заявка привлечение средство размер десять миллиард рубль рамка механизм проектный финансирование . сообщать ссылка финансовый директор компания мельхорный . уточнить что идти финансирование инфраструктурный проект создание подводный волоконный оптический линия сахалин магадан камчатка . стоимость проект оцениваться миллиард рубль сдача запланировать год . В рамка механизм проектный финансирование заёмщик мочь получить кредит ставка процент годовой банк фондироваться центробанк девять процент годовой . В настоящее время оператор большой тройка мтс мегафон рассматривать вариант получение господдержка . В конец сообщать ссылка источник что просить государственный поддержка строительство сеть поколение G намеренный вымпелком компания работать бренд билайн . В год правительство утвердить перечень системообразующий предприятие мочь рассчитывать антикризисный поддержка государство . крупный российский телекоммуникационный компания вымпелком мегафон мтс ростелеком список присутствовать . В условие ухудшение экономический ситуация россия падение спрос резкий рост кредитный ставка девальвация рубль различный вариант антикризисный господдержка конец начало год обратиться крупный российский компания включая машиностроительный холдинг авиакомпания ретейл . |ngramms государственный_помощь средство_в_размер миллиард_рубль миллиард_рубль проектный_финансирование проектный_финансирование директор_компания_ топ_менеджер В_рамка мочь_получить процент_годовой процент_годовой В_настоящее_время большой_тройка рассматривать_вариант В_конец государственный_поддержка компания_работать год_правительство поддержка_государство крупный_российский телекоммуникационный_компания экономический_ситуация падение_спрос резкий_рост различный_вариант крупный_российский_компания +1270 |text совладелец уральский компания угмк закрыть сделка покупка процент акция крупный россия радиохолдинг европейский медиагруппа емг . сообщать коммерсантъ . покупатель выступить компания мелодия принадлежать процент акция процент процент . сумма сделка не_раскрываться группа что капитализация емг рубль удвоиться покупка владелец сибирский деловой союз сдс год миллион доллар миллиард рубль . образ можно предположить что компания стоить миллиард рубль отмечать издание . курс доллар период вырасти вдвое . сдс медиахолдинг сохранять миноритарный пакет быть участвовать развитие бизнес новый акционер пояснить президент емг . сдс медиахолдинг компания акционер сдс . процент принадлежать процент сын процент . приобрести емг французский lagardere миллион доллар учёт миллион доллар наличность счёт компания год спортивный радиостанция москва миллион доллар кичеджи петербург пул частота миллион доллар супруга . спортивный радио год емг получить частота город вложить развитие миллиард рубль . емг крупный радиохолдинг страна управлять европа плюс дорожный радио ретро fm радио спорт fm радио . ежедневный национальный аудитория станция емг составлять процент радиослушатель . |ngramms горно_металлургический топ_менеджер __и__ __и__ __и__ процент_акция процент_акция крупный_в_россия покупатель_выступить сумма_сделка миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллиард_рубль миллиард_рубль миллиард_рубль можно_предположить отмечать_издание миноритарный_пакет развитие_бизнес новый_акционер пояснить_президент _ _ _и_ вице_губернатор +1271 |text крупный белорусский налогоплательщик беларуськалия перевести сотрудник рабочий неделя . сообщать хартия ссылка местный радио свобода . В конец сообщаться что беларуськалия остановить рудник перевести значительный часть работник треть оклад . хартия писать ссылка общественный активистка что начало финансовый трудность шахтёр зарабатывать миллион белорусский рубль тысяча доллар . слово летом рабочий пожаловаться сокращение зарплата миллион . впоследствии сумма сократить треть . пострадать работник служба предприятие . В месяц производство беларуськалия существенно сократиться . В быть произвести тысяча тонна калийный удобрение что составить процент маленький процент маленький год . В производство удобрение упасть процент сравнение процент годичный выражение . ситуация беларуськалия ухудшиться фон конфликт компания российский уралкалий . производитель продавать продукция совместный трейдер белорусский калийный компания бкк . В конец президент белоруссия издать указ разрешать беларуськалия торговать обход бкк . месяц уралкалий полностью отказаться сотрудничество белорус . В решение цена удобрение предсказать резкий обвал поскольку картель позволять поддерживать стоимость продукция довольно высокий уровень . акция крупный компания отрасль отказ уралкалий сотрудничество бкк резко подешеветь . белорусский следственный комитет фон партнерский конфликт компания возбудить уголовный отношение гендиректор акционер уралкалий соответственно . обвинить злоупотребление служебный положение цель захватить контроль сбыт . быть арестовать находиться домашний арест съёмный квартира минск ск рф готовить экстрадиция глава уралкалий россия . |ngramms рабочий_неделя значительный_часть _ _ финансовый_трудность тысяча_доллар быть_произвести тысяча_тонна процент_маленький процент_маленький калийный_компания В_конец президент_белоруссия издать_указ высокий_уровень крупный_компания следственный_комитет __и__ злоупотребление_служебный сбыт_ _быть_арестовать ск_рф +1272 |text большой часть работа строительство газопровод северный поток быть профинансировать счёт заёмный средство . как передавать новость сообщить заместитель председатель правление газпром . стремиться крупный проект реализовываться база проектный финансирование когда процент заёмный средство остальной процент собственный средство акционер . стоимость проект северный поток составить миллиард евро легко можно посчитать процент сумма добавить . слово газпром рассчитывать завершить привлечение проектный финансирование газопровод год как акционер получить необходимый разрешение строительство . представитель российский компания сообщить что газпром не_пересматривать оценка стоимость проект измениться сторона понижение . существовать практика когда акционер самостоятельно финансировать проект рефинансировать благоприятный условие . слово акционер готовый пойти вариант потребовать мобилизация дополнительный собственный средство . хотеть работать классический схема экстремальный добавить . соглашение акционер проект северный поток подразумевать расширение северный поток строительство нитка быть подписать начало прошлое год рамка восточный экономический форум владивосток . В состав новое консорциум войти газпром E . shell basf wintershall omv engie . новое нитка годовой мощность миллиард кубометр как действующий пройти российский побережье дно балтийский море германия . ввод трубопровод эксплуатация запланировать квартал год . |ngramms большой_часть строительство_газопровод северный_поток северный_поток северный_поток северный_поток как_передавать заместитель_председатель_правление _ проектный_финансирование проектный_финансирование собственный_средство собственный_средство стоимость_проект стоимость_проект миллиард_евро топ_менеджер получить_необходимый разрешение_на_строительство российский_компания соглашение_акционер быть_подписать прошлое_год экономический_форум В_состав консорциум_войти миллиард_кубометр ввод_трубопровод +1273 |text приобретение роснефть акция компания башнефть рамка приватизация позволить увеличить доля мировой рынок процент . рассказать глава роснефть сечин колонка опубликовать итальянский газета corriere della sera . десять год год доля рынок нефть плюс конденсат статистика мэа вырасти процент процент приобретение башнефть сообщить сечин . роснефть слово расширять доля счёт демпинг как делать некоторый конкурент помощь налаживание партнерский отношение создание совместный предприятие ключевой потребитель нефть . В качество пример привести выход российский компания индийский рынок . закрепиться немой слово сечин роснефть создать альянс индийский компания привлекать освоение перспективный нефтегазовый провинция россия заложить основа энергомост страна . российский компания войти капитал ведущий нпз индия расположить город вадинар . существенный фактор определить выбор польза актив стать высокий уровень технологический оснащённость завод позволять обеспечивать выдающийся экономика проект пояснить . И добавить что благодаря активный присутствие рынок венесуэла роснефть суметь получить существенный синергия переработка тяжёлый сырьё латинский америка мощность индийский завод . современный нпз комплексный инфраструктура позволить создать вадинар энергетический хаб обеспечивать нефтепродукт рынок азия индийский океан . сечин сообщить план компания усилить присутствие рынок средиземноморье . расположить регион предприятие слово обладать логистический преимущество . роснефть закрыть сделка приобретение госпакет акция башнефть . правительство россия направить роснефть директива покупка процент акция башнефть цена выше миллиард рубль . конец год состояться приватизация госпакет акция роснефть . продажа процент ценный бумага государство рассчитывать выручить миллиард рубль . |ngramms акция_компания увеличить_доля мировой_рынок рассказать_глава _сечин итальянский_газета десять_год потребитель_нефть В_качество российский_компания российский_компания индийский_компания расположить_в_город высокий_уровень топ_менеджер И_добавить юго_восточный план_компания госпакет_акция госпакет_акция правительство_россия процент_акция миллиард_рубль миллиард_рубль ценный_бумага рассчитывать_выручить +1274 |text лукойл год планировать сохранить добыча нефть россия уровень миллион тонна . заявить президент компания встреча президент рф передавать интерфакс . У год территория российский федерация быть добыть миллион тонна есть компенсировать добыча счёт открытие новый месторождение сообщить . что становиться сложный поскольку разведка компания ограничить суша . каспий год открыть месторождение практически завершать геологоразведочный работа добавить . слово год компания удаться стабилизировать добыча нефть западный сибирь . считать что год заложить уникальный основа каспийский проект сообщить . что лукойл есть новое инициатива рассматриваться правительство нефтяной компания приступить освоение новый провинция где не_быть геологоразведочный работа . глава лукойл обратиться президент поддержка реализация новый проект глава государство пообещать оказать . В план лукойл рост добыча месторождение алмаз архангельский область . компания ежегодно наращивать производство год планировать выйти миллион карат . отношение алрос незначительно начать окупать есть начинать возврат приводить слово . проект низкорентабельный процент irr уверить что год оправдать . глава лукойл подчеркнуть что компания гохран создать уникальный система подготовка оценка реализация продукция . мнение быть стабильный консервативный бизнес быть приносить доход бюджет . оао лукойл крупный нефтегазовый компания мир . обеспечивать процент мировой добыча нефть . доказать запас углеводород компания состояние конец год составлять миллиард баррель . |ngramms год_планировать год_планировать добыча_нефть добыча_нефть добыча_нефть миллион_тонна миллион_тонна компания__ рф__ российский_федерация новый_месторождение компания_ограничить добавить_ компания_удаться нефтяной_компания новый_проект глава_государство слово_ что_компания создать_уникальный реализация_продукция приносить_доход нефтегазовый_компания процент_мировой запас_углеводород год_составлять миллиард_баррель +1275 |text фонд rothschild investment corporation принадлежащий семья увеличить вложение американский депозитарный расписка adr газпром семь . заявляться материал фонд направить комиссия ценный бумага биржа сша sec передавать . рост инвестиция произойти фон политический кризис украина . К конец год держать бумага газпром тысяча доллар . К портфель увеличиться миллион доллар . adr российский газовый монополист конец прошлое год сша стоить доллар . К начало год цена составлять доллар квартал газпром торговаться дешёвый . российский акция считаться дешёвый мир . отношение цена прибыть составлять среднее российский рынок как нормальный считаться показатель . rothschild investment corporation быть основать год представитель американский ветвь монро сэмюэлом каргер . закрытый компания называть инвестиционный бутик предлагать инвестиция управление актив состоятельный американец . |ngramms investment_corporation investment_corporation семья_ ценный_бумага биржа_сша политический_кризис К_конец тысяча_доллар миллион_доллар российский_газовый прошлое_год цена_составлять российский_рынок представитель_американский управление_актив +1276 |text президент россия сообщить что пригласить основный владелец афк система предновогодний встреча бизнесмен . ход транслировать телеканал россия . лента . вести онлайн трансляция встреча глава государство журналист . слово следствие не_доказать факт отмывание деньга часть обвинение снятой . глава государство выразить надежда что афк система восстановить позиция биржа утерять башнефть . заявление президент акция афк система московский биржа взлететь цена процент московский время . год мера пресечение отношение быть изменить домашний арест обязательство явка следователь . председатель совет директор афк система находиться домашний арест . обвиняться хищение акция компания башнефть отмывание денежный средство . |ngramms президент_россия__ основный_владелец _ пресс_конференция вести_онлайн глава_государство глава_государство выразить_надежда что_афк заявление_президент акция_афк быть_изменить председатель_совет_директор домашний_арест акция_компания денежный_средство +1277 |text лоукостёр победа дочерний авиакомпания аэрофлот ближний открыть продажа билет международный рейс . стоимость проездной документ быть начинаться рубль . сообщать новость ссылка официальный представитель перевозчик . слово изменение внести сертификат эксплуатант авиакомпания отныне позволять летать рубеж . не_уточнить какой международный рейс быть открытый что быть ближний время . победа получить допуск полёт германия словакия франция . В материал росавиация отмечаться что разрешение вступить сила утверждение изменение федеральный авиационный правило фап отменять условие обязательный двухлетний налёт авиакомпания россия . В начало минюст россия одобрить поправка фап позволить победа летать рубеж . авиакомпания победа быть создать вместо бюджетный перевозчик доброгод летом прошлое год остановить полёт включение санкционный список евросоюз рейс крым . победа базироваться московский аэропорт внуково . |ngramms дочерний_авиакомпания международный_рейс международный_рейс документ_быть официальный_представитель сертификат_эксплуатант быть_открытый В_материал вступить_в_сила авиационный_правило В_начало россия_одобрить быть_создать бюджетный_перевозчик прошлое_год санкционный_список аэропорт_внуково +1278 |text общероссийский народный фронт онф разрабатывать законопроект коллективный иск позволить россиянин судиться отечественный компания пример американец . как писать номер газета ведомость законопроект быть внести госдума конец . В поправка онф рассмотреть межведомственный группа развитие конкуренция куда входить минэкономразвития федеральный антимонопольный служба . согласно проект онф коллективный иск компенсация ответчик смочь получить пострадавший действие не_подавать собственный иск . истец купить некачественный мобильный телефон смочь взыскать убыток польза кто купить аппарат . коллективный иск смочь подавать управлять компания житель дом улица недовольный некорректно рассчитать плата услуга . В очередь компания опасаться что потребитель завалить необоснованный иск сумма быть существенно завысить . юрист считать что подобный поправка законодательство быть стимулировать корпорация как можно чаща заключать мировой соглашение . как указывать издание россия связанный однотипный претензия неограниченный круг лицо мочь рассматриваться арбитражный суд корпоративный спор акционер компания . что касаться недовольный потребитель предъявлять претензия компания иск мочь быть объединить суд требование истец равно быть рассматриваться отдельность человек присоединиться процесс не_смочь . россия запретить называть гонорар успех получение вознаграждение адвокат зависимость результат . |ngramms как_писать законопроект_быть куда_входить федеральный_антимонопольный_служба согласно_проект мобильный_телефон управлять_компания жилищно_коммунальный В_свой_очередь что_подобный как_можно мировой_соглашение как_указывать де_факто мочь_рассматриваться арбитражный_суд что_касаться мочь_быть требование_истец быть_рассматриваться +1279 |text выручка компания аэрофлот российский стандарт бухгалтерский отчётность рсб консолидированный итог год составить миллиард рубль увеличиться процент сравнение год . поступить редакция лента . . себестоимость продажа составить миллиард рубль увеличиться процент сравнение год . валовый прибыль составить миллиард рубль рост процент чистый прибыль миллиард рубль рост процент . выручка аэрофлот год увеличиться сравнение год основное счёт рост объём перевозка . В время рост себестоимость обусловить преимущественно изменение курс рубль отношение мировой валюта увеличение объём перевозка увеличение расход связанный обслуживание расшириться парк воздушный судно аэрофлот . В очередь чистый прибыль увеличиться основное счёт рост объём перевозка доход получить переоценка валютный актив . В компания отмечать что удаться продемонстрировать прибыльность фон негативный тренд отечественный глобальный авиатранспортный отрасль . В отчётность рсб год зафиксировать бумажный рост расход выплата ключевой управленческий персонал . связать что выплата год осуществляться год одобрение собрание акционер . образ рост дать статья расход обусловить исключительно специфика учётный политика соответствие российский стандарт бухгалтерский учёт . совокупный актив аэрофлот состояние год составить миллиард рубль что процент превышать показатель состояние год . В очередь долгосрочный обязательство компания год снизиться процент . долгосрочный заёмный средство отчётный период уменьшиться процент сравнение показатель год составить миллиард рубль . краткосрочный заёмный средство состояние год увеличиться миллиард рубль что основное связать привлечение банковский кредит . аэрофлот лидер воздушный транспорт россия член глобальный авиационный альянс skyteam . совокупный маршрутный сеть альянс насчитывать пункт страна . В год аэрофлот перевезти миллион человек учёт авиакомпания группа аэрофлот миллион . |ngramms выручка_компания российский_стандарт российский_стандарт год_составить год_составить миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль пресс_релиз поступить_в_редакция продажа_составить прибыль_составить чистый_прибыль чистый_прибыль год_увеличиться объём_перевозка объём_перевозка объём_перевозка В_то_же_время курс_рубль мировой_валюта воздушный_судно В_свой_очередь В_свой_очередь компания_отмечать В_отчётность рост_расход собрание_акционер превышать_показатель долгосрочный_обязательство отчётный_период год_и_составить банковский_кредит воздушный_транспорт маршрутный_сеть миллион_человек авиакомпания_группа +1280 |text продажа автоваз год снизиться процент сравнение прошлое год тысяча автомобиль . информация содержаться сообщение ассоциация европейский бизнес аеб . С год крупный российский автопроизводитель процент машина маленький единица аналогичный период прошлое год . В группа автоваз renault nissan продажа упасть процент автомобиль месяц снижение составить процент машина . В целое продажа автомобиль снизиться процент . год российский рынок упасть процент машина . год рф быть миллион автомобиль . председатель комитет автопроизводитель аеб шрайбер что государственный программа утилизация вселить надежда остановка падение рынок . быть нет зависеть как программа быть запустить участник рынок смочь воспользоваться приводиться слово сообщение аеб . итог первое полугодие аеб скорректировать прогноз российский авторынок . ассоциация считать что итог год продажа снизиться процент обновить прогноз падение процент . |ngramms прошлое_год тысяча_автомобиль информация_содержаться ассоциация_европейский_бизнес крупный_российский машина_маленький аналогичный_период_прошлое_год В_целое продажа_автомобиль российский_рынок миллион_автомобиль председатель_комитет автопроизводитель_аеб падение_рынок быть_запустить участник_рынок первое_полугодие что_по_итог год_продажа +1281 |text insight ebay провести исследование материальный товар россия . главный вывод несмотря большой производственный издержка бюрократический логистический препятствие рынок активно развиваться . прогноз итог год рост процент . сообщать ebay прислать редакция лента . . объесть материальный товар страна год составить миллион доллар . количество отправить посылка миллион средний чек доллар . треть объём экспортировать товар заказать прийтись трансграничный отправка местный представительство заказ локальный домен крупный российский магазин . остальной заказ сделать российский продавец . покупатель дальний зарубежье сша европа китай преимущественно заказывать небольшой продавец международный маркетплейс являться ключевой аудитория среднее малое бизнес отмечаться материал исследование . доля продажа россия маркетплейс составлять процент средний чек покупка доллар что покупатель дальний зарубежье готовый тратить большой деньга товар россия покупатель белоруссия казахстан украина . популярный категория российский товар иностранец категория fashion процент одежда обувь аксессуар процент товар дом интерьер процент электроника процент книга игра процент коллекционный вещий . россия есть что предложить иностранный покупатель . экспортный продажа ближний будущее мочь растить считать глава ebay россия крет . В очередь старший аналитик агентство insight виктория стовбер считать что основной рост экспорт ближний год быть небольшой продавец предлагать эксклюзивный товар . |ngramms провести_исследование интернетом_экспорт интернетом_экспорт пресс_релиз год_составить миллион_доллар крупный_российский дальний_зарубежье дальний_зарубежье небольшой_продавец небольшой_продавец являться_ключевой отмечаться_в_материал что_покупатель российский_товар россия_есть экспортный_продажа будущее_мочь В_свой_очередь что_основной рост_экспорт год_быть +1282 |text уральский локомотив совместный предприятие siemens российский группа синара разрабатывать модификация скоростной электропоезд ласточка спальная купе . заявить директор московский филиал синара транспортный машина зубихина передавать . модифицированный электропоезд смочь использоваться межобластной сообщение . слово зубихина запуск спальная ласточка как называть разработчик евразийский экспресс быть зависеть потребность потенциальный заказчик . В очередь ласточка предназначить пригородный пассажирский перевозка . рейс электропоезд состояться россия год маршрут чудово великий новгород . С ласточка курсировать маршрут москва москва . планироваться эксплуатировать электропоезд казань сочи . максимальный скорость способный развивать поезд составлять километр час . ласточка быть выпустить германия концерн siemens год производиться свердловский область завод уральский локомотив . поезд российский производство предполагаться будущее отправлять экспорт белоруссия казахстан украина . |ngramms совместный_предприятие российский_группа директор_московский В_один_очередь пассажирский_перевозка санкт_петербург санкт_петербург великий_новгород максимальный_скорость километр_в_час концерн_siemens свердловский_область российский_производство +1283 |text мечело договориться газпромбанк продажа доля дочерний компания обеспечивать разработка эльгинский угольный месторождение . релиз металлургический холдинг поступить редакция лента . . В соответствие соглашение мечело обязываться банка процент компания оператор проект эльгауголь владеть лицензия разработка фирма дорога баланс находиться железнодорожный ветка месторождение бама протяжённость километр мечело транс восток транспортный оператор железный дорога . сделка быть совершить . актив мечело рассчитывать выручить миллиард рубль пойти погашение долг сбербанк лизинговый дочка кредитный учреждение . опцион подписать сторона предусматривать возможность выкуп мечело дать актив год . В год сообщаться что сбербанк рассматривать возможность перенос выплата часть долг мечело год . компания банка миллиард рубль основный долг миллиард рубль штраф пеня что начать действовать условие реструктуризация остаться часть задолженность . мечело погасить часть долг сбербанк компания получить одобрение перенос срок выплата тело основный долг сторона крупный кредитор газпромбанк втб писать ведомость . сбербанк долгий время оставаться единственный госбанк кредитор не_соглашаться реструктуризация задолженность мечело рассчитывать часть долг сторонний инвестор . В начало мечело договориться втб реструктуризация долг миллиард рубль конец подписать соответствующий соглашение газпромбанк . оказаться сложный финансовый положение мечело вести переговоры кредитор реструктуризация долг начало год . заёмщик кредитный линия выступать мечело дочерний предприятие группа южный кузбасс якутуголь челябинский металлургический комбинат . чистый долг металлургический холдинг составлять миллиард доллар . группа мечело основный собственник являться родственник крупный российский компания работать тысяча человек . |ngramms дочерний_компания угольный_месторождение металлургический_холдинг металлургический_холдинг поступить_в_редакция оператор_проект лицензия_на_разработка железный_дорога рассчитывать_выручить миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль кредитный_учреждение подписать_сторона возможность_выкуп год_сообщаться рассматривать_возможность перенос_выплата часть_долг часть_долг часть_долг основный_долг основный_долг начать_действовать условие_реструктуризация остаться_часть компания_получить перенос_срок выплата_тело крупный_кредитор долгий_время оставаться_единственный реструктуризация_задолженность реструктуризация_долг реструктуризация_долг подписать_соответствующий финансовый_положение кредитный_линия дочерний_предприятие металлургический_комбинат чистый_долг миллиард_доллар основный_собственник горно_металлургический тысяча_человек +1284 |text центральный правительство ирак рекомендовать газпром нефть прекратить добыча курдистан страна не_быть новый закон регулирование нефтегазовый отрасль . интерфакс заявить ирак нурить . слово российский компания остановить работа дождаться новое закон перезаключить контракт добыча соответствие нея не_быть никакой проблема . газпром нефть отказаться перезаключать контракт соответствие новый закон ирак мочь посчитать нарушение суверенитет государство . точный дата публикация новое закон нурить не_назвать . газпром нефть являться единственный российский компания работать курдистан . газпром нефть работать центральный правительство ирак компания возглавлять консорциум иностранный структура добывать нефть месторождение бадра . В конец прошлое год багдад предъявить газпром нефть ультиматум пригрозить лишить право разрабатывать месторождение бадра случай сотрудничество курд быть продолжить . компания продолжить работа санкция не_последовать . центральный правительство багдад неоднократно выступать работа международный компания курдистан . требовать производитель нефть отказываться контракт курдистан прерывать добыча ирак . автономный курдистан центральный правительство ирак спорить вопрос распределение сырьевой доход . курдистан заключать договор компания обход официальный багдад что не_устраивать центральный правительство ирак . |ngramms центральный_правительство центральный_правительство центральный_правительство центральный_правительство центральный_правительство газпром_нефть газпром_нефть газпром_нефть газпром_нефть газпром_нефть нефтегазовый_отрасль премьер_министр российский_компания российский_компания остановить_работа новое_закон новое_закон никакой_проблема новый_закон точный_дата являться_единственный компания_возглавлять В_конец прошлое_год быть_продолжить продолжить_работа международный_компания производитель_нефть +1285 |text газпром запустить дочерний компания строительство завод сжижение газа спг дальний восток . опубликовать сообщение газовый монополист . компания получить название газпром спг владивосток . ввод очередь завод назначить год линия заработать год . мощность линия составить миллион тонна газа год . предполагаться что предприятие быть построить полуостров бухта перевозный . В газпром сообщить интерес проект зарубежный компания покупатель япония . ресурсный база завод стать топливо месторождение сахалин сахалин якутский иркутский центр газодобыча . В середина госдума первое чтение законопроект упрощать допуск компания экспорт сжидить газа мочь осуществляться газпром . ключевой требование остаться государственный контроль экспортёр . летом год глава газпром объявить намерение компания занять процент мировой рынок спг . В настоящее время российский компания занимать процент рынок спг . В россия действовать спг завод рамка проект сахалин принадлежать монополия . ямал будущее планироваться запуск предприятие сжижение газа поставка запланировать год . |ngramms дочерний_компания дальний_восток компания_получить_название миллион_тонна газа_в_год быть_построить зарубежный_компания В_середина экспорт_сжидить год_глава _ объявить_о_намерение компания_занять мировой_рынок В_настоящее_время российский_компания рынок_спг В_россия +1286 |text федеральный антимонопольный служба фас россия признать торговый сеть перекрёсток входить retail group нарушить закон торговля . сообщение ведомство . взимать поставщик различный плата одинаковый услуга . нарушение выразиться создание дискриминационный условие поставщик продовольственный товар категория мясо мясной продукция птица путём определение взимание различный стоимость одинаковый объесть услуга продвижение продовольственный товар год ведомство . слово заместитель начальник управление контроль социальный сфера торговля фас ведомство пора сталкиваться случай когда торговый сеть занимать сильный экономический позиция создавать условие поставщик вынудить платить разный цена . В середина фас возбудить отношение перекрёсток подозревать создание дискриминационный условие поставщик . retail group контролировать торговый сеть перекрёсток заявлять готовность сотрудничать ведомство . В соответствие кодекс рф административный правонарушение создание дискриминационный условие торговый организация поставщик грозить имя штраф размер миллион рубль выявить нарушение . |ngramms федеральный_антимонопольный_служба торговый_сеть торговый_сеть торговый_сеть retail_group retail_group начальник_управление социальный_сфера _ В_середина фас_возбудить кодекс_рф торговый_организация штраф_в_размер миллион_рубль выявить_нарушение +1287 |text арбитражный суд москва удовлетворить иск киностудия союзмультфильм сеть перекрёсток нарушение авторский право . сообщаться решение суд опубликовать . иск быть удовлетворить частично союзмультфильм требовать ответчик тысяча рубль . В документ указать что решение мочь быть обжаловать месяц . как уточнять новость иск касаться незаконный использование образ герой мультфильм трое простоквашин . студия судиться производитель мороженое компания альтервест xxi век участвовать качество третье лицо . союзмультфильм подать перекрёсток год иск сумма миллион рубль . ответчик просить объединить производство суд отказать отмечаться материал . претензия союзмультфильм предъявить торговый сеть вегат плюс сеть абк семь континент авк . иск находиться стадия рассмотрение . В прошлое год роспатент требование союзмультфильм отменить регистрация товарный знак компания альтервест где использоваться изображение персонаж мультфильм трое простоквашин каникулы простоквашин зима простоквашин . оспорить суд решение производитель мороженое не_удаться . альтервест xxi век выпускать мороженое бренд деревня простоквашин . В оформление продукция использоваться образ кот . |ngramms арбитражный_суд_москва удовлетворить_иск авторский_право решение_суд иск_быть тысяча_рубль В_документ мочь_быть как_уточнять незаконный_использование третье_лицо миллион_рубль суд_отказать отмечаться_в_материал торговый_сеть прошлое_год товарный_знак В_оформление +1288 |text стокгольмский арбитраж отклонить иск литва газпром взыскание миллиард евро . заявить министр энергетика прибалтийский республика рокас передавать интерфакс . стокгольмский арбитраж не_выявить нарушение сторона российский концерн . чиновник добавить что вильнюс разочаровать решение . спорый идти стоимость энергоноситель поставить год . судебный расход быть разделить сторона выплатить полмиллиона евро . иск быть подать год литва пытаться оспорить завысить мнение стоимость топливо . В заявить что итог год россия утратить статус крупный поставщик газа литва уступить норвегия . что рыночный доля королевство литовский газовый рынок впервые превысить российский составить процент . конец год монополия поставка газа прибалтийский страна обладать газпром . В глава литовский компания haupas закупать газ газпром что цена топливо снижаться отметка доллар тысяча кубометр условие договор мочь быть стоимость германский газовый биржа . снизить зависимость российский газа литва открыть город клайпеда восточный побережье балтийский море терминал приём сжидить природный газа спг начало ввозить норвегия . В год потребность литва газа составлять миллиард кубометр . |ngramms стокгольмский_арбитраж стокгольмский_арбитраж отклонить_иск миллиард_евро министр_энергетика российский_концерн чиновник_добавить иск_быть стоимость_топливо _заявить что_по_итог крупный_поставщик рыночный_доля газовый_рынок впервые_превысить год_монополия что_цена тысяча_кубометр российский_газа море_терминал природный_газа В_это_год потребность_литва миллиард_кубометр +1289 |text роспотребнадзор проводить плановый проверка продуктовый сеть ашан не_связать жалоба клиент нарушение работа магазин заявить новость директор внешний коммуникация . что проверка московский управление ведомство столичный проводиться середина год . необходимый подчеркнуть что род проверка проводиться регулярно магазин розничный сеть не_связать проблема жалоба клиент подчеркнуть . проверка служба слово не_завершить ашан ожидать итог инспекция . глава роспотребнадзор сообщить проверка ведомство магазин сеть ашан москва . чиновница отказаться озвучить результат окончание . В надзорный ведомство россельхознадзор выявить новое нарушение магазин ашан кунцево . В магазин не_соблюдаться требование ветеринарный санитарный обработка дезинфекция оборудование использовать инвентарь цех производство полуфабрикат . ведомство что не_соблюдать правило сбор хранение биологический отход . В очередь ашан обратиться арбитражный суд москва иск московский управление россельхознадзор выявить многочисленный нарушение сеть . В сотрудник россельхознадзор провести внеплановый проверка качество продукт сеть москва подмосковье . В колбаса охладить полуфабрикат быть выявить превышение предельно допустимый уровень содержание микроорганизм кишечный палочка листерия . ведомство заявить обнаружение днк лошадь свиной фарш ашан . представитель категорически опровергнуть сообщить что конина производство не_использоваться . И добавить что компания потребовать россельхознадзор опровержение . поздний россельхознадзор признать что содержание фарш минимально мочь вызвать серьёзный претензия . ашан auchan крупный мир ретейлер основать год франция . торговый сеть насчитывать тысяча гипермаркетовый страна . В россия компания работать год занимать третье место объём выручка миллиард рубль год . конец год российский сеть компания входить магазин . |ngramms внешний_коммуникация _ _ московский_управление московский_управление розничный_сеть подчеркнуть_ глава_роспотребнадзор магазин_сеть В_свой_очередь арбитражный_суд_москва быть_выявить И_добавить что_компания год_в_франция торговый_сеть В_россия третье_место миллиард_рубль российский_сеть компания_входить +1290 |text пакет документ приобретение финансовый группа сафмара сеть М . видео поступить фас вечером . лента . сообщить заместитель руководитель антимонопольный ведомство кашевар . чиновник напомнить что рассмотрение вопрос регламент отводиться месяц . В особо сложный ситуация срок мочь составить месяц . ссылка источник сообщать что сафмара купить М . видео . уточняться что группа приобрести процент акция принадлежащий тынкован партнёр инвестиционный компания владеть процент акция сеть . В начало год инвестор связанный финансовый группа сафмара приобрести процент акция эльдорадо . быть выкупить чешский ppf процент emma capital процент . сделка получить одобрение фас условие сторона договориться не_разглашать . владелец эльдорадо переговоры слияние М . видео . весной год подавать ходатайство фас приобретение процент бизнес эльдорадо летом год консультация возможный сделка быть приостановить поскольку сторона не_договориться условие покупка предписание фас . |ngramms финансовый_группа финансовый_группа заместитель_руководитель ведомство_ сложный_ситуация мочь_составить _ группа_приобрести процент_акция процент_акция процент_акция принадлежащий_ инвестиционный_компания В_начало получить_одобрение сторона_договориться сделка_быть условие_покупка предписание_фас +1291 |text компания донстроить банк втб запустить программа субсидировать ипотека беспрецедентный низка процентный ставка процент годовой сообщить лента . строительный компания . В донстрой что сегодняшний столичный рынок нет ипотечный программа столь выгодный условие . уникальный льготный ставка позволить клиент донстроить минимизировать как ежемесячный платёж переплата пользование кредит . первоначальный взнос программа сохраняться максимально доступный уровень процент стоимость недвижимость . В строительный компания рассказать что программа субсидировать ипотека действовать объект компания относиться разный сегмент комплекс соколиный форт ряд парк лосиный остров комплекс долина сетунь квартал алый парус квартал barrin house хамовник . |ngramms банк_втб запустить_программа процентный_ставка процент_годовой строительный_компания строительный_компания выгодный_условие объект_компания +1292 |text житель гонконг начать массово скупать местный магазин ikea мягкий игрушка серый волк сказка красный шапочка . как сообщать south china morning произойти как волк негласно превратиться символ оппозиция власть гонконг . игрушка вид улыбаться зубастый волк название lufsig получить популярность как глава администрация гонконг лян часто называть волк хитрость жестокость . название игрушка использовать ikea торговый территория материковый китай кантонский диалект использоваться население гонконг повседневный жизнь напоминать неприличный выражение обозначать женский гениталия . В ikea отказаться прокомментировать текущий политический ситуация гонконг подтвердить что ряд местный магазин компания игрушка lufsig полностью распродать . следующий поставка игрушечный начало . ссылка представитель ikea передавать что гонконгский магазин компания начать скапливаться очередь желающий приобрести остаться экземпляр игрушка вид волк . лян быть избранный руководитель администрация гонконг прошлое год не_пользоваться популярность местный население . считаться ставленник официальный пекин не_исполнить обещание способствовать принятие демократический избирательный система гонконг . что всеобщий выбор гонконг мочь быть ввести год глава администрация город избирать назначить пекин комитет выборщик . |ngramms магазин_ikea как_сообщать администрация_гонконг _часто В_ikea отказаться_прокомментировать местный_магазин представитель_ikea магазин_компания быть_избранный руководитель_администрация прошлое_год местный_население мочь_быть_ввести администрация_город +1293 |text аэрофлот назвать единый дальневосточный компания аврора как планироваться дать перевозчик имя тайга . сообщать интерфакс ссылка неназванный источник . информация агентство соответствующий решение крупный российский авиакомпания быть опрос потенциальный клиент создавать перевозчик китай япония корея . В ход исследование общественный мнение выясниться что тайга ассоциироваться скорее сибирь дальний восток . сертификат эксплуатант сахалинский авиатрасса внести изменение компания переименовать тайга . название тайга быть выбрать итог голосование сайт крупный перевозчик . пассажир предложить выбрать имя авиакомпания вариант быть aeroflot east gorizont pacific ocean vostokair дальэйр . аэрофлот объявить намерение создать дальневосточный авиакомпания база сахалинский авиатрасса владивосток прошлое год . сообщаться что процесс создание новое перевозчик мочь занять год . |ngramms соответствующий_решение крупный_российский_авиакомпания потенциальный_клиент В_ход общественный_мнение дальний_восток сертификат_эксплуатант внести_изменение быть_выбрать крупный_перевозчик предложить_выбрать объявить_о_намерение дальневосточный_авиакомпания владивосток_ прошлое_год процесс_создание новое_перевозчик +1294 |text новый генеральный директор французский автомобильный концерн psa peugeot citroen стать таварес carlos tavares . сообщать bloomberg ссылка компания . К исполнение обязанность peugeot таварес приступить год . пост руководитель peugeot сменить варена philippe varin . год таварес работать главное операционный директор renault . В сообщаться что отставка заняться собственный проект какой не_говориться . В renault таварес работать год возглавлять североамериканский подразделение nissan motor . неделя уход renault таварес заявить что хотеть работать крупный автоконцерн руководить general motors ford motor . пояснить что вряд смочь подняться выше карьерный лестница renault как ближний будущее высокий пост компания быть занимать нынешний глава гон carlos ghosn . |ngramms генеральный_директор французский_автомобильный пресс_служба исполнение_обязанность директор_renault собственный_проект подразделение_nissan general_motors подняться_выше быть_занимать +1295 |text гражданский актив корпорация уралвагонзавод увз быть передать ростех оборонный завод . рассказать министр промышленность торговля россия мантур сочинский инвестиционный форум передавать rambler service . уточнить что уровень министерство наблюдательный совет госкорпорация вопрос вывод гражданский предприятие не_обсуждаться . мнение министр увз сбалансировать зрение военный гражданский продукция . президент поставить задача год выйти максимальный соответствие параметр соотношение гражданский военный продукция стремиться заявить . мантур добавить что состав увз мочь быть передать курганмашзавод заниматься выпуск бронетехника . слово позволить консолидировать актив получить максимальный синергия разработка оптимизация расход производство . уралвагонзавод быть передать состав ростех решение президент россия год . В стать планироваться смена гендиректор увз . |ngramms быть_передать быть_передать рассказать_министр промышленность_и_торговля россия_ инвестиционный_форум rambler_news_service поставить_задача мочь_быть оптимизация_расход президент_россия__ смена_гендиректор +1296 |text роснефть партнёр создание дальневосточный судоверфь звезда газпромбанк объединить судостроительный корпорация инвестировать проект миллиард рубль . сообщить интервью роснефть . входить заём текущий операционный инвестиционный деятельность кредитный линия реинвестирование результат операционный деятельность проект средство реализация заказ разместить акционер компания пояснить . напомнить что суммарный капитальный затрата создание судоверфь оцениваться миллиард рубль миллиард вложить роснефтегаз . верфь планироваться построить платформа танкер вспомогательный судно освоение шельф год . роснефть что размещать заказ звезда смочь нефтегазовый судоходный компания . слово основание поручение президент крупный компания поставить задача размещать заказ вновь создавать комплекс звезда . пилотный загрузка комплекс обеспечивать компания роснефть заключить дальневосточный центр судостроение судоремонт дцсс эксклюзивный соглашение размещение заказ строительство новый морской техника судно мощность сообщить . И добавить что восточный экономический форум роснефть подписать контракт проектирование строительство поставка многофункциональный судно снабжение усиленный ледовый класс . дополнительно предусмотреть строительство судно . В начало роснефть газпромбанк завершить процесс вхождение уставный капитал дцсс консолидировать процент акция . оск сохранять блокировать пакет процент плюс акция . роснефть газпромбанк создавать дальний восток россия промышленный судостроительный кластер база дцсс ядро стать новый судостроительный комплекс звезда город большой камень . звезда стать россия верфь крупнотоннажный судостроение мощность переработка тысяча тонна металл год . |ngramms инвестировать_в_проект миллиард_рубль миллиард_рубль вице_президент вице_президент _ инвестиционный_деятельность кредитный_линия операционный_деятельность капитальный_затрата планироваться_построить президент__ крупный_компания поставить_задача комплекс_обеспечивать дальневосточный_центр заказ_на_строительство морской_техника И_добавить экономический_форум В_начало уставный_капитал процент_акция процент_плюс дальний_восток мощность_переработка тысяча_тонна +1297 |text совет директор ржд прекратить полномочие член правление сообщать газета ведомость ссылка источник близкие совет директор транспортный монополия . слово официально быть объявить . В решение отношение первое отвечать руководство координация производственный хозяйственный деятельность здравоохранение работа общественный организация атькова корпоративный управление стратегический развитие . информация источник не_покинуть компания занять пост советник президент ржд . предыдущий обязанность перейти старший организация железнодорожный перевозка . состав правление мочь покинуть главный бухгалтер ржд крафт развитие московский транспортный узел кацыть инфраструктура управление персонал социальный вопрос . стать что президент ржд вернуться компания качество советник новое руководитель транспортный монополия . предполагаться что вскоре мочь стать штатный советник назначение инициировать минтранс решение не_принять . быть министр путь сообщение выступать инициатор реорганизация ведомство посредством создание отдельный компания передача имя имущество министерство . предполагаться что компания быть работать конкурентный часть планироваться стратегический инвестор вывести биржа . реформа не_реализоваться . сообщаться намерение уйти железнодорожный госкомпания корпоративный безопасность первое старший корпоративный управление стратегический развитие . В середина стать выдвижение занимать пост глава ржд сенатор калининградский область . кандидатура предложить глава регион цукан . врио губернатор поздний сообщить что год быть присвоить дипломатический ранг чрезвычайный полномочный посол . обстоятельство позволить избежать соблюдение ценз оседлость требование соответствовать сенатор . согласно российский законодательство не_смочь совмещать пост сенатор работа президент ржд . быть освободить должность руководитель ржд . смена прийти бывший заместитель министр транспорт россия . В правление ржд входить человек совокупный доход месяц год вырасти сравнение аналогичный период прошлое год процент миллион рубль . |ngramms совет_директор совет_директор прекратить_полномочие член_правление сообщать_газета транспортный_монополия транспортный_монополия быть_объявить вице_президент вице_президент вице_президент вице_президент вице_президент вице_президент вице_президент вице_президент вице_президент вице_президент _ _ _ _ _ _ _ _ _ общественный_организация стратегический_развитие стратегический_развитие занять_пост президент_ржд президент_ржд президент_ржд железнодорожный_перевозка ржд_ московский_транспортный мочь_стать _выступать создание_отдельный компания_быть стратегический_инвестор железнодорожный_госкомпания В_середина глава_ржд калининградский_область глава_регион российский_законодательство быть_освободить руководитель_ржд бывший_заместитель министр_транспорт россия__ ржд_входить совокупный_доход год_вырасти аналогичный_период_прошлое_год миллион_рубль +1298 |text корпорация T крупный сша оператор сотовый рассматривать возможность поглощение британский телекоммуникационный компания vodafone . сообщать bloomberg ссылка неназванный источник . информация агентство возможный сделка vodafone американский компания намерить обсуждать следующий год . сделка состояться мир быть образовать крупный объём продажа телекоммуникационный холдинг . никакой формальный переговоры компания не_вести подчёркивать bloomberg . T vodafone не_прокомментировать информация возможный слияние . акция vodafone торг слух сделка T вырасти процент . бумага T снизиться незначительно процент . как указывать источник bloomberg текущий год T пытаться приобрести европейский бизнес vodafone обращаться подобный предложение американский verizon communications . являться партнёр vodafone совместный предприятие verizon wireless . В verizon communications предложение T не_принять сослаться сложный структура возможный помеха транзакция мочь создать сделка verizon vodafone . verizon vodafone заключить сделка миллиард доллар стать крупный история год . В рамка транзакция американский компания договориться приобретение британский партнёр процент акция verizon wireless . |ngramms рассматривать_возможность телекоммуникационный_компания американский_компания американский_компания сделка_состояться быть_образовать телекоммуникационный_холдинг информация_о_возможный нью_йорк как_указывать европейский_бизнес являться_партнёр мочь_создать заключить_сделка миллиард_доллар В_рамка процент_акция +1299 |text федеральный суд сша не_стать закрывать проект создание беспилотный автомобиль uber . вынести вердикт запрещать ведущий инженер компания левандовск работать технология лазерный сенсор lidar являться ключевой дать программа . сообщать интерфакс . решение быть рамка судебный процесс иск компания waymo создать google . иск быть подать начало год . waymo требовать uber прекратить разработка собственный беспилотный автомобиль что работать google левандовск передать uber тысяча конфиденциальный файл . судья элсап рассматривать счесть убедительный представить истец доказательство . предписать uber сделать возможный возврат файл рассмотреть прекращение контракт левандовск . судья назвать чрезмерный реакция waymo требовать защита патент содержимый коммерческий тайна . левандовск год уйти google основать собственный компания otto . месяц спустя uber купить otto миллион доллар . онлайн сервис заказ такси uber работать город страна . итог год компания получить скорректировать убыток размер миллиард доллар . В конец год uber объявить план представить выставка world expo дубай рабочий модель летать транспортный средство . |ngramms федеральный_суд проект_создание являться_ключевой дать_программа судебный_процесс быть_подать судья_ миллион_доллар заказ_такси год_компания_получить убыток_в_размер миллиард_доллар В_конец год_uber транспортный_средство +1300 |text В период волжский автомобильный завод объявить плановый корпоративный отпуск . В компания уточнять предприятие возобновить работа обычный режим . сообщать новость . В автозавод напоминать что майский каникулы носить плановый характер . быть решение перенести часть выходной . С год неделя корпоративный отпуск традиционно добавляться новогодний каникулы предприятие возобновлять работа половина . трудовой коллектив автоваз попросить перенести неделя отпуск администрация завод пошлый навстречу просьба . В год автоваз gm автоваз останавливать производство сложность месяц . большинство простой выпадать праздничный . год завод находиться новогодний каникулы впервые зимний время уйти неделя единый корпоративный отпуск быть увеличить неделя . конвейер автоваз gm автоваз не_работать . остаться неделя корпоративный отпуск сотрудник отгулять . В год быть объявить оптимизация численность персонал . увольнение подлежать процент штатный численность сотрудник занятой основной производственный деятельность . большинство быть предложить вариант трудоустройство подразделение предприятие индустриальный парка . быть объявить что сотрудник пенсионный предпенсионный возраст продолжить действовать программа софинансирование пенсия . |ngramms автомобильный_завод корпоративный_отпуск корпоративный_отпуск корпоративный_отпуск корпоративный_отпуск пресс_служба пресс_служба компания_уточнять обычный_режим сообщать_риа_новость быть_принять_решение новогодний_каникулы новогодний_каникулы год_быть численность_персонал производственный_деятельность быть_предложить быть_объявить +1301 |text санкция запад россия вынудить американский нефтяной компания exxonmobil начать поиск альтернативный месторождение использование платформа west alpha участвовать разведка шельф карский мор . сообщать bloomberg . В год west alpha вместо возвращение российский арктический вода мочь начать использоваться берег норвегия сообщить управлять директор производство добыча exxon mobil норвегия дженетти слово окончательный решение быть как стать ясный перспектива ведение бизнес роснефть продление санкция . быть действовать соответствие международный американский закон быть зависеть куда направиться дженетти . В год роснефть exxonmobil начать разведочный бурение помощь платформа west alpha северный скважина рф университетский . год сша ввести новое санкция россия ситуация украина . попасть российский энергетический компания газпром газпром нефть лукойл сургутнефтегаз роснефть . имя запретить поставлять товар услуга технология необходимый добыча нефть глубоководный участок арктический шельф сланцевый пласт . В евросоюз поддержать американский санкция опубликовать список российский компания попасть новое ограничение . санкция затронуть нефтяной сектор . В принятие новый санкция exxonmobil быть вынудить свернуть сотрудничество роснефть . В компания роснефть заявить что готовый продолжать работа скважина университетский карский мор exxonmobil . |ngramms санкция_запад нефтяной_компания exxonmobil_начать exxonmobil_начать мочь_начать управлять_директор окончательный_решение американский_закон северный_скважина ввести_новое ситуация_на_украина энергетический_компания газпром_нефть имя_запретить поставлять_товар добыча_нефть арктический_шельф евросоюз_поддержать американский_санкция опубликовать_список российский_компания новое_ограничение нефтяной_сектор новый_санкция быть_вынудить что_готовый +1302 |text компания первое супруга быть владелец офисный помещение гостиница москва чей стоимость превышать миллион доллар . номер писать газета ведомость . сведение издание год деловой центр оформить офис площадь тысяча квадратный метр быть приобрести структура открытый актив . принадлежать актив супруг . федеральный антимонопольный служба разрешить ксп капитал управление актив выкупить процент акция деловой центр . ксп управление актив заниматься доверительный управление открытый инвестиция сова недвижимость . компания оформить недвижимость . В ксп капитал пояснить ведомость что первоначально планировать купить деловой центр открытый актив решение быть пересмотреть деловой центр вернуться прежний владелец . В итог владелец площадь москва стать ксп капитал . информация издание продавец деловой центр выступать кипрский компания garipas holdings . связывать считать близкие миллиардер . возглавлять ростелеком . заявить ведомость что не_помнить кома принадлежать garipas . слово представитель мачевский год вернуть актив россия . выдать ордер адвокат перевод средство . юрист очередь доверенность создать компания открытый актив сова недвижимость . глава ксп капитал заявить что условие договор супруг мочь вмешиваться оперативный управление не_знать какой ценный бумага купить средство . средство инвестироваться компания исключить влияние административный ресурс . мачевский полагать что выбрать схема владение управление актив не_противоречить российский законодательство запрещать чиновник заниматься бизнес . С противоположный позиция выступить резник сотрудник адвокатский компания хреновый партнёр . мнение чиновник мочь выступать учредитель юридический лицо как мочь создавать конфликт интерес . В конец год заявить что вернуть актив российский юрисдикция . начать вывод средство слепой траст британский виргинский остров относиться прошлое год . В год financial times опубликовать подробность офшорный компания sevenkey зарегистрировать багамский остров . информация газета нея быть оформить акция газпром принадлежать чиновник . назвать актив основа независимость группа влияние . |ngramms вице_премьер супруга_ чей_стоимость миллион_доллар писать_газета деловой_центр деловой_центр деловой_центр деловой_центр деловой_центр тысяча_квадратный_метр быть_приобрести открытый_актив открытый_актив открытый_актив супруг_ федеральный_антимонопольный_служба управление_актив управление_актив управление_актив процент_акция компания_оформить планировать_купить В_итог _ _ _ миллиардер__ актив_в_россия __заявить что_по_условие оперативный_управление ценный_бумага административный_ресурс российский_законодательство выступить_ юридический_лицо конфликт_интерес В_конец _заявить прошлое_год компания__ быть_оформить +1303 |text газпром ближний год ожидать рост регулировать цена газ россия уровень инфляция . ход инвестор газпром гонконг заявить зампредседатель правление холдинг передавать новость . прогнозировать что процесс регулировать цена газ остаться среднесрочный период . порядок повышение ожидать последующий год думать что быть уровень инфляция . ожидать величина составлять порядок процент . что российский власть рассматривать вопрос возможность предоставление газпром скидка крупный потребитель . ход инвестор газпром зампредседатель правление компания сообщить что газпром не_видеть основание пересмотр цена поставка газа китай газопровод сила сибирь . что возможность пересмотр цена оставаться как продавец покупатель . слово поставка начаться уровень цена заложить контракт полностью устроить газпром . как сообщить член правление газпром аксютина поставка газа сила сибирь начаться миллиард кубометр год год увеличиться миллиард кубометр год . ввод газопровод эксплуатация запланировать период год год . В конец стать что экспортный стоимость газа евросоюз текущий год мочь составить доллар тысяча кубометр примерно доллар тысяча кубометр год . |ngramms цена_на_газ цена_на_газ _ передавать_риа_новость что_процесс составлять_порядок российский_власть возможность_предоставление правление_компания __сообщить пересмотр_цена пересмотр_цена поставка_газа поставка_газа сила_сибирь сила_сибирь уровень_цена как_сообщить член_правление миллиард_кубометр миллиард_кубометр В_конец мочь_составить тысяча_кубометр тысяча_кубометр +1304 |text В ростовский область завершить ремонт участок автодорога региональный значение протяжённость километр . работа выполнить рамка федеральный проект безопасный качественный дорога сообщить лента . министр транспорт регион . приоритетный проект безопасный качественный дорога разработать минтранс россия направить обеспечение безопасный качественный эффективный транспортный обслуживание городской агломерация . В реализация участвовать ростовский область . финансирование мероприятие проект год регион предусмотреть объём миллиард рубль . стоить задача отремонтировать текущий год километр автотрасса . В год рамка проект планироваться отремонтировать свыше километр дорога ростовский агломерация . В итог год реализация федеральный проект доля автодорога ростовский агломерация соответствующий норматив составить процент . В ближний месяц основной усилие быть сосредоточить ремонт строительство автодорожный инфраструктура . иметь особый значение поскольку летом будущее год город матч чм футбол подчеркнуть губернатор голубеть . городской власть сформировать программа работа включать объект протяжённость километр площадь миллион квадратный метр . объект автодорожный инфраструктура город включить программа дополнительно благодаря экономия финансовый ресурс получить счёт процедура торг . В настоящее время выполнить работа объект дорожный инфраструктура площадь тысяча квадратный метр . В ремонтировать проезжать часть улица каширский курчатов днепропетровский стартовый . В воскресение открыться движение центральный полоса путепровод проспект стачка . В городской администрация подчёркивать что отставание график ремонт дорога тротуар нет . работа рамка проект безопасный качественный дорога соответствие поручение глава регион быть завершить ремонт мост путепровод тротуар . подготовка чм хороший повод привести дорожный хозяйство область порядок считать губернатор голубеть . спортивный мероприятие пройти отремонтировать дорога новое мост магистраль развязка остаться житель наследие подчеркнуть . |ngramms ростовский_область ростовский_область федеральный_проект федеральный_проект министр_транспорт _ минтранс_россия обеспечение_безопасный финансирование_мероприятие миллиард_рубль стоить_задача В_итог В_ближний ростов_на_дону ростов_на_дону будущее_год губернатор_ губернатор_ городской_власть квадратный_метр инфраструктура_город финансовый_ресурс В_настоящее_время тысяча_квадратный_метр В_воскресение городской_администрация глава_регион хороший_повод мероприятие_пройти +1305 |text крупный российский магнит увеличить первое полугодие год чистый прибыль сравнение аналогичный период год процент миллиард рубль . информация содержаться сообщение компания . выручка магнит вырасти процент составить миллиард рубль . В материал компания отмечаться что рост выручка связать увеличение торговый площадь рост сопоставимый продажа процент . валовый прибыль магнит полгода вырасти процент составить миллиард рубль . отчётный период компания открыть новый магазин магазин формат дом гипермаркетовый магазин магнит семейный магазин косметика . торговый площадь магнит вырасти процент миллион квадратный метр . магнит российский компания . основатель гендиректор компания являться крупный акционер . принадлежать процент акция магнит . чистый прибыль магнит год вырасти сравнение год процент миллиард рубль . торговый сеть магнит насчитывать магазин магазин формат дом гипермаркетовый магазин магнит семейный магазин косметика . |ngramms крупный_российский чистый_прибыль чистый_прибыль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль информация_содержаться процент_и_составить процент_и_составить В_материал рост_выручка торговый_площадь торговый_площадь отчётный_период компания_открыть новый_магазин магазин_формат магазин_формат квадратный_метр российский_компания гендиректор_компания __являться крупный_акционер процент_акция год_вырасти торговый_сеть +1306 |text госкорпорация росатом роснефть подписать соглашение поставка оборудование рамка импортозамещение . сообщать . документ подписать ход петербургский международный экономический форум пмэф . готовый предложить роснефть разработка внедрение техника технология полностью соответствовать импортный аналог приводить агентство слово гендиректор росатом . идти оборудование геологоразведочный работа поставка автоматизированный система управление система контроль насосный оборудование комплекс обеспечение безопасность . россия находиться экономический санкция сша ес норвегия япония австралия канада . ограничение попасть нефтяной сектор компания роснефть транснефть газпром газпром нефть лукойл сургутнефтегаз . американский европейский компания запретить экспорт товар технология мочь быть использовать российский проект добыча нефть глубоководный участок арктический шельф сланцевый пласт . петербургский международный экономический форум проходить северный столица девиз время действовать совместный усилие стабильность рост . |ngramms поставка_оборудование подписать_в_ход международный_экономический_форум международный_экономический_форум приводить_агентство слово_гендиректор _ система_управление система_контроль обеспечение_безопасность санкция_сша нефтяной_сектор газпром_нефть европейский_компания экспорт_товар мочь_быть_использовать добыча_нефть арктический_шельф северный_столица совместный_усилие +1307 |text В тульский область рамка рабочий визит представитель корпорация мсп пройти круглый стол обсудить малое предприятие госзакупка сообщаться корпорация . В мероприятие представитель крупный госкомпания как росатом автодора ржд россеть интер рао . руководитель дирекция информационный методический содействие организация закупка субъект мсп корпорация мсп рассказать участник семинар мера поддержка оказывать субъект малое среднее бизнес . В идти мероприятие направить увеличение доля закупка товар работа услуга субъект малое среднее предпринимательство мсп . итог год объесть закупка крупный заказчик субъект мсп составить триллион рубль расширение номенклатура тысяча позиция . объесть закупка крупный заказчик субъект мсп тульский область составить миллиард рубль что позволить регион занять место объём закупка субъект мсп регион центральный федеральный округа . В пятёрка лидер объём закупка малое средний компания тульский область войти фск еэс мрск центр приволжье рждстроить кбп имя . А . Г . шипуновый гск . рамка круглый стол представитель предпринимательский сообщество рассказать опыт закупка крупный заказчик . участник круглый стол ознакомиться возможность получение финансовый поддержка корпорация мсп партнерский кредитный организация . |ngramms корпорация_мсп корпорация_мсп корпорация_мсп пресс_релиз представитель_крупный субъект_мсп субъект_мсп субъект_мсп субъект_мсп __рассказать мера_поддержка среднее_бизнес увеличение_доля закупка_товар среднее_предпринимательство год_объесть крупный_заказчик крупный_заказчик крупный_заказчик триллион_рубль объесть_закупка миллиард_рубль что_позволить место_по_объём федеральный_округа лидер_по_объём средний_компания финансовый_поддержка кредитный_организация +1308 |text мотля компания байкалвесток назначить должность генеральный директор макрорегион центр сотовый оператор россия . сообщение компания . В сфера ответственность входить оперативный управление бизнес макрорегион улучшение основный операционный финансовый показатель компания . В состав макрорегион центр входить владимирский ивановский калужский костромской рязанский тульский тверская смоленский ярославский область . мотля окончить читинский государственный технический университет российский академия предпринимательство . иметь степень mba . работать компания мтс сибирьтелек ростелеком . интеграция мобильный актив ростелеком мотля год возглавлять компания байкалвесток . В прийти год качество региональный управлять директор иркутск . оператор мобильный работать россия год . закрытие сделка создание совместный предприятие путём интеграция сотовый актив ростелеком год компания работать регион обслуживать миллион абонент . выручка россия второе квартал год вырасти процент сравнение аналогичный период прошлое год миллиард рубль . |ngramms экс_глава генеральный_директор сотовый_оператор оперативный_управление финансовый_показатель В_состав российский_академия компания_мтс мобильный_актив возглавлять_компания управлять_директор работать_в_россия совместный_предприятие миллион_абонент аналогичный_период_прошлое_год миллиард_рубль +1309 |text взлёт принадлежащий аэрофлот самолёт sukhoi superjet ssj аэропорт шереметьево быть остановить засорение топливный фильтр . заявить компания производитель ssj гражданский самолёт сухой гсс передавать интерфакс . информагентство ссылка источник авиадиспетчерский служба аэропорт сообщить что взлёт superjet быть прервать как самолёт сработать сигнализация отказ компьютер управление правый двигатель . В результат ssj быть совершить рейс москва харьков быть остановить предел полоса . В результат происшествие не_пострадать . аэрофлот являться стартовый заказчик новый российский самолёт ssj . В крупный отечественный авиаперевозчик жаловаться технический неполадка лайнер . деловой сообщить что год ssj обеспечить аэрофлот процент инцидент связанный отказ авиационный техника . компания большой инцидент быть связать ложный срабатывание система обнаружение утечка сеть кондиционирование управление самолёт сбой система шасси неполадка противопожарный оборудование . В гсс сообщить что технедостаток выявить устраняться . производитель superjet отмечать что новый самолёт год эксплуатация периодически выявляться неисправность . |ngramms sukhoi_superjet быть_остановить быть_остановить гражданский_самолёт_сухой В_результат В_результат взлетно_посадочный стартовый_заказчик российский_самолёт крупный_отечественный процент_инцидент авиационный_техника управление_самолёт В_гсс производитель_superjet новый_самолёт +1310 |text структура компания норникель следующий неделя планировать подписать соглашение создание консорциум развитие красноярский аэропорт емельяновый . номер писать газета ведомость ссылка неназванный источник . информация издание соглашение подписать администрация красноярский край аэропорт регион контролироваться реновый интерпорт находиться контроль интеррос авиакомпания таймыр принадлежать норникель . рбк писать что соглашение быть подписать красноярский экономический форум . издание уточнять что помимо власть край упомянуть компания подпись договор поставить представитель минтранс росавиация федеральный таможенный служба . информация рбк ведущий роль консорциум отводиться структура . планировать инвестор входить капитал емельяновый не_уточняться . таймыр быть развивать маршрутный сеть интерпорт планировать построить грузовой терминал аэропорт регион пассажирский терминал . объём инвестиция не_раскрываться что структура собираться вложить строительство миллиард рубль . У инвестор консорциум есть интерес емельяновый авиакомпания таймыр аэропорт являться базовый интерпорт аэропорт есть грузовой терминал . региональный аэропорт предрекать стремительный развитие будущее . подсчёт минтранс год уровень востребованность услуга авиатранспорт регион мочь увеличиться . структура контролировать екатеринбургский кольцово аэропорт нижний новгород самарский курумочий . компания аэропорт регион планировать стать инвестор строительство аэровокзал аэропорт . |ngramms _ _ писать_газета соглашение_подписать красноярский_край аэропорт_регион аэропорт_регион аэропорт_регион быть_подписать экономический_форум издание_уточнять что_помимо представитель_минтранс таможенный_служба структура_ структура_ структура_ маршрутный_сеть планировать_построить грузовой_терминал грузовой_терминал пассажирский_терминал объём_инвестиция миллиард_рубль аэропорт_являться нижний_новгород инвестор_строительство ростов_на_дону +1311 |text корейский автоконцерн ssangyong намеренный уходить российский рынок продолжить крупноузловый сборка мощность компания sollers эксклюзивный дистрибьютор марка владивосток сообщить лента . представитель sollers . не_идти уход ssangyong рынок разрыв сотрудничество автопроизводитель . решение временной прекращение поставка машина прима . лента . обоюдно как временной оптимизационный мера избежание наращивание стоковый возникновение финансовый риск . оптимизировать размер заказ производство соответствие спрос рынок . представитель sollers добавить что сборка машина ssangyong поставить комплект продажа автомобиль сервисный обслуживание продолжаться полный объём . И ssangyong подтверждать план продолжать работа россия подчеркнуть . В российский компания добавить что совместный предприятие mazda sollers выпускаться бренд корейский ssangyong японский mazda загрузка оставаться стабильный . что объём выпуск ssangyong временно сократиться не_повлиять деятельность завод . быть работать обычный режим общефедеральный график предприятие . представитель sollers затрудниться прогнозировать срок возобновление поставка машинокомплект ssangyong . корейский концерн ssangyong сообщить что год приостановить поставка машина россия падение курс рубль намеренный возобновлять экспорт укрепление российский валюта . продажа ssangyong россия ассоциация европейский бизнес аеб упасть процент автомобиль месяц год снизиться процент составить штука . уход российский рынок бренд opel массовый модель бренд chevrolet падение объём продажа объявить американский автопроизводитель general motors . В минпромторг рф объяснить решение низкий уровень локализация производство снижение курс рубль . |ngramms компания_sollers представитель_sollers представитель_sollers представитель_sollers прекращение_поставка финансовый_риск спрос_на_рынок продажа_автомобиль продолжать_работа российский_компания совместный_предприятие объём_выпуск деятельность_завод обычный_режим срок_возобновление поставка_машина российский_валюта ассоциация_европейский_бизнес массовый_модель бренд_chevrolet объём_продажа американский_автопроизводитель general_motors курс_рубль +1312 |text постоянный третейский суд гаага рассмотрение иск украинский бизнесмен коломойский россия . сообщать . истец выступать коломойский компания эксплуатант ооо аэропорт бельбек . претензия касаться пассажирский терминал севастопольский аэропорт бельбек управление как предприниматель есть право год . заявитель что россия нарушить двусторонний договор инвестиция украина . сумма исковый требование суд не_назвать называться цифра миллион доллар . иск быть подать коломойский год бытность губернатор днепропетровский область украина . согласно сообщение гаагский суд позиция москва заключаться что инстанция не_обладать юрисдикция рассмотрение иск слушание традиционно проходить закрытый дверь представитель россия участвовать не_собираться . В год третейский суд гаага присудить акционер юкос компенсация размер миллиард доллар . суд счесть что россия нарушить энергетический хартия незаконно присвоить актив юкос . крым войти состав россия год референдум ход подавлять большинство население республика участвовать голосование выступить присоединение рф . киев считать полуостров . |ngramms рассмотрение_иск бизнесмен_ истец_выступать пассажирский_терминал есть_право что_россия что_россия исковый_требование миллион_доллар быть_подать область_украина согласно_сообщение позиция_москва представитель_россия миллиард_доллар войти_в_состав считать_полуостров +1313 |text виртуальный оператор mvno mobile virtual network operator связной мобайл подключить свыше тысяча абонент год работа российский рынок . сообщение компания мтс партнёр сеть связной проект mvno . количесвто пользователь являться максимальный показатель проект mvno россия . связной мобайл являться называть лёгкое виртуальный оператор . оборудование учёт абонент тарификация предоставить услуга собственный номерной ёмкость предоставлять мобильный оператор мтс связной заключить соответствующий договор . С формальный зрение проект связной мобайл представлять специальный тарифный план мтс . компания запустить проект начало год . направить очередь привязка программа лояльность связной клуб предлагать различный бонус скидка клиент связной . обслуживание абонент маркетинговый продвижение отвечать . А счёт дополнительный подключение модель мтс привлекать новый пользователь сеть следовательно увеличивать доход . подобный проект . В год мтс заключить договор сеть гипермаркетовый ашан создание виртуальный оператор А мобайл год база местный оператор услуга поволжье предложить евросеть . пользователь похожий проект не_превышать тысяча . |ngramms виртуальный_оператор виртуальный_оператор виртуальный_оператор компания_мтс предоставить_услуга мобильный_оператор подобный_проект год_на_база местный_оператор +1314 |text татнефть возобновить работа ливия трехлетний перерыв . заявить генеральный директор компания маган сообщать новость . компания быть вести геологоразведочный работа центр страна совместно национальный нефтяной корпорация ливия noc . площадь участок где компания возобновить работа составлять тысяча квадратный километр . конец год актив татнефть страна оцениваться миллиард рубль . татнефть временно покинуть ливия начало страна гражданский война . персонал компания быть эвакуировать действие контракт приостановить . нефтедобыча ливия революция резко упасть год восстановиться . конец год месторождение страна начаться массовый протест вновь прервать нормальный работа объект . основной причина столкновение протест нефтяной месторождение являться требование этнический региональный группа требовать автономия доля прибыль экспорт . В особенность касаться восток страна . |ngramms генеральный_директор_компания сообщать_риа_новость компания_быть компания_быть центр_страна нефтяной_корпорация возобновить_работа тысяча_квадратный миллиард_рубль гражданский_война резко_упасть страна_начаться массовый_протест нормальный_работа основной_причина нефтяной_месторождение восток_страна +1315 |text японский toyota сохранять интерес российский рынок несмотря кризис автомобильный отрасль значительный падение продажа практически представить рынок бренд . сообщать ссылка автоконцерн . российский рынок являться приоритетный компания toyota глобальный уровень . несмотря временной нестабильный рыночный условие средне долгосрочный стратегия план россия оставаться неизменный указать . toyota россия не_планировать сокращать персонал проводить незапланированный остановка производство завод компания . южнокорейский автопроизводитель ssangyong объявить приостановка поставка машина россия падение курс рубль намеренный возобновлять экспорт укрепление российский валюта . поздний представитель sollers эксклюзивный дистрибьютор марка пояснить что ssangyong намеренный уходить российский рынок продолжить крупноузловый сборка мощность компания sollers владивосток . американский автопроизводитель general motors объявить уход российский рынок бренд opel часть модель бренд chevrolet . компания неопределённый срок останавливать собственный производственный проект россия продолжить работа страна качество торговый представительство . завод gm быть законсервировать год . сотрудничество калининградский автотор gm заказывать выпуск машина завершиться . контрактный производство газа заказ gm нижний новгород закончиться год . |ngramms японский_toyota российский_рынок российский_рынок падение_продажа пресс_служба пресс_служба рыночный_условие остановка_производство санкт_петербург санкт_петербург поставка_машина российский_валюта представитель_sollers компания_sollers американский_автопроизводитель general_motors бренд_chevrolet собственный_производственный проект_в_россия продолжить_работа торговый_представительство завод_gm нижний_новгород +1316 |text бывший заместитель министр региональный развитие назначить должность временно исполнять обязанность гендиректор компания курорт северный кавказ кск . сообщаться туристический организация . обязанность генеральный директор исполнять садик заместитель бывший гендиректор невский . как отмечать газета ведомость являться человек бывший председатель совет директор подать отставка критика президент . деловой уточнять что кск планироваться смена председатель совет директор отставка стать заместитель полпред федеральный округа максим . как сообщаться пост глава совет занять полпред президент . ведомость новый гендиректор кск являться человек . лишиться должность зимой год . В работа раскритиковать . президент не_устроить срыв срок строительство трамплин олимпиада сочи удорожание строительство миллиард восемь миллиард рубль . впоследствии отношение невский быть возбудить уголовный необоснованный расход злоупотребление полномочие . |ngramms заместитель_министр региональный_развитие _ _ _ исполнять_обязанность гендиректор_компания курорт_северный пресс_релиз генеральный_директор бывший_гендиректор как_отмечать являться_человек являться_человек председатель_совет_директор председатель_совет_директор президент__ планироваться_смена отставка_ стать_заместитель северо_кавказский федеральный_округа максим_ как_сообщаться пост_глава новый_гендиректор _и_ срыв_срок миллиард_рубль быть_возбудить злоупотребление_полномочие +1317 |text нафтогаз украина готовый вести переговоры газпром относительно поставка газа год территория россия брюссель город евросоюз . сообщение украинский компания . нак нафтогаз украина российский федерация являться неприемлемый страна проведение переговоры оао газпром компания подчеркнуть что позиция неизменно придерживаться год . зампред правление газпром сообщить что холдинг мочь вступить переговоры украина поставка газа год пригласить украинский коллега приехать россия переговоры . готовый вступить переговоры . приглашать украинский коллега приехать . поскольку представлять услуга нет ничто злонамеренный приехать . приезжать обсуждать транзит цитировать представитель газпром новость . сообщить что российский сторона выбор президент сша получать приглашение провести переговоры территория страна . мочь быть тонкий юмор давно не_быть удовольствие съездить повод заявить . слово не_исключить что определённый объём мочь остаться транзит украина . масштаб быть зависеть условие мочь быть предложить согласовать украинский стороной . В настоящее время вопрос заключение украина новое транзитный контракт взамен истекать год оставаться открытый . В президент россия что транзит российский газа украина ес мочь сохраниться год быть экономически целесообразно . |ngramms нафтогаз_украина нафтогаз_украина поставка_газа поставка_газа украинский_компания российский_федерация пресс_служба зампред_правление __сообщить холдинг_мочь украинский_коллега приехать_в_россия коллега_приехать нет_ничто что_российский_сторона президент_сша провести_переговоры мочь_быть нью_йорк В_настоящее_время президент_россия__ российский_газа мочь_сохраниться +1318 |text иммиграционный политика проводить американский президент трамп подвергнуть критика босс крупный американский концерн . сообщение подписаться руководитель apple jpmorgan chase american airlines . как отмечаться письмо противоречивый решение правительство привести что многие сотрудник столкнуться неопределённость вопрос как разрешение работа супруг . правительство законный пересмотр иммиграционный правило избегать изменение нарушать жизнь тысяча законопослушный квалифицировать работник наносить значительный ущерб конкурентоспособность сша отмечать автор письмо . мнение поскольку дефицит рабочий сила сша расти достигнуть исторический максимум мешать компания доступ талант несвоевременно . проблема рынок труд обозначить доклад федеральный резервный система сша . В немой отмечаться что проблема начаться прошлое год бизнес нести убыток . столица страна возникнуть трудность подбор строитель . В результат компания вынудить поднимать зарплата расход перекладывать конечный стоимость жильё . В новый англия сложно найти официант восточный побережье не_хватать квалифицировать водитель . |ngramms президент__трамп американский_концерн решение_правительство что_многие разрешение_на_работа автор_письмо рабочий_сила В_немой что_проблема прошлое_год В_результат компания_вынудить В_новый +1319 |text правительство москва намерить приватизировать агрохолдинг мосмедыньагропром . сообщаться сайт газета ведомость . город оценить предприятие миллиард рубль рассчитывать процент акция единый лот открытый торг . шаг аукцион составить миллион рубль . презентация пакет акция пройти . помимо доля предприятие новый собственник получить право имущество мосмедыньагропром . В входить ряд земельный участок площадь гектар единица оборудование свыше единица транспортный техника . мосмедыньагропром принадлежать тысяча гол племенной скот . основной производственный мощность комплекс расположить калужский область . итог год мосмедыньагропром отчитаться чистый убыток миллион рубль . год агрокомплекс сообщить получение прибыть миллион рубль . К середина год информация ведомость мосмедыньагропром накопить свыше миллион рубль задолженность . агрокомплекс быть внести список предприятие приватизация год . попытка предприятие год оказаться неудачный . ведомость что покупатель не_устроить цена миллиард рубль посчитать завысить . сельскохозяйственный комплекс быть любимый проект бывший московский мэр . С год москва вложить мосмедыньагропром свыше миллиард рубль . С назначение пост мэр москва город решить отказаться поддержка мосмедыньагропром . |ngramms правительство_москва сообщаться_на_сайт миллиард_рубль миллиард_рубль миллиард_рубль процент_акция шаг_аукцион миллион_рубль миллион_рубль миллион_рубль миллион_рубль пакет_акция новый_собственник производственный_мощность К_середина быть_внести что_покупатель _ _ мэр_москва +1320 |text база тульский предприятие входить ростёха создать центр ориентировать повышение квалификация сотрудник российский завод . журналист рассказать частный инвестор проект шёлк передавать корреспондент лента . . производство расположить центр тула предприятие выпускать различный звуковой аппаратура профессиональный микрофон гарнитур слуховой аппарат перенести новый площадка город . редевелопмент место быть современный обучать кластер . В здание завод построить гостиница появиться кафе ресторан детский развивать робототехнический центр кванториум . очередь учебный кластер современный станок производственный оборудование планировать запустить год уточнить шёлк . быть готовый обучить человек ежегодно . точный сумма инвестиция бизнесмен не_уточнить что предварительный подсчёт реконструкция здание обойтись минимум тысяча рубль квадратный метр . исходить площадь завод редевелопмент тысяча квадратный метр подготовка площадка прийтись вложить миллиард рубль учёт стоимость оборудование . шёлк пояснить что инвестировать проект решить причина необходимость подготовка квалифицировать кадр предприятие всмпо ависм совладелец являться дефицит рабочий россия . идти изменение технологический база старое станок заменяться сложный программный комплекс . простой способ изготовление деталь уходить прошлое место приходить сложный многовекторный процесс . человек уметь работать сложный программа оборудование российский рынок потребность год расти . предприниматель добавить что всмпо ависм столкнуться проблема как многие российский компания . проанализировать город высокий концентрация производство выбрать тула . К счастие предприятие входящая ростёха тула оказаться большой промышленный здание . В здание мочь разместиться центр взрослый детский технопарк новое поколение быть обучаться работа компьютер робототехника печать принтер пояснить . слово бизнесмен индустриальный центр обучение рабочий создаваться прицел крупный российский предприятие нуждающийся квалифицировать кадр повышение навык работать персонал . добавить что не_идти предприятие ростех . шёлк сообщить что настоящее время вестись переговоры крупный завод уточнять название не_стать . инвестор договариваться производитель станочный оборудование поставка станок . часть мочь предоставить бесплатно символический сумма продвижение продукция российский рынок . |ngramms учебно_производственный российский_завод частный_инвестор передавать_корреспондент новый_площадка В_здание планировать_запустить сумма_инвестиция квадратный_метр тысяча_квадратный_метр миллиард_рубль стоимость_оборудование инвестировать_в_проект топ_менеджер простой_способ российский_компания новое_поколение центр_обучение крупный_российский крупный_завод мочь_предоставить +1321 |text трансаэро намерить обратиться суд иск собственный банкротство . сообщаться единый реестр сведение факт деятельность юрлицо . авиационный компания трансаэро лицо генеральный директор сообщать намерение обратиться арбитражный суд заявление должник признание несостоятельный банкрот реестр . В иск банкротство авиаперевозчик подать сбербанк . аналогичный иск намеренный подать втб . долг суд пытаться взыскать многочисленный контрагент компания . поздно вечером стать что гендиректор совладелец группа подписать акционер трансаэро соглашение продажа процент акция трансаэро . поздний подтвердить что намеренный завершить сделка несмотря отзыв сертификат эксплуатант авиакомпания . трансаэро оказаться грань банкротство высокий нагрузка миллиард рубль включая лизинговый платёж миллиард задолженность банка фон падение спрос авиаперелёт . авиакомпания перейти операционный управление аэрофлот начало . предполагаться что спасение аэрофлот передать процент акция рубль акционер не_успеть установленный срок консолидировать пакет . перевозка пассажир трансаэро продолжиться сила группа аэрофлот необходимость российский перевозчик . услуга трансаэро воспользоваться миллион человек . |ngramms обратиться_в_суд собственный_банкротство единый_реестр генеральный_директор _ _ арбитражный_суд иск_о_банкротство альфа_банк __подписать соглашение_о_продажа процент_акция процент_акция что_намеренный завершить_сделка сертификат_эксплуатант _нагрузка миллиард_рубль лизинговый_платёж задолженность_банка операционный_управление установленный_срок перевозка_пассажир миллион_человек +1322 |text роскосмос сосредоточиться снижение себестоимость пуск ракета носитель конкурировать американский spacex частное компания . завить глава российский ведомство интервью телеканал россия . У есть результат удаться снизить себестоимость ракета носитель протон активно вестись работа союз . результат работа заключаться конкурентоспособность средство выведение . что настоящее время готовиться программа финансовый оздоровление некоторый предприятие роскосмос . глава ведомство признать что основный конкурент создание ракета носитель являться spacex маска . добавить что контракт пуск российский ракета носитель протон союз расти . тенденция слово свидетельствовать что россия идти правильный направление . неоднозначно оценить перспектива развитие многоразовый ракета слабый окупаемость программа . не_исключить что россия мочь появиться многоразовый ракета носитель пику испытывать настоящее время spacex ракета falcon неделя компания удаться успешно посадить плавучий платформа атлантический океан . глава роскосмос что ближний десять год рамка федеральный космический программа предстоять вывести орбита космический аппарат грузовой пилотировать корабль что предстоять выпустить средство выведение . год быть произвести пуск год значительно вырасти период прийтись пик коммерческий контракт . подчеркнуть что россия сохранять ведущий роль пилотировать космонавтика двигателестроение создание средство выведение занимать первое место доле рынок пусковой услуга . добавить что год объём финансирование сторона государство сохраниться как объём контракт изготовление ракета носитель . |ngramms частное_компания глава_российский ведомство__ удаться_снизить глава_ведомство основный_конкурент _маска что_россия что_россия перспектива_развитие мочь_появиться компания_удаться что_в_ближний десять_год космический_программа космический_аппарат год_быть значительно_вырасти _подчеркнуть +1323 |text начальник управление борьба картель фас россия предложить М . видео сознаться картель быть нарушение антимонопольный законодательство . чиновник отреагировать информация что компания не_исключать возбуждение нея сторона фас сообщать . М . видео есть ощущение грех прийти сознаться . признаться картель освобождаться ответственность цитировать агентство . В М . видео очередь пояснить что идти стандартный процедура оценка риск публичный компания рамка отчётность где компания обязать указывать маловероятный риска . компания считать что соблюсти требование применимый законодательство оценивать риск как несущественный что подтверждаться что не_начислять отчётность резерв . В прошлое год фас начало проверка российский ретейлер подозрение сговор ценообразование смартфон iphone . мнение ведомство цена iphone незначительно отличаться разный продавец близкий стоимость указанный apple год . подозрение попасть компания евросеть связной эльдорадо техносить store билайн принадлежать пао вымпелком мегафон мобиленд сеть ноу хау ozon . . год фас признать компания эпплый русый являться российский дочка apple виновный координация цена . |ngramms начальник_управление россия___предложить антимонопольный_законодательство что_компания цитировать_агентство публичный_компания компания_обязать пресс_служба прошлое_год начало_проверка смартфон_iphone пресс_релиз являться_российский +1324 |text акция сервис микроблог twitter итог торг установить рекорд цена сообщать . цена акция twitter достигнуть доллар . тенденция рост цена акция сервис микроблог сохраниться торг закрытие биржевой . акция twitter стать резко дорожать как руководство компания объявить ряд нововведение изменение практика показ реклама пользователь . пользователь twitter быть видеть реклама подобрать исходить история посещение сохранить браузер . сервис микроблог twitter существующий год провести первичный размещение акция фондовый биржа nyse год . акция размещаться цена доллар минута торг подорожать доллар . В ход ipo сервис микроблог удаться привлечь миллиард доллар . |ngramms акция_сервис акция_сервис установить_рекорд цена_акция рост_цена акция_twitter руководство_компания пользователь_twitter веб_страница первичный_размещение нью_йоркский фондовый_биржа минута_торг В_ход миллиард_доллар +1325 |text совокупный состояние российский миллиардер год вырасти миллиард доллар . следовать очередной опубликовать рейтинг богатый человек мир bloomberg billionaires . индекс рассчитываться исходить стоимость принадлежащий акция отчёт компания . россия богатый человек являться основной акционер северсталь мордашов состояние вырасти миллиард доллар миллиард . место занимать президент норильский никель чей состояние увеличиться миллиард доллар составить миллиард доллар . следом идти глава совет директор нлмк лисиный чей капитал вырасти миллиард доллар миллиард доллар . миллиард увеличиться состояние глава новатэк михельсон составлять миллиард . председатель совет директор группа компания реновый вексельберг увеличить состояние миллион доллар владеть миллиард . основатель usm holdings разбогатеть миллион миллиард . следом идти основной владелец увеличиться состояние миллион доллар миллиард . В десятка войти акционер консорциум глава лукойл . занимать строчка рейтинг российский миллиардер . совладелец группа сафмара замыкать перечень российский миллиардер увеличить состояние миллион миллиард доллар . минфин сша внести российский олигарх список представить конгресс . высокопоставленный российский чиновник считаться кандидат попадание санкционный список . правительство россия заявить что страна не_остаться олигарх . бояться нет олигарх концепция год . есть хороший трудолюбивый бизнесмен заботиться страна зарабатывать деньга заниматься ответственный . |ngramms совокупный_состояние российский_миллиардер российский_миллиардер российский_миллиардер миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар опубликовать_рейтинг богатый_человек богатый_человек отчёт_компания основной_акционер _ _ _ _ _ чей_состояние совет_директор увеличиться_состояние председатель_совет_директор группа_компания миллион_доллар миллион_доллар usm_holdings основной_владелец В_десятка акционер_консорциум альфа_группа __и__ __и__ строчка_рейтинг совладелец_группа минфин_сша российский_чиновник санкционный_список вице_премьер россия___заявить есть_хороший +1326 |text лукойл объявить увеличение добыча нефть год передавать агентство ссылка президент компания . нацелить стабилизация добыча территория российский федерация . В целое компания быть рост счёт что снижение цена нефть резко расти доля добыча территория рф кулуар экономический форум давоса . лукойл намеренный снизить инвестиционный программа год процент . максимальный инвестиция сделать период год . ... считать что естественный снижение инвестиционный программа год сбалансировать компания . слово инвестиционный программа год составить миллиард доллар . О возможный пересмотр инвестиционный план санкция сообщать прошлое год . что ограничение доступ финансирование затронуть инвестпрограмма лукойл . оао лукойл крупный нефтегазовый компания мир . обеспечивать процент мировой добыча нефть . доказать запас углеводород компания состояние конец год составлять миллиард баррель . |ngramms передавать_агентство компания__ российский_федерация В_целое компания_быть цена_на_нефть резко_расти экономический_форум инвестиционный_программа инвестиционный_программа инвестиционный_программа год_составить миллиард_доллар О_возможный прошлое_год что_ограничение нефтегазовый_компания процент_мировой добыча_нефть запас_углеводород год_составлять миллиард_баррель +1327 |text компания стройгазмонтаж сгм аркадия заниматься возведение мост крым назначить подрядчик строительство железнодорожный подход сторона полуостров . распоряжение правительство россия . подписать распоряжение ооо стройгазмонтаж определить единственный исполнитель работа закупка осуществлять росжелдор разработка рабочий документация выполнение строительный монтажный работа строительство железнодорожный подход транспортный переход керченский пролив рамка фцп развитие республика крым город севастополь год отмечаться документ . В распоряжение подчёркиваться что определение компания стройгазмонтаж исполнитель работа позволить завершить строительство железнодорожный подход синхронно сооружение мост керченский пролив . В середина коммерсантъ ссылка источник бел дом сообщать что неудачный конкурс выбор подрядчик строительство железнодорожный подход керченский мост власть решить доверить строительство компания стройгазмонтаж . собеседник издание что поскольку претендент постройка железнодорожный ветка не_найтись правительство решить отдать сгм подряд стоимость миллиард рубль конкурс . стройгазмонтаж получить подряд строительство мост керченский пролив год . мост керченский пролив длина километр стать протяжённый россия . соединить крымский полуостров материковый частью страна автомобильный железный дорога . керченский мост строиться счёт средство федеральный бюджет рамка фцп развитие республика крым город севастополь год привлечение внебюджетный финансирование . движение автомобиль открыться год железнодорожный линия быть ввести эксплуатация . стоимость проект составить миллиард рубль . |ngramms аркадия_ строительство_железнодорожный строительство_железнодорожный строительство_железнодорожный правительство_россия определить_единственный исполнитель_работа исполнитель_работа выполнение_строительный социально_экономический социально_экономический развитие_республика развитие_республика город_севастополь город_севастополь В_середина керченский_мост керченский_мост власть_решить собеседник_издание правительство_решить миллиард_рубль миллиард_рубль получить_подряд крымский_полуостров частью_страна железный_дорога федеральный_бюджет автомобиль_открыться железнодорожный_линия быть_ввести проект_составить +1328 |text росавиация направить украинский авиакомпания уведомление запрет полёт россия . сообщать новость . соответствующий мера стать ответ решение киев прекратить авиасообщение рф начало зимний навигация есть дата . В росавиация как писать добавить что запрет выполнение полёт украинский авиакомпания быть действовать отмена киев аналогичный мера отношение российский авиаперевозчик . К сожаление необдуманный решение киевский власть болезненный образ ударить гражданин украина . российский авиакомпания процент пассажир рейс государство формировать украинец указать ведомство передавать интерфакс . воздушный сообщение россия украина осуществляться ряд направление москва сургут полёт киев одесса львов выполнять российский авиакомпания аэрофлот трансаэро сибирь ютэйр россия авиакомпания ютэйр попасть санкционный список украина . что касаться украинский авиакомпания киев одесса запорожье днепропетровск москва калининград летать мотор сич международный авиалиния украина . росавиация пассажиропоток россия украина восемь месяц год составить тысяча человек . В обнародовать киев список санкция организация попасть десятка российский авиаперевозчик . В отношение ввести частичный полный запрет транзит ресурс полёт украина перевозка территория . поздний россия поручить минтранс рассмотреть вопрос ответный санкция отношение украинский авиакомпания . министерство очередь дать указание росавиация направить авиаперевозчик украина уведомление прекращение использование воздушный пространство россия . |ngramms росавиация_направить росавиация_направить украинский_авиакомпания украинский_авиакомпания украинский_авиакомпания украинский_авиакомпания решение_киев В_росавиация как_писать выполнение_полёт быть_действовать российский_авиаперевозчик российский_авиаперевозчик киевский_власть гражданин_украина российский_авиакомпания российский_авиакомпания россия_и_украина россия_и_украина ряд_направление санкт_петербург санкт_петербург санкционный_список что_касаться восемь_месяц тысяча_человек премьер_министр россия__ дать_указание авиаперевозчик_украина использование_воздушный +1329 |text крупный мир алмазный компания алрос намерить возобновить бизнес ангола создать совместный предприятие зимбабвийский ботсванский компания . номер писать коммерсантъ ссылка неназванный источник . В состояться переговоры президент российский компания власть ангола endiama представлять интерес страна алмазный проект планироваться обсудить сотрудничество . алрос рассчитывать создание совместный предприятие заняться поиск месторождение алмаз страна близ граница конго . В ботсвана российский компания намерить сотрудничать botswana diamonds зарегистрировать лондон . принадлежать поисковый лицензия страна . алрос оценивать затрата ботсвана миллион доллар ближний год . поиск партнёр зимбабве осложняться политический риска год страна править мугаба прославиться жёсткий отношение иностранный компания . год мугаба фактически национализировать добывать промышленность страна . алроса есть проект африка . компания год создать ангола гро каток разработка кимберлитовый трубка . партнёр российский организация стать endiama бразильский odebrecht достаться процент акция соответственно . В конец год алрос испытывать финансовый трудность отсутствие экспортный выручка процент гро каток предприниматель лев известный как алмазный король . стоимость сделка составить миллион доллар . В год компания принадлежать доля гро китайский china sonangol миллион доллар . В алрос что располагать право первоочередной выкуп ценный бумага рассчитывать оспорить сделка . |ngramms крупный_в_мир намерить_возобновить переговоры_президент российский_компания _ представлять_интерес совместный_предприятие северо_запад российский_компания_намерить миллион_доллар миллион_доллар миллион_доллар ближний_год поиск_партнёр иностранный_компания есть_проект российский_организация процент_акция В_конец финансовый_трудность сделка_составить китайский_china ценный_бумага +1330 |text В сша розничный продажа апельсиновый сок сезон год снизиться уровень пятнадцатилетный давность составить миллион галлон галлон литр . сообщить департамент флорида цитрусовый . газета wall street journal что причина снижение спрос апельсиновый сок стать повышение конкуренция сторона энергетический напиток экзотический продукт подобный плод пальма . цена апельсиновый сок вырасти десять год доллар галлон доллар галлон снижение урожайность апельсиновый дерево . дополнительный негативный фактор стать приостановка работа американский государственный учреждение что повлечь отсутствие официальный прогноз урожайность метеосводка ориентироваться товарный трейдер . В настоящее время биржа ice фьючерс поставка заморозить сок торговаться доллар фунт сок грамм . процент дешёвый средний цена подобный объесть . фондовый площадка доминировать тенденция снижение стоимость сок . стоимость сок сезон год оценить миллиард доллар . процент маленький что удаться выручить десятилетие . десять год объесть продажа сок сократиться примерно треть . торговля фьючерс апельсиновый сок начаться сша год . наибольший известность массовый культура приобрести год когда экран выйти фильм поменяться местами где противник главный герой хотеть обрушить рынок апельсиновый сок помощь инсайдерский информация . |ngramms В_сша розничный_продажа год_снизиться wall_street_journal повышение_конкуренция энергетический_напиток негативный_фактор приостановка_работа государственный_учреждение В_настоящее_время средний_цена снижение_стоимость миллиард_доллар процент_маленький десять_год объесть_продажа наибольший_известность массовый_культура выйти_фильм главный_герой +1331 |text федеральный антимонопольный служба поддерживать идея создание новый авиакомпания база трансаэро . сообщать интерфакс ссылка глава ведомство . надо сохранять конкуренция не_уйти . как быть сделать вопрос сообщить добавить что слышать идея нравиться . источник интерфакс сообщить что большинство кредитор трансаэро выступать банкротство объём перевозка российский авиакомпания . стать что вэб проводить переговоры лизингодатель трансаэро создание база находиться грань банкротство перевозчик новый авиакомпания . мнение глава госкорпорация мочь взять часть обязательство транспортировка пассажир обслуживание пассажиропоток . российский частный авиакомпания трансаэро оказаться состояние погасить задолженность составлять лизинговый обязательство миллиард рубль . одобрить правительство план передача процент акция перевозчик аэрофлот последующий санация сорваться . кредитор рассматривать вариант банкротство авиакомпания . перевозка пассажир трансаэро быть осуществляться год рейс перевозчик группа аэрофлот авиакомпания . |ngramms федеральный_антимонопольный_служба создание_новый глава_ведомство _ _ что_большинство российский_авиакомпания банкротство_перевозчик новый_авиакомпания глава_госкорпорация российский_частный погасить_задолженность миллиард_рубль процент_акция рассматривать_вариант банкротство_авиакомпания перевозка_пассажир быть_осуществляться +1332 |text роснефть ближний время рассчитывать закрыть сделка выкуп одесский нефтеперерабатывающий завод . номер писать газета коммерсантъ ссылка неназванный источник . сумма возможный сделка не_раскрываться . продавец актив выступить российский госбанк втб . газета втб получить актив как основной кредитор группа ветэк украинский бизнесмен называть близкие окружение президент украина предприниматель слух опровергать . как конец быть отстранить власть верховный рада покинуть украина понять что не_смочь погасить кредит втб передать актив банка . прошлое год нпз одесса принадлежать российский нефтекомпания лукойл . как сообщаться конец прошлое год прекратить поставка сырьё предприятие . В конец стать что одесский нпз смениться руководство украинский управление борьба экономический преступление начать проверка завод подозрение контрабанда нефтепродукт . информация издание ветэк задолжать лукойл роснефть танкерный поставка нефть причём российский госкомпания группа миллион доллар . источник газета что выезд украина пытаться остаться белоруссия не_получить разрешение местный власть бизнесмен якобы находиться москва пытаться урегулировать отношение кредитор россия . одесский нпз быть построить ввести эксплуатация год . мощность предприятие составлять тысяча баррель сутки миллион тонна год . |ngramms нефтеперерабатывающий_завод писать_газета сумма_возможный сделка_не_раскрываться бизнесмен__ украина__ _покинуть что_не_смочь кредит_втб актив_банка прошлое_год прошлое_год как_сообщаться поставка_сырьё В_конец начать_проверка поставка_нефть российский_госкомпания миллион_доллар источник_газета местный_власть якобы_находиться быть_построить ввести_в_эксплуатация мощность_предприятие тысяча_баррель миллион_тонна +1333 |text бывший президент ростелеком рассматриваться качество кандидат должность гендиректор россия . сообщаться сайт газета ведомость ссылка неназванный источник . информация ссылка собственный источник подтверждать коммерсантъ новость . информация кандидатура рассматривать неформальный встреча втб россия . О назначение мочь быть объявить . покинуть должность президент ростелеком конец год как срок контракт истекать год . увольнение глава телекоммуникационный госкомпания состояться фон критика адрес сторона министр . глава минкомсвязи упрекать ростелеком неэффективный вложение средство неоднократно предлагать администрация президент правительство сменить руководство компания . информация досрочный расторжение контракт мочь выплатить золотой парашют размер миллион рубль . россия бывший российский дочка шведский мобильный оператор . В год госбанк втб выкупить россия скандинав миллиард доллар взять долг оператор размер миллиард доллар . В минувший год газета ведомость писать что ростелеком намерить создать совместный предприятие . В итог как частный оператор мочь получить лицензия G G не_хватать дальнейший успешный развитие . слияние ростелеком называться версия развитие россия . В сообщать что актив компания мочь разделить крупный россия мобильный оператор мтс вымпелком мегафон . |ngramms бывший_президент _ _ собственный_источник кандидатура_ топ_менеджер мочь_быть_объявить _покинуть должность_президент глава_минкомсвязи топ_менеджмент администрация_президент руководство_компания мочь_выплатить миллион_рубль мобильный_оператор мобильный_оператор миллиард_доллар миллиард_доллар минувший_год намерить_создать совместный_предприятие В_итог мочь_получить компания_мочь крупный_в_россия +1334 |text производитель кондитерский изделие hershey купить крупный шоколадный фабрика китай shanghai golden monkey sgm . опубликовать сообщение американский компания . сумма сделка составить миллион доллар . sgm получить миллион доллар наличный средство остаться сумма быть направить ликвидация задолженность . непосредственный покупатель китайский шоколадный фабрика выступить нидерландский подразделение hershey . первое этап завершиться середина год hershey стать собственник процент акция sgm остаться процент быть выкупить год . сделка получить одобрение власть китай акционер sgm . приобретение sgm позволить hershey нарастить присутствие китай где компания продавать продукция одноимённый бренд . сведение привести спрос кондитерский изделие кнр год составить миллиард доллар . компания shanghai golden monkey быть основать год . итог год продажа мочь составить миллион доллар . штат компания насчитывать тысяча человек . sgm приобрести известность китай благодаря кондитерский пищевой продукция марка golden monkey . компания экспортировать конфета сша россия австралия казахстан страна южный америка . hershey являться крупный кондитерский пищевой компания северный америка . принадлежать бренд kit kat hershey kisses hershey . итог год чистый прибыль составить миллион доллар . |ngramms кондитерский_изделие кондитерский_изделие шоколадный_фабрика шоколадный_фабрика американский_компания сумма_сделка миллион_доллар миллион_доллар миллион_доллар миллион_доллар стать_собственник процент_акция быть_выкупить получить_одобрение одноимённый_бренд год_составить миллиард_доллар мочь_составить штат_компания тысяча_человек приобрести_известность страна_южный являться_один_из_крупный северный_америка чистый_прибыль +1335 |text чистый прибыль мегафон второе квартал год составить миллиард рубль что выше показатель аналогичный период предыдущий год сообщаться компани . выручка достигнуть миллиард рубль подняться процент . показатель прибыть оказаться немногий маленький рекорд установленный третье квартал год когда мегафон получить миллиард рубль . совет директор мегафон одобрить приобретение процент акция компания скартело йот владеть бренд yota миллиард доллар . окончательный решение покупка организация собрание акционер наметить . федеральный антимонопольный служба одобрить ходатайство мегафон приобретение скартело оставить сила предписание обеспечение конкуренция рынок мобильный широкополосный доступ интернет быть выдать скартело год . акция мегафон вырасти начало торговый сессия московский биржа процент . В целое начало год бумага подорожать треть . основный акционер мегафон являться миллиардер процент акция шведский компания telia sonera принадлежать блокпакет . В конец год мегафон провести ipo лондонский фондовый биржа lse . |ngramms чистый_прибыль год_составить миллиард_рубль миллиард_рубль миллиард_рубль аналогичный_период предыдущий_год пресс_релиз третье_квартал совет_директор процент_акция_компания владеть_бренд миллиард_доллар собрание_акционер федеральный_антимонопольный_служба вырасти_в_начало торговый_сессия В_целое бумага_подорожать основный_акционер миллиардер__ процент_акция шведский_компания В_конец провести_ipo фондовый_биржа +1336 |text московский управление федеральный антимонопольный служба фас раскрыть сговор компания поставлять услуга освещение столичный здание улица развязка . сообщаться сайт ведомство . уфас установить что нарушитель закон защита конкуренция стать компания агентство развитие перспективный технология орбита сервис . реализовать картельный соглашение позволить поддерживать высокий цена торг право установка оборудование наружное освещение москва . В ход аукцион компания подать ценовый предложение дальнейший отказаться конкурентный борьба . результат действие стать снижение начальный максимальный цена контракт процент сообщать . как отмечаться сумма заключённый контракт итог составить миллион рубль . фактический отказ участник картель конкурентный борьба услуга предоставляться завысить цена . фас установить что время аукцион компания обмениваться информация использовать единый структура совместно готовиться торг . В фас получить заявление проверка компания siemens предмет недобросовестный конкуренция . скандал поставка оборудование крым немецкий компания объявить разрыв отношение российский партнёр . мнение интеравтоматика действие siemens можно трактовать как попытка устранить конкурент распределить заказ дочерний компания . |ngramms московский_управление федеральный_антимонопольный_служба защита_конкуренция агентство_развитие перспективный_технология поддерживать_высокий цена_на_торг установка_оборудование В_ход аукцион_компания аукцион_компания ценовый_предложение конкурентный_борьба конкурентный_борьба цена_контракт пресс_служба как_отмечаться миллион_рубль фас_установить что_в_время информационно_технический компания_siemens поставка_оборудование немецкий_компания российский_партнёр как_попытка дочерний_компания +1337 |text русгидро итог год получить убыток размер миллиард рубль . сообщаться отчёт компания международный стандарт финансовый отчётность . выручка отчётный период составить миллиард рубль . год русгидро заработать миллиард рубль выручка миллиард рубль . В русгидро убыток объяснить реорганизация компания . В конец год структура быть выделить сбытовый организация . В государство решить передать мосэнергосбыт петербургский сбытовый компания алтайэнергосбыт саратовэнерго тамбовский сбытовый компания контроль интер рао . В год организация принести русгидро процент выручка . убыток связать отмена госсубсидия вид целевой инвестиционный составлять цис тариф гидроэлектростанция год . председатель правление русгидро дод рассказывать коммерсант что год доля государственный поддержка расход финансирование инвестпрограмма составлять процент доля цис процент . недоставать средство компания компенсировать счёт кредит . компания сообщить обесценение ряд актив . В год стоимость актив вырасти миллиард миллиард рубль показатель вырасти основное счёт размещение депозит сбербанк миллиард рубль получить результат допэмиссия акция . акция русгидро торг состояние москва подешеветь процент копейка . индекс ммвб время вырасти процент ртс упасть процент . русгидро крупный генерировать компания рф . установленный мощность электростанция организация составлять гигаватт . В состав русгидро входить гидроэлектростанция объект возобновлять энергетика . контролировать акционер компания являться государство . |ngramms убыток_в_размер миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль отчёт_компания международный_стандарт финансовый_отчётность отчётный_период В_конец быть_выделить решить_передать процент_выручка председатель_правление год_доля государственный_поддержка ряд_актив показатель_вырасти получить_в_результат установленный_мощность организация_составлять В_состав контролировать_акционер компания_являться +1338 |text сбербанк россия подтвердить повторный списание средство счёт клиент совершенный операция . как сообщить организация деньга вернуть . В банка объяснить что произойти ошибка международный платёжный система не_уточнить какой . год процессинговый система банка международный платёжный система поступить ошибочный повторный информация операция клиент сбербанк торговый сеть сторонний банка . привести повторный списание карта некоторый клиент организация . рассказать что процессинговый система сбербанк функционировать штатный режим . ряд клиент сбербанк пожаловаться что банк снять счёт средство совершенный операция помощь карта платёжный система visa . В колл центр рассказать что накануне быть зафиксировать многократный повторный списание операция совершенный помощь приложение мобильный банк . пострадавший владелец карта не_называться . подобный сбой затронуть клиент сбербанк . повторный списание средство быть зафиксировать год . В карта тысяча клиент списать средство тысяча операция . объесть ошибочный операция оцениваться десятка миллион рубль . |ngramms сбербанк_россия счёт_клиент пресс_служба финансово_кредитный В_банка что_произойти платёжный_система платёжный_система платёжный_система клиент_сбербанк клиент_сбербанк клиент_сбербанк торговый_сеть что_банк счёт_средство что_накануне быть_зафиксировать средство_быть тысяча_клиент миллион_рубль +1339 |text американский сеть закусочный quiznos специализироваться продажа сандвич салат подать заявление банкротство сообщаться сайт журнал business week . компания планировать провести реорганизация благодаря долг сократиться миллион доллар . большой часть ресторан планировать продолжить работа . слово исполнительный директор quiznos мэтис stuart K . mathis компания планировать сократить расход предложить некоторые держатель франшиза кредит вложиться реклама модернизировать производство повышение эффективность . как отмечать издание конкуренция рынок быстрый питание возрасти появление новый расти сеть . рынок не_расти что слабый игрок исчезать . заявление банкротство подать компания sbarro сделать сеть hot dog stick . долг quiznos составлять миллион доллар . компания проводить внесудебный реструктуризация год . долг удаться сократить миллион доллар напоминать издание . quiznos быть основать год . сеть закусочный присутствовать штат сша страна мир . торговый марка открыться заведение причём семь работать принцип франшиза . |ngramms специализироваться_на_продажа заявление_о_банкротство заявление_о_банкротство компания_планировать компания_планировать миллион_доллар миллион_доллар миллион_доллар большой_часть продолжить_работа исполнительный_директор сократить_расход повышение_эффективность как_отмечать_издание быстрый_питание страна_мир торговый_марка +1340 |text объединить авиастроительный корпорация оак работать проект сверхзвуковой авиалайнер мочь быть использовать технология применить стратегический ракетоносец . новость сообщить компания . часы президент россия предложить создать гражданский версия сверхзвуковой самолёт база . днём глава государство понаблюдать полёт бомбардировщик казань что как передавать интерфакс озвучить идея возрождение сверхзвуковой пассажирский авиация некоторый время существовать ссср . почему сойти производство билет быть соответствовать средний заработок страна . А ситуация . крупный компания появиться мочь использовать самолёт российский лидер . В качество аргумент привести что быстрый долететь москва девять часы калининград владивосток часы пересадка . быть мир тип сверхзвуковой авиалайнер . пассажирский перевозка немой осуществляться прекратиться причина катастрофа опытный экземпляр . полёт воздушный судный тип быть совершить год быть значительно модифицированный использоваться наса исследование . второе история сверхзвуковой пассажирский самолёт быть французский конкорд . авиалайнер эксплуатироваться год перевезти намного большой пассажир миллион . |ngramms объединить_авиастроительный_корпорация мочь_быть_использовать пресс_служба президент_россия__ предложить_создать глава_государство как_передавать некоторый_время крупный_компания В_качество нью_йорк девять_часы пассажирский_перевозка причина_катастрофа воздушный_судный быть_совершить пассажирский_самолёт +1341 |text проверка российский самолёт superjet ssj эксплуатировать мексиканский авиакомпания interjet вызвать небольшой технический проблема . сообщить министр промышленность торговля россия мантур передавать . есть небольшой технический проблема быть решить ближний время министр . днём мексиканский авиакомпания interjet объявить проверка российский самолёт ssj авиапарка . повод послужить решение росавиация приостановить эксплуатация лайнер тип выявить дефект проушина верхний нижний пояс установочный узел стабилизатор . авиакомпания чей парка насчитываться ssj отменить рейс . мексиканский компания подчеркнуть что находиться эксплуатация самолёт superjet соответствовать норма высокий стандарт безопасность . О что росавиация распорядиться проверить стабилизатор самолёт sukhoi superjet выявить дефект эксплуатация лайнер стать . разработчик superjet холдинг гражданский самолёт сухой гсс подтвердить наличие проблема подчеркнуть что мочь создать небезопасный ситуация эксплуатация . новость выявить дефект росавиация приостановить эксплуатация аэрофлот авиакомпания ираэро . sukhoi superjet ssj региональный самолёт новое поколение разработать произвести компания зао гражданский самолёт сухой входить объединить авиастроительный корпорация alenia aermacchi . базовый версия лайнер иметь дальность километр модификация lr километр . самолёт способный перевозить пассажир . |ngramms российский_самолёт российский_самолёт мексиканский_авиакомпания мексиканский_авиакомпания технический_проблема технический_проблема промышленность_и_торговля россия_ повод_послужить росавиация_приостановить росавиация_приостановить мексиканский_компания находиться_в_эксплуатация самолёт_superjet стандарт_безопасность что_росавиация sukhoi_superjet sukhoi_superjet разработчик_superjet гражданский_самолёт_сухой гражданский_самолёт_сухой подтвердить_наличие региональный_самолёт новое_поколение объединить_авиастроительный_корпорация базовый_версия лайнер_иметь самолёт_способный +1342 |text ростелеком федеральный корпорация развитие малое среднее предпринимательство корпорация мсп время петербургский международный экономический форум подписать дополнительный соглашение направить развитие долгосрочный сотрудничество организация передавать корреспондент лента . . дополнительный соглашение предусматривать сотрудничество сторона область методический информационный поддержка субъект мсп . дать работа быть включать информирование предприниматель корпоративный система менеджмент качество номенклатура текущий перспективный технологический потребность планировать объём закупка ростелеком краткосрочный долгосрочный период условие сотрудничество . корпорация мсп ростелеком рассказать предприниматель разработать сторона соглашение услуга продукт бизнес сервис портал бизнес навигатор мсп . информационный взаимодействие быть осуществляться интеграция информационный система сторона обмен информация аналитический дать сегмент мсп . совместный работа включать проведение конференция информационный семинар представитель малое средний компания организация обучение специалист различный категория положение требование корпоративный стандарт ростелеком . корпорация мсп рамка соглашение организация мероприятие направить формирование сеть квалифицировать ответственный поставщик ростелеком субъект мсп . В рамка сотрудничество сторона провести сбор систематизация распространение хороший практика поддержка субъект мсп субъект рф муниципальный образование основа исследование ростелеком . достижение цель дополнительный соглашение сторона разработать дорожный карта планироваться реализовать конец год . напомнить что соглашение взаимодействие ростелеком корпорация мсп быть подписать год . |ngramms федеральный_корпорация среднее_предпринимательство корпорация_мсп корпорация_мсп корпорация_мсп корпорация_мсп международный_экономический_форум дополнительный_соглашение дополнительный_соглашение направить_на_развитие передавать_корреспондент соглашение_предусматривать сотрудничество_сторона сотрудничество_сторона субъект_мсп субъект_мсп субъект_мсп дать_работа быть_включать объём_закупка условие_сотрудничество сторона_соглашение портал_бизнес быть_осуществляться информационный_система обмен_информация совместный_работа средний_компания В_рамка субъект_рф дорожный_карта быть_подписать +1343 |text страховой сумма турфирма нева недостаточно полностью выплатить компенсация клиент компания . заявить председатель комитет вопрос страхование сфера туризм всероссийский союз страховщик передавать новость . учитывать количество турист пострадать неисполнение нева обязательство учёт вводный можно что сумма ущерб очевидно превысить страховой сумма рассказать . слово случай выплата быть распределяться пропорциональный . слово руководитель ростуризм королева тысяча турист приостановить деятельность туркомпания оставаться рубеж . тысяча человек вывезти родина . некоторый турист пожелать доплатить отдых остаться зарубежный курорт конец путёвка . глава ростуризм добавить что ситуация российский турист сталкиваться требование повторно оплатить проживание отель . разрешение подобный инцидент быть создать специальный штаб состоять представитель мчс мид россия ростуризм турпомощь . турфирма нева образовать год заявить приостановка деятельность . решение связать что компания мочь выполнять обязательство клиент . фирма быть застраховать миллион рубль страховой компания восхождение руководство находиться розыск . |ngramms страховой_сумма страховой_сумма выплатить_компенсация клиент_компания председатель_комитет всероссийский_союз _ передавать_риа_новость учитывать_количество рассказать_ _королева тысяча_человек российский_турист подобный_инцидент быть_создать мид_россия приостановка_деятельность что_компания фирма_быть миллион_рубль страховой_компания +1344 |text российский компания икеа дочерний структура одноимённый шведский корпорация возобновлять продажа хота дог быть приостановить как сосиска быть обнаружить конина . сообщать интерфакс . компания ввести дополнительный система контроль качество повысить требование производитель мясной продукция . икеа заявлять что сотрудничать производитель прослеживать путь закупать сырьё . мясокомбинат проводить днк анализ партия сырьё готовый продукция . мебельный приостановить продажа хота дог год как результат тестирование днк использовать компания сосиска завод ремит быть обнаружить след конина . икеа направить проба фрикаделька сосиска днк анализ когда конина быть обнаружить продавать магазин компания чехия мясной продукция . компания продавать хота дог низкий рубль штука цена . сосиска использоваться горячее завтрак яичница цена рубль . икеа обещать что цена возобновление продажа остаться прежний . В россия икеа владеть магазин работать торговый центр мег принадлежать головной шведский группа . В прошлое год выручка российский подразделение компания увеличиться четверть . |ngramms российский_компания дочерний_структура быть_приостановить быть_обнаружить быть_обнаружить быть_обнаружить ввести_дополнительный система_контроль приостановить_продажа как_в_результат компания_продавать рубль_за_штука что_цена В_россия торговый_центр шведский_группа В_прошлое_год российский_подразделение +1345 |text французский транспортный компания mory ducros решить подать заявление начало процедура банкротство восстановление платёжеспособность судебный порядок . сообщаться материал организация . как отмечать presse банкротство быть крупный год когда финансовый несостоятельность объявить moulinex впоследствии право бренд отойти группа seb . le monde писать ссылка материал mory ducros что отчётный период половина год компания потерять миллион евро . выручка период составить миллион евро . В транспортный организация рассчитывать что процедура банкротство позволить получить временной защита кредитор возобновить деятельность минимальный потеря рабочий место . профсоюз ожидать что рамка процедура банкротство быть уволить тысяча сотрудник mory ducros . штат компания составлять тысяча человек . министерство промышленность франция заявлять что mory ducros мочь рассчитывать государственный помощь специальный фонд объесть составлять миллион евро . фонд как быть предоставлять проблемный предприятие кредит ставка существенно рыночный . помощь предоставить компания располагать план восстановление платёжеспособность . |ngramms транспортный_компания решить_подать процедура_банкротство процедура_банкротство процедура_банкротство судебный_порядок как_отмечать быть_крупный отчётный_период миллион_евро миллион_евро миллион_евро период_составить позволить_получить рабочий_место что_в_рамка быть_уволить тысяча_сотрудник компания_составлять тысяча_человек государственный_помощь быть_предоставлять предоставить_компания +1346 |text финал международный конкурс предприниматель год пройти lotte hotel moscow . компания ernst young организатор конкурс . В ход церемония быть объявить победитель российский этап конкурс . представить россия финал предприниматель год состояться монт год . В текущий год финал национальный этап выйти отечественный предприниматель . В оказаться руководитель компания как аэрофлот белый дача трейдинг проф медиа менеджмент . победитель быть назвать десять номинация мастер бизнес промышленный производство молодая предприниматель финансовый сектор цифровой экономика вручить специальный приз . конкурс предприниматель год entrepreneur award проводиться ey год . премия читаться престижный известный награда область предпринимательство . конкурс охватывать город государство . |ngramms международный_конкурс предприниматель_год предприниматель_год предприниматель_год пресс_релиз организатор_конкурс В_ход быть_объявить этап_конкурс представить_россия текущий_год быть_назвать промышленный_производство молодая_предприниматель финансовый_сектор цифровой_экономика +1347 |text распространение единый государственный автоматизированный информационный система учёт объём производство оборот этиловый спирт алкогольный спиртосодержащий продукция мочь привести коллапс отрасль как быть крепкий алкогольный напиток год . сообщать ссылка зампред совет союз российский президент компания сан инбеть губка . представитель отрасль считать что пивовар не_успеть подготовиться внедрение система предлагать срок . отрасль необходимый год приспособиться купить оборудование установить опробовать далёкий нормальный работать губка . эксперт напомнить что необходимый работа автоматический средство учёт объём выпускать продукция быть установить год тестовый режим некоторый пивоваренный предприятие . счётчик постоянно ломаться регистрация поломка уходить неделя посетовать губка . В союз затрудниться оценить потеря производитель приостановка производство губка подчеркнуть что снижение объём производство быть двузначный . согласно одобрить правительство рф законопроект производство пиво подключиться год . предприятие производить тысяча декалитр пиво сидр медовуха год освобождаться требование . ввести рф год учёт производство этиловый спирт алкогольный продукция . этап внедрение система рынок столкнуться серьёзный трудность перерасти коллапс год система прийтись переводить ручной режим работа сопроводительный документация партия отправляться программа бумажный носитель .. |ngramms информационный_система учёт_объём учёт_объём алкогольный_напиток союз_российский президент_компания отрасль_считать внедрение_система внедрение_система выпускать_продукция быть_установить оценить_потеря что_снижение объём_производство правительство_рф производство_пиво алкогольный_продукция режим_работа +1348 |text доля китайский chengdong investment corporation дочерний структура china investment corporation уралкалий составить процент . официальный российский производитель удобрение . chengdong конвертировать акция уралкалий разместить польза облигация . быть выпустить год wadge holdings limited бенефициар являться основной акционер уралкалий . производитель удобрение не_принимать соглашение рамка дать сделка . россия заявить что акция уралкалий интересный зарубежный инвестфонд передавать интерфакс . подробность не_привести . информагентство напоминать что неделя встречаться руководитель крупный мир суверенный фонд abu dhabi investment authority . В время слово государство уралкалий входить не_планировать . состояние текущий год основный акционер уралкалий являться фонд suleyman kerimov foundation процент акция бизнесмен процент скуров процент . В свободный обращение находиться процент ценный бумага компания . сообщаться что доля уралкалий купить бывший глава госстрой . сумма сделка составить миллиард доллар . официально информация продажа не_подтвердиться . претендент актив называть владелец афк система бизнесмен аркадия владелец русснефть норникель . |ngramms investment_corporation investment_corporation дочерний_структура пресс_релиз российский_производитель основной_акционер вице_премьер россия___заявить крупный_в_мир В_то_же_время текущий_год основный_акционер являться_фонд _ _ _ процент_акция бизнесмен__ свободный_обращение ценный_бумага бывший_глава сумма_сделка миллиард_доллар информация_о_продажа владелец_афк аркадия_ +1349 |text бывший исполнительный директор модный дом yves saint laurent ysl денев paul deneve работа корпорация apple . заявить официальный представитель apple уге kristin huguet передавать bloomberg . слово уге пост компания денев заняться apple спецпроект быть подчиняться напрямую генеральный директор корпорация куку . О какой спецпроект идти уге не_уточнить . как указывать денев год занимать позиция европейский подразделение apple . работать департамент продажа маркетинг . руководитель ysl уход денева стать беллеттини francesca bellettini . как возглавить ysl начало год денев являться марка lanvin nina ricci . |ngramms исполнительный_директор корпорация_apple официальный_представитель передавать_bloomberg вице_президент генеральный_директор как_указывать топ_менеджер +1350 |text палата тпп инициировать внесение профильный комитет госдума ряд важный бизнес поправка . лента . сообщить тпп . В палата быть направить поправка применение налоговый вычет размер тысяча рубль отношение приобретение новый кассовый аппарат модернизация иметься касса . указанный вычет предложить распространить затрата замена фискальный накопитель оплата услуга оператор фискальный дать . тпп подготовить изменение правительственный законопроект О валютный регулирование валютный контроль конкретизировать форма срок направление уполномоченный банк отказ осуществление валютный операция . В палата полагать что решение быть направить уполномоченный банк письменный форма поздний рабочий следующий днём вынесение решение . палата инициировать поправка проект закон О контрактный система сфера закупка товар работа услуга обеспечение государственный муниципальный нужда . законопроект предусматривать установление обязательный условие оплата заказчик поставить товар выполнить работа оказать услуга отдельный этап исполнение контракт дата подписание документ приёмка товар работа услуга . поправка тпп рф предлагаться установить сократить срок оплата товар работа услуга контракт поставщик подрядчик исполнитель являться субъект малое предпринимательство социально ориентировать некоммерческий организация . В целое осенний сессия госдума палата осуществить сопровождение законопроект подзаконный нормативный правовой акт уточнить тпп . В цель планирование законотворческий деятельность тпп рф подготовить концепция развитие законодательство рф период год начало следующий год представимый депутатский корпус сообщить президент тпп рф . В год планировать существенно усилить экспертный присутствие законотворческий процесс сохранить лидировать место часть крупный объединение предприниматель . |ngramms торгово_промышленный комитет_госдума пресс_служба пресс_служба быть_направить применение_налоговый тысяча_рубль приобретение_новый что_такой_решение закупка_товар обязательный_условие выполнить_работа оказать_услуга исполнение_контракт субъект_малое В_целое В_цель концепция_развитие законодательство_рф следующий_год сообщить_президент рф__ год_планировать +1351 |text банк россия отозвать лицензия страховой компания страховой общество трубопроводный транспорт соты транс приостановить действие лицензия страховой брокер экономика cтрахование . сообщаться сайт регулятор . причина отзыв лицензия стать отказ страховщик осуществлять деятельность предусмотренный лицензия . деятельность экономика страхование приостановить что компания не_исполнить предписание цб надлежащий образ . соты транс быть создать год имущественный экологический страхование предприятие организация . компания быть дочка страховой компания транснефть . экономика страхование предоставлять услуга связанный заключение исполнение договор страхование перестрахование . банка россия год компания занять десять место российский брокер размер доход . |ngramms банк_россия страховой_компания страховой_компания приостановить_действие отзыв_лицензия стать_отказ осуществлять_деятельность экономика_страхование экономика_страхование что_компания компания_быть предоставлять_услуга договор_страхование банка_россия компания_занять +1352 |text продажа новый автомобиль франция год упасть процент сравнение период год . сообщать местный организация автопроизводитель ccfa традиционный обзор . дать ccfa видно что гораздо сильный среднее рынок обвалиться продажа французский марка renault минус процент citroen минус процент . У группа peugeot citroen продажа сократиться процент . произойти что peugeot показатель составить минус процент . группа renault процент машина маленький год . месяц начало год продажа автомобиль крупный рынок евросоюз упасть процент тысяча авто . фон французский производитель выделяться зарубежный марка удаться серьёзно улучшить положение местный рынок . продажа toyota франция подняться процент fiat процент . спад европейский автомобильный рынок продолжаться год . европеец реж покупать машина рецессия ес сказываться доход большинство житель регион . В объём продажа новый авто вырасти европа впервые месяц рост составить скромный процент сравнение период год . отмечаться что французский итальянский рынок продолжать сокращаться . |ngramms продажа_новый местный_организация французский_марка показатель_составить машина_маленький продажа_автомобиль тысяча_авто местный_рынок автомобильный_рынок большинство_житель объём_продажа рост_составить +1353 |text компания макдоналдс венесуэла прекратить продажа биг маковый проблема поставка сырьё сообщать el universal . информация издание ресторан отсутствовать булочка приготовление сэндвич . В компания заявить что ситуация носить временный характер . венесуэльский подразделение заниматься решение сложиться ситуация . выбирать поставщик предоставить продукция отвечать стандарт качество сообщить компания . макдоналдс прекращать продажа картофель фри венесуэла нехватка сырьё приготовление отмечать новость . С год посетитель ресторан предлагать альтернатива местный корень юкка подаваться жареный солёный вид . сотня манифестант каракас выйти президентский дворец мирафлорес лозунг нужный еда . стихийный протест начаться многочасовой очередь магазин близлежащий район как возле торговый злоумышленник попытаться угнать грузовик продовольствие . сила правопорядок применить митинговать слезоточивый газ . крупный производитель популярный газировать напиток мексиканский компания femsa сообщить что нехватка ингредиент завод венесуэла скорый время мочь приостановить производство дать марка вода . компания работать условие острый дефицит сахара являться важный компонент напиток . как отмечаться поставщик практически перестать доставлять новое партия товар отсутствие сырьё . В венесуэла продолжаться экономический политический кризис . экономия электроэнергия местный власть сократить рабочий неделя бюджетник . наблюдаться нехватка продовольствие медикамент . государство быть вынудить открыть граница соседний колумбия житель страна мочь закупиться товар сопредельный страна . десяток тысяча человек воспользоваться возможность . В международный валютный фонд мвф полагать что инфляция страна итог текущий год составить процент процент . |ngramms прекратить_продажа поставка_сырьё В_компания что_ситуация сложиться_ситуация стандарт_качество сообщить_в_компания посетитель_ресторан крупный_производитель мексиканский_компания coca_cola скорый_время приостановить_производство как_отмечаться политический_кризис местный_власть рабочий_неделя быть_вынудить страна_мочь тысяча_человек валютный_фонд текущий_год_составить +1354 |text государство намерить ужесточить контроль ростелеком . номер писать газета коммерсантъ ссылка письмо глава росимущество дергуновый аркадия . дергуновый послание что член совет директор двое являться профессиональный поверить представлять интерес государство . подобный структура совет директор сложиться летом год когда росимущество владеть процент акция компания . ведомство нарастить пакет процент акция . сведение коммерсант глава росимущество настаивать изменить статус отдельный директор профессиональный поверить переизбрать совет директор внеочередной собрание акционер . дергуновый выступать расширение полномочие совет директор . В глава росимущество предлагать наделить орган право одобрение сделка дочерний предприятие ростелеком акция доля акционерный общество . инициатива дергуновый являться акционерный соглашение росимущество внешэкономбанк контролировать процент акция ростелеком . управление процент акция телекоммуникационный компания принадлежать дочерний структура ростелеком компания мобитело мочь быть создать триумвират правительство рф вэб ростелеком . ростелеком готовиться создание сп россия заняться оказание услуга мобильный . В год ростелеком быть приватизировать . компания услуга пользоваться свыше миллион человек регион страна . |ngramms писать_газета глава_росимущество глава_росимущество глава_росимущество вице_премьер аркадия_ совет_директор совет_директор совет_директор совет_директор представлять_интерес процент_акция_компания процент_акция процент_акция процент_акция собрание_акционер одобрение_сделка дочерний_предприятие акционерный_общество телекоммуникационный_компания дочерний_структура мочь_быть_создать правительство_рф услуга_пользоваться регион_страна +1355 |text банк москва подать арбитражный суд иск признание банкрот бывший владелец черкизовский рынок основатель группа исмаиловый . сообщать коммерсантъ . как иск подать арбитражный суд москва год банк предоставить кредит сумма миллион доллар ооо голландский tropicano finance B . V . компания как банк москва быть связать бенефициар дать личный поручительство возврат кредит установленный срок . процент основной долг как следовать иск выплатить не_быть . В результат задолженность исмаиловый как поручитель учёт пеня просрочить процент достигнуть миллион доллар . В банка москва посчитать что поскольку длительный время не_исполнять денежный обязательство являться неплатёжеспособный . В юрист банка попросить арбитраж признать исмаиловый несостоятельный ввести процедура реструктуризация долг гражданин . В группа втб структура входить банк москва подтвердить факт подача иск . бизнесмен никак не_прокомментировать ситуация . информация коммерсант попытка банка москва урегулировать вопрос задолженность бывший владелец черкизовский рынок . мещанский суд москва наложить арест имущество исмаиловый земельный участок деревня сколково одинцовский район двухкомнатный квартира рабочий посёлок заречье жилой дом участок посёлок апрелевка нарый фоминский район . иск признание исмаиловый банкрот стать подать соответствие закон банкротство физический лицо вступить сила . предполагать что суд мочь заявление банкротство гражданин случай сумма просрочить задолженность превышать тысяча рубль . должник мочь предоставить возможность отсрочка выплата дисконтировать долг уменьшить величина процент размер ключевой ставка цб . кредитор заявление банкротство суд мочь подать физический лицо . суд иметь право ограничить выезд гражданин граница завершение процедура реализация имущество . В рамка погашение долг имущество человек быть торг . В мочь быть драгоценность иной предмет роскошь недвижимость . |ngramms банк_москва банк_москва банк_москва арбитражный_суд иск_о_признание иск_о_признание бывший_владелец бывший_владелец основатель_группа _ _ год_банк миллион_доллар миллион_доллар установленный_срок основной_долг В_результат В_банка арбитраж_признать ввести_процедура реструктуризация_долг пресс_служба группа_втб подтвердить_факт подача_иск не_прокомментировать_ситуация банка_москва суд_москва жилой_дом закон_о_банкротство физический_лицо физический_лицо вступить_в_сила заявление_о_банкротство задолженность_превышать тысяча_рубль предоставить_возможность ставка_цб мочь_подать иметь_право В_рамка погашение_долг +1356 |text петербургский автозавод toyota hyundai nissan general motors gm завод псм русый производство peugeot citroen mitsubishi калуга запустить производство год подтвердить предприятие . остаться приостановить производство завод ford sollers город всеволжск ленинградский область автоваз производство автомобиль chevrolet niva gm автоваз . калининградский автотор заработать год . автозавод выпускаться модель автомобиль . gm производить модель cadillac модель chevrolet opel astra . предприятие nissan собирать модель teana murano pathfinder . завод toyota выпускать седан camry hyundai модель hyundai solaris kia rio . петербургский завод уйти каникулы год псм русый остановить конвейер год . калужский предприятие пояснить что завод традиционно проводить плановый технический остановка период новогодний праздник . В быть решить приостановить производство ранний обычный наличие достаточный запас продукция ожидать влияние текущий экономический ситуация динамик автомобильный рынок месяц год . С сотрудник псм русый быть отправить внеплановый отпуск сохранение заработный плата размер оклад . завод ford sollers производство быть остановить год причём завод простаивать . завод ford sollers совместный предприятие американский ford motor company российский компания соллерс собирать модель focus mondeo . С год завод перейти сократить четырехдневный рабочий неделя . В завод быть работать режим неполный рабочий неделя уточнить предприятие . как сообщить автоваз завод быть новогодний каникулы предприятие неделя уйти единый корпоративный отпуск . как показывать практика рынок продажа автомобиль активный соответственно производство автомобиль необходимый уменьшать учёт запрос рынок компания . калининградский завод автотор остановка конвейер продиктовать необходимость проведение комплекс ремонтный профилактический работа монтажный работа никак не_связать ситуация валютный рынок . сообщать представитель компания . калининградский автозавод производить семь модель bmw модель kia chevrolet модель chevrolet модель cadillac модель hyundai . росстат месяц российский автозавод выпустить миллион легковой автомобиль . процент маленький год . В агентство автостат подсчитать что россия быть новый легковой автомобиль порядок миллион штука что процент маленький год когда продажа составить миллион штука . |ngramms general_motors запустить_производство пресс_служба пресс_служба пресс_служба приостановить_производство приостановить_производство ford_sollers ford_sollers ford_sollers ленинградский_область производство_автомобиль производство_автомобиль санкт_петербург модель_автомобиль nissan_собирать петербургский_завод что_завод новогодний_праздник быть_решить текущий_экономический автомобильный_рынок быть_остановить совместный_предприятие американский_ford российский_компания рабочий_неделя рабочий_неделя быть_работать как_сообщить пресс_центр пресс_центр завод_быть новогодний_каникулы корпоративный_отпуск как_показывать продажа_автомобиль представитель_компания модель_chevrolet легковой_автомобиль легковой_автомобиль процент_маленький процент_маленький миллион_штука миллион_штука продажа_составить +1357 |text харьковский тракторный завод хтз остановить работа сотрудник отправить неоплачиваемый отпуск . сообщаться предприятие . производство остановить что терминал харьковский таможня быть приостановить оформление декларация основный поставщик завод семь российский предприятие . харьковский таможня скопиться фура двигатель краска ожидать таможенный оформление железнодорожный вагон металл рассказать агентство гендиректор завод . слово предприятие быть десятидневный запас комплектовать завод смочь продержаться время . В сообщение хтз отмечаться что украинский власть не_объяснить почему приостановить оформление таможенный декларация российский поставщик комплектовать . состояние год контролировать акционер завод быть бизнесмен ярославский принадлежать процент акция хтз . доля процент акция находиться собственность государство . остальной ценный бумага принадлежать миноритарий находиться свободный обращение . К год ярославский процент акция хтз группа газ дерипаск . харьковский тракторный завод быть основать год . В год объесть производство предприятие превысить тысяча трактор выручка составить миллион гривна миллион доллар . |ngramms остановить_работа пресс_релиз быть_приостановить основный_поставщик российский_предприятие таможенный_оформление железнодорожный_вагон рассказать_агентство _ предприятие_быть В_сообщение украинский_власть оформление_таможенный российский_поставщик контролировать_акционер завод_быть бизнесмен_ процент_акция процент_акция процент_акция находиться_в_собственность ценный_бумага свободный_обращение _дерипаск год_объесть производство_на_предприятие миллион_гривна миллион_доллар +1358 |text производитель устрица крым мочь получить разрешение участок ферма . препятствовать военный учёный рассказать руководитель компания крымский морепродукт яхонт лтд . слово исполнительный директор крымский морепродукт проблема начаться приобретение установка оборудование ферма выращивание устрица . деятельность предприниматель озеро донузлав евпатория выступить черноморский флот . предприятие прийтись обратиться правительство просьба помощь . черноморский компания крымский морепродукт начало работать полуостров прошлое год осень быть установить необходимый оборудование . сидеть миллион устрица садка стоять коллектор тонна мидия . есть хозяйство являться крупный чёрный мор работать рассказать мазан . В развитие ферма донузлав вложить миллион рубль . этап масштабный проект объём инвестиция миллиард рубль отмечать агентство . крупный производство появиться город возникнуть сложность документация есть разрешение морской участок отсутствовать согласование суша . дать федеральный агентство научный организация . отказывать ссылаться что прибрежный территория являться режимный район где запретить судоходство . С аналогичный проблема столкнуться устричный хозяйство компания яхонт лтд год приход крымский морепродукт оставаться единственный производитель устрица крым урожай тысяча штука год . руководитель кулик пояснить агентство что год истечь срок действие режим специальный товарный рыбный хозяйство гектар акватория . участок арендовать бизнесмен претендовать . крым севастополь войти состав россия итог референдум состояться год . воссоединение россия поддержать процент житель полуостров процент севастополец . |ngramms исполнительный_директор _ проблема_начаться установка_оборудование предприятие_прийтись обратиться_в_правительство начало_работать быть_установить необходимый_оборудование чёрный_мор миллион_рубль миллиард_рубль отмечать_агентство город_ морской_участок федеральный_агентство аналогичный_проблема оставаться_единственный тысяча_штука пояснить_агентство срок_действие войти_в_состав россия_по_итог житель_полуостров +1359 |text фонд будущее работать патронат глава компания лукойл инвестировать развитие социальный предпринимательство россия миллион рубль . как сообщить бизнесмен лента . основный функция фонд столько оказывать материальный поддержка социальный предприниматель сколько обеспечивать имя юридический технологический поддержка . подготовка экономический обоснование структурирование иной идея понимать реализоваться нет сколько деньга нужно какой срок окупаемость какой социальный значимость заключаться как человек регион целое подчеркнуть . бизнесмен рассказать что вопрос развитие социальный предпринимательство крайне важный россия мир целое . понимать значимость направление развитие бизнес многий страна открывать специальный факультет профильный учебный заведение где заниматься подготовка кадр сегмент . осуществляться поддержка государственный уровень . открытый специальный департамент министерство экономический развитие рф . бизнес быть развиваться . суть являться помощник государство решение социальный проблема выполнение социальный обязательство население прокомментировать . фонд региональный социальный программа будущее создать год реализация долгосрочный социально значимый программа проект где мочь быть применимый принцип социальный предпринимательство . фонд взаимодействовать ведущий российский зарубежный организация влиять развитие социальный предпринимательство мир . С год фонд входить глобальный сеть социальный инвестор . |ngramms глава_компания _ _ инвестировать_в_развитие социальный_предпринимательство социальный_предпринимательство социальный_предпринимательство социальный_предпринимательство миллион_рубль как_сообщить какой_срок подчеркнуть_ что_вопрос крайне_важный развитие_бизнес многий_страна государственный_уровень экономический_развитие быть_развиваться социальный_проблема социальный_программа год_для_реализация мочь_быть ведущий_российский +1360 |text крупный российский автопроизводитель автоваз планировать запустить производство кроссовер lada lada cross год . президент автоваз бу андерссон передавать . В год планироваться запустить lada lada cross . андерссон пообещать что новое автомобиль быть революционный продукт . lada lada cross входить тройка ожидать автомобиль автоваз . производство модель тройка автомобиль lada vesta быть запустить год . президент автоваз сообщить что новое модель запускаться цель возвращение доля рынок . итог первое полугодие год доля автомобиль марка lada оцениваться процент рынок . андерссон планировать вернуть процент рынок . концепт кроссовер lada быть представить автоваз московский международный автосалон год . автомобиль быть создать руководство директор дизайн автоваз британский автомобильный дизайнер маттина . маттина заниматься дизайн автомобиль mercedes benz volvo . |ngramms крупный_российский планировать_запустить бу_андерссон год_планироваться что_новое что_новое автомобиль_быть lada_vesta быть_запустить доля_рынок первое_полугодие год_доля процент_рынок процент_рынок быть_представить быть_создать заниматься_дизайн автомобиль_mercedes +1361 |text металлургический компания мечело получить распоряжение власть самопровозгласить донецкий народный республика днр введение временной госадминистрация управление имущественный комплекс донецкий электрометаллургический завод . релиз поступить редакция лента . . мечело существовать риск утрата контроль неопределённый срок будущий производственный коммерческий деятельность сообщение . документ получить металлургический холдинг датировать год подписать председатель совет министр днр . В немой введение временной государственный администрация донецкий электрометаллургический завод создание база государственный предприятие юзовский металлургический завод передача имущество пользование дать предприятие . В релиз отмечаться что проблема завод не_оказать существенный влияние финансовый результат компания поскольку производственный деятельность быть остановить год . компания сообщать что проводить юридический экспертиза ситуация случай необходимость предпринять мера защита право интерес . И . . министр промышленность торговля днр заявить новость что власть самопровозгласить республика готовый быть вернуть мечело имущество завод российский компания пообещать возобновить работа предприятие . власть республика готовый быть вернуть собственность российский холдинг днр получить признание международный правовой добавить . группа мечело основный собственник являться родственник крупный российский компания . В работать тысяча человек . |ngramms металлургический_компания народный_республика поступить_в_редакция существовать_риск коммерческий_деятельность металлургический_холдинг председатель_совет _ В_немой государственный_администрация государственный_предприятие В_релиз финансовый_результат производственный_деятельность быть_остановить проводить_юридический промышленность_и_торговля __заявить что_власть готовый_быть готовый_быть имущество_завод российский_компания возобновить_работа российский_холдинг получить_признание добавить_ основный_собственник горно_металлургический тысяча_человек +1362 |text депутат справедливый россия попросить счётный палата проверить эффективность расход транснефть нефтепровод заполярье пурпа . как писать номер газета коммерсантъ госкомпания обвинять завышение цена закупка опорный конструкция трубопровод . В транснефть претензия назвать необоснованный . В коллективный запрос депутат направить председатель счётный палата что предложение транснефть закупка опора трубопровод заполярье пурпа начальный стоимость быть установить уровень миллиард рубль максимальный миллиард рубль . выиграть тендер провести середина год компания конары . материал транснефть следовать что участник тендер являться компания востокметаллургмонтаж . В запрос что условие заключённый договор стоимость тонна металлический опора составить тысяча рубль рыночный стоимость примерно сто тысяча рубль тонна . автор запрос оценить ущерб государство контролировать транснефть десять миллиард рубль . В госкомпания обвинение неэффективность трата опровергнуть . транснефть заявить что подобный запрос являться результат спорый хозяйствовать субъект когда проиграть тендер сторона недовольный результат . нефтепровод заполярье пурпа протяжённость километр являться частью трубопроводный система заполярье пурпа самотлор . система нефть быть перекачиваться месторождение ямало ненецкий автономный округа север красноярский край . участок пурпа самотлор быть ввести эксплуатация год строительство заполярье пурпа план завершиться конец год . совокупный стоимость сооружение заполярье пурпа оцениваться миллиард рубль . |ngramms эффективность_расход как_писать цена_закупка запрос_депутат направить_председатель _ быть_установить миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль выиграть_тендер что_участник что_по_условие тысяча_рубль рыночный_стоимость ущерб_государство пресс_секретарь __заявить что_подобный являться_частью нефть_быть автономный_округа красноярский_край быть_ввести стоимость_сооружение +1363 |text белорусский государственный комитет стандартизация не_обнаружить нарушение показатель безопасность итог проверка кондитерский продукция выпустить украинский корпорация росить roshen . ведомство сообщить ход онлайн конференция . как специалист госстандарт проверка коснуться наименование кондитерский изделие roshen . вредный вещество продукция украинский кондитер не_быть обнаружить ведомство выявить случай реализация кондитерский изделие истекший срок годность нарушение маркировка отсутствие необходимый сопроводительный документ . проверка кондитерский изделие roshen провести страна снг казахстан киргизия таджикистан армения молдавия . нарушение связанный производство сладость соответствующий ведомство не_обнаружить . В россия конец текущий год продукция roshen выпустить украинский фабрика компания запретить ввоз . ограничение быть ввести роспотребнадзор как специалист российский служба выявить сладость украинский кондитер повышенный содержание канцерогенный вещество бензпирен . К продукция roshen произвести российский фабрика компания липецк претензия роспотребнадзор нет . roshen выпускать вид кондитерский изделие шоколад шоколадный конфета печение вафля торт известный киевский . предприятие компания расположить украина россия литва венгрия . |ngramms кондитерский_продукция украинский_корпорация сообщить_в_ход проверка_коснуться кондитерский_изделие кондитерский_изделие кондитерский_изделие кондитерский_изделие вредный_вещество продукция_украинский не_быть_обнаружить В_россия текущий_год продукция_roshen продукция_roshen украинский_фабрика быть_ввести служба_выявить фабрика_компания roshen_выпускать компания_расположить +1364 |text предприниматель процент акция компания сибур . сообщать предприятие . доля приобрести ооо яуза единственный учредитель владелец являться зампред правление сибур . образ довести доля сибур процент . пакет сократиться процент . сумма сделка не_уточняться . процент акция владеть председатель совет директор сибур михельсон . войти капитал сибур год купить доля михельсон . пакет составлять процент . сибур крупный россия нефтехимический холдинг . владеть предприятие переработка углеводородный сырьё работать порядок тысяча человек . компания реализовать продукция страна мир . |ngramms _ _ _ процент_акция_компания пресс_служба зампред_правление сумма_сделка процент_акция председатель_совет_директор купить_доля крупный_в_россия работать_порядок тысяча_человек реализовать_продукция страна_мир +1365 |text автоваз намеренный оснастить автомобиль lada vesta новый двигатель . сообщаться автопроизводитель поступить редакция лента . . В сообщение отмечаться что президент компания мор побывать ижевский автозавод . глава автоваз что ижевский площадка где выпускаться vesta продолжить развиваться . намерить развивать успех . В работа экспорт внедрение новый опция двигатель приводиться сообщение слово мор . В настоящее время новинка автоваз комплектоваться клапанный литровый двигатель мощность лошадиный сила . В предприятие не_стать уточнять какой новый силовой установка намерить установить lada vesta . вариант силовой установка литр мощность лошадиный сила сильный литровый двигатель иметь новинка автоваз lada xray . время поездка ижавто президент автоваз рассказать постоянный работа поставщик комплектовать нацелить улучшение качество продукция конкурентоспособность передавать . как отмечать агентство настоящее время конвейер ижевский завод производить lada granta модель nissan сходить автомобиль сутки . ижавто планировать выпускать тысяча vesta год план текущий год тысяча машина . ижевский завод год планировать произвести тысяча автомобиль . газета ведомость ссылка источник что автоваз вдвое увеличить производство модель lada vesta завод ижевск машина сутки . новый флагманский модель волжский автозавод lada vesta быть запустить производство год . выбор покупатель предлагаться вариант роботизированный механический коробка передача . входить десятка продавать автомобиль российский рынок . стоимость автомобиль минимальный комплектация составлять тысяча рубль комплектация comfort luxe тысяча тысяча рубль . |ngramms lada_vesta lada_vesta lada_vesta lada_vesta пресс_релиз поступить_в_редакция В_сообщение_отмечаться президент_компания_ внедрение_новый В_настоящее_время пресс_служба силовой_установка силовой_установка поставщик_комплектовать качество_продукция как_отмечать автомобиль_в_сутки текущий_год тысяча_машина год_планировать тысяча_автомобиль вдвое_увеличить покупатель_предлагаться продавать_автомобиль тысяча_рубль тысяча_рубль +1366 |text предприниматель приобрести структура блокировать пакет акция группа компания ск мост сообщить лента . представитель тувинский энергетический промышленный корпорация тэпк байсаров . сумма сделка не_раскрыть . представитель принадлежащий volga group куревино подтвердить что volga большой не_являться акционер ск мост контролировать структура не_принадлежать процент акция строительный компания . дальнейший комментарий отказаться . В появиться неофициальный информация что stg holding процент плюс акция ск мост действующий акционер компания . В ск мост информация опровергать . источник знакомый структура сделка сообщить лента . что продажа блокпакет акционер не_состояться . В настоящее время сделка проходить структура господин байсаров . В продолжаться процесс оформление добавить . слово источник близкий volga group рамка реструктуризация портфель строительный актив группа решение выход некоторый компания ск мост группа избавиться доля строительный компания . В быть достигнуть договорённость являться основный акционер ск мост суром выкуп доля . этап реализация сделка сторона возникнуть разногласие результат что завершить не_удаться . В представитель структура выйти управлять орган ск мост покинуть совет директор компания . что интерес блокпакет ск мост проявить предложить имя условие устроить продавец . группа компания ск мост крупный российский компания объединять мостостроительный тоннельный подразделение . группа реализовать ряд крупный строительный проект строительство мост остров русский пролив босфор восточный протяжённость километр совместить автомобильный железный дорога адлер альпик сервис сочи . ск мост мочь строительство железнодорожный линия элегест кызыл курагино элегестский угольный месторождение тува проект реализоваться тэпк запас миллиард тонна сообщить лента . тэпк . стройтрансгаз рассматриваться как генподрядчик ск мост как субподрядчик строительство керченский мост . проект отказаться итог генподрядчик стать стройгазмонтаж аркадия . В настоящее время кризисный ситуация строительный отрасль приводить финансовый несостоятельность крупный российский строительный организация как инжтрансстрой подрядчик строительство впп шереметьево нпо мостовик основный подрядчик стройка саммит атэс олимпиада сочи . |ngramms _ _ _ пакет_акция ск_мост ск_мост ск_мост ск_мост ск_мост ск_мост ск_мост ск_мост ск_мост ск_мост сумма_сделка принадлежащий_ group_ не_являться_акционер процент_акция строительный_компания строительный_компания процент_плюс акционер_компания структура_сделка что_продажа В_настоящее_время В_настоящее_время актив_группа быть_достигнуть основный_акционер __и_ реализация_сделка структура_ управлять_орган совет_директор_компания предложить_имя группа_компания крупный_российский_компания ряд_крупный строительство_мост железный_дорога строительство_железнодорожный угольный_месторождение миллиард_тонна рассматриваться_как керченский_мост аркадия_ крупный_российский строительный_организация +1367 |text гражданский самолёт сухой гсс лизинговый компания ифк авиасалон фарнборо подписать контракт поставка восемь самолёт sukhoi superjet ssj . сообщать . генеральный директор ифк пояснить агентство что восемь самолёт быть поставить очередь европейский авиакомпания . какой авиаперевозчик получить ssj не_сказать добавить что переговоры потенциальный клиент вестись фарнборо . договор подписываться рамка развитие твёрдый контракт поставка самолёт ssj быть заключить гсс ифк прошлогодний авиасалон . сообщить что поставка самолёт начаться год закончиться первое второе квартал . В рамка поставка впервые быть применить механизм гарантия остаточный стоимость компенсировать покупатель снижение цена самолёт вторичный рык . цена летательный аппарат опускаться гарантировать остаточный стоимость производитель возмещать покупатель разница оговорить заранее предел . sukhoi superjet ближнемагистральный пассажирский самолёт создать зао гражданский самолёт сухой подразделение холдинг сухой сотрудничество иностранный компания alenia aeronautica snecma boeing . проект разрабатываться год . полёт самолёт совершить поставка заказчик начаться год . В начало стоимость ssj подняться миллион доллар самолёт . |ngramms гражданский_самолёт_сухой гражданский_самолёт_сухой лизинговый_компания _ контракт_на_поставка контракт_на_поставка восемь_самолёт восемь_самолёт sukhoi_superjet sukhoi_superjet генеральный_директор __пояснить быть_поставить потенциальный_клиент самолёт_ssj _также_сообщить что_поставка второе_квартал В_рамка снижение_цена пассажирский_самолёт иностранный_компания В_начало +1368 |text банк россия отозвать лицензия страховой группа уралсиб оказание услуга страхование осаго следовать сообщение сайт регулятор . решение добровольный отказ фирма осуществление связанный автострахование деятельность . вступать сила опубликование . уралсиб передать обязательство осаго ао страховой компания опора . компания быть передать портфель договор каско . В конец регулятор лишить лицензия страховой компания московия входить объём сбор . отзыв произойти несоблюдение требование финансовый устойчивость платёжеспособность часть формирование резерв . В год председатель совет директор совладелец крупный частное российский банк авено заявить что ближний год центробанк провести масштабный отзыв лицензия компания . |ngramms банк_россия страховой_компания страховой_компания компания_быть_передать лишить_лицензия председатель_совет_директор российский_банк альфа_банк что_в_ближний провести_масштабный отзыв_лицензия +1369 |text глава почта россия страшновый назвать ситуация выплатить премия перегретый предложить пересчитать вознаграждение руководитель государственный компания . заявить журналист воскресение передавать . слово выплатить вознаграждение полностью соответствовать требование законодательство предъявляться государственный компания руководитель . начисление премия почта россия министерство массовый коммуникация руководствоваться законный акт . посчитать что неправильный некорректный наверное нужно менять система целое соответственно пересчитать вознаграждение руководитель государственный компания страшновый . глава почта россия уточнить что не_контактировать представитель следственный комитет россия скр материал проверка премия передавать новость . представление генпрокуратура контакт не_быть . обыск не_быть следственный действие не_быть заявить страшновый . глава почта россия выразить удивление возрасти интерес зарплата бонус намерение прокуратура возбудить уголовный . заявить что не_видеть причина отказываться выплатить вознаграждение как быть начислить государство . слово поступить директива возврат средство стать плохой прецедент рынок . генпрокуратура россия направить следователь материал возбуждение уголовный статья ук рф злоупотребление полномочие выплатить премия размер миллион рубль . сумма рассчитываться исходить прибыть миллиард рубль . как прокуратура прибыль образоваться счёт получить федеральный бюджет миллиард что позволить перекрыть убыток . выплата год быть согласовать . подсчёт ведомство гонорар быть составить миллион рубль . В минкомсвязи очередь счесть обвинение адрес страшновый необоснованный . |ngramms почта_россия почта_россия почта_россия почта_россия государственный_компания государственный_компания государственный_компания заявить_журналист полностью_соответствовать требование_законодательство массовый_коммуникация следственный_комитет материал_проверка передавать_риа_новость следственный_действие россия_направить ук_рф злоупотребление_полномочие миллион_рубль миллион_рубль миллиард_рубль федеральный_бюджет что_позволить год_быть топ_менеджер В_минкомсвязи обвинение_в_адрес +1370 |text авиакомпания emirates открыть новый сервис наиболее состоятельный клиент . как следовать сообщение официальный сайт компания смочь арендовать нужда целый самолёт . В сообщение отмечаться распоряжение клиент быть предоставлять особый модификация лайнер airbus . базовый модель отличаться значительно снизить вместительность человек повышенный комфортабельность . В пассажир новый самолёт быть собственный купе впрочем габарит существенно уступать железнодорожный . В обстановка купе входить кресло раскладываться полноценный кровать столик гостевой сидение дюймовый телевизор . кабинка снабдить раздвижной дверь помощь клиент желание смочь отгородиться попутчик . салон самолёт есть крупный отсечь рассчитать пассажир одновременно . В зависимость пожелание клиент мочь выполнять функция банкетный зал гостиный кабинет деловой переговоры . необходимый трансформация занимать минимум время теоретически мочь производиться полёт . время полёт клиент авиакомпания смочь свободно разговаривать мобильный телефон пользоваться интернет время как обычно самолёт запретить . В сообщение отмечаться что борт специальный версия есть ванная комната душ . стоимость заказ самолёт сообщение не_уточняться . авиакомпания не_сообщать заказывать новый услуга . базироваться дубай emirates входить крупный авиакомпания мир . В авиапарка есть самолёт необычный интерьер . В рассчитать человек салон установить дюймовый экран высокотехнологичный подставка стакан салон первое класс есть душевая . |ngramms новый_сервис В_сообщение_отмечаться В_сообщение_отмечаться быть_предоставлять лайнер_airbus значительно_снизить самолёт_быть мини_бар мочь_выполнять мобильный_телефон стоимость_заказ новый_услуга авиакомпания_мир эконом_класс +1371 |text исполнять обязанность гендиректор росатом назначить локшина передавать новость . выход указ президент россия назначение новое генеральный директор госкорпорация локшина поручить осуществлять оперативный руководство атомный отрасль сообщить агентство официальный госкорпорация . уточнить что назначение локшина соответствовать установленный порядок соответствие время отсутствие гендиректор обязанность исполнять заместитель операционный управление . президент россия подписать указ назначение возглавлять росатом замруководитель администрация кремль . указ освободить должность первое замглавы ап . занимать пост генеральный директор госкорпорация росатом год год возглавлять федеральный агентство атомный энергия . С год быть полномочный представитель президент приволжский федеральный округа . |ngramms исполнять_обязанность назначить_ передавать_риа_новость президент_россия генеральный_директор генеральный_директор _ _ _ атомный_отрасль сообщить_агентство установленный_порядок операционный_управление президент_россия__ подписать_указ занимать_пост федеральный_агентство атомный_энергия год_он_быть федеральный_округа +1372 |text tesla motors подать суд тодда катец финансовый директор американский компания нефтесервисный фирма quest integrity group сиэттл штат вашингтон сша . как сообщать forbes катц обвиняться попытка выдать глава tesla маска цель получить конфиденциальный сведение электромобиль model . В документ поступить высокий суд округа сант штат калифорния утверждаться что главное финансист tesla поступить письмо почтовый ящик адрес напоминать некогда пользоваться маск . послание быть подписать инициал . истец сообщение содержимый просьба выслать финансовый прогноз дать предзаказ model . В tesla motors полагать что отправка письмо стоить катц заинтересовать лицо имя не_называться . разглашение информация не_произойти . tesla требовать quest integrity group выплатить компенсация сумма не_определить . получить комментарий катец издание не_удаться . tesla motors объяснять что серийный выпуск первое массовый электромобиль model планироваться начать год . компания производить модель автомобиль седан model S кроссовер model X . бизнесмен маск основать компания spacex производить ракета космический корабль tesla motors создавать электромобиль инициировать проект hyperloop гибридный транспортный система вакуумный поезд состав магнитный подушка маглевый . участвовать создание компания paypal заниматься электронный платёж solarcity специализация солнечный энергетика . spacex получить контракт наса доставка астронавт мкс . маск пообещать год отправить первое человек марс . |ngramms tesla_motors tesla_motors tesla_motors tesla_motors финансовый_директор американский_компания как_сообщать _маска В_документ суд_округа штат_калифорния _ быть_подписать выплатить_компенсация получить_комментарий серийный_выпуск бизнесмен_ основать_компания проект_hyperloop транспортный_система участвовать_в_создание электронный_платёж получить_контракт +1373 |text компания bhp billiton крупный добывать концерн мир сократить добыча нефть сланцевый месторождение сша уменьшить установка эксплуатация процент фон обвал цена нефть . позволить компания повысить эффективность работа сообщение компания . программа инвестиция сланцевый проект пересматриваться . установка bhp эксплуатация сша быть снизить . bhp характеризовать сланцевый проект сша как основный объект капиталовложение . согласно скорректировать план инвестиция компания геологоразведка нефть год быть процент маленький предполагаться составить миллион доллар . мировой цена нефть вновь снизиться непродолжительный подъём . образ рынок отреагировать ухудшение прогноз международный валютный фонд рост мировой экономика . цена нефть сорт brent упасть процент доллар баррель стоимость марка wti снизиться процент доллар баррель . министр энергетика оаэ сухейль признать неспособность организация страна экспортёр нефть опека защитить цена нефть призвать соотносить объём добывать энергоресурсы темп развитие мировой экономика . слово ключевой фактор перепроизводство стать добыча сланцевый нефть быть скорректировать очередь . |ngramms англо_австралийский добыча_нефть сланцевый_месторождение _установка _установка цена_на_нефть цена_на_нефть цена_на_нефть повысить_эффективность сланцевый_проект сланцевый_проект быть_снизить основный_объект год_быть процент_маленький миллион_доллар валютный_фонд мировой_экономика мировой_экономика цена_нефть доллар_за_баррель доллар_за_баррель министр_энергетика _ добыча_сланцевый +1374 |text занимать должность генеральный директор трансаэро настаивать что истинный гендиректор авиакомпания . сообщать интерфакс ссылка приказ выпустить . В документ что действие документ быть выпустить подпись называть новый гендиректор трансаэро приостанавливаться . слово не_получать никакой документ уведомлять отставка . генеральный директор аэрофлот заявить что собственный слово предъявить протокол заочный совет директор трансаэро . снять почему прислать как работать ? выразить удивление глава аэрофлот . подчеркнуть что быть назначить пост гендиректор трансаэро решение очный совет директор авиакомпания председательство . относительно назначение новый руководитель трансаэро заявить что нет егрюла не_видеть система . трансаэро опубликовать официальный сообщение смена выходец аэрофлот управлять компания . быть освободить должность гендиректор решение совет директор . сообщаться что совет директор трансаэро назначить пост гендиректор заместитель лётный руководитель авиакомпания действующий пилот сын бывший замминистра транспорт совладелец сибирь слово советоваться покупка контрольный пакет трансаэро . возглавить трансаэро когда крупный российский авиакомпания планировать купить процент плюс акция величина перевозчик оказаться грань банкротство . сделка не_состояться что акционер трансаэро не_смочь собрать пакет . кризис трансаэро связать высокий нагрузка фон падение спрос авиаперелёт . перевозка пассажир компания продолжиться сила группа аэрофлот российский компания . услуга трансаэро воспользоваться миллион человек . |ngramms _ _ _ _ _ _ _ _ занимать_должность генеральный_директор генеральный_директор гендиректор_авиакомпания В_документ что_действие новый_гендиректор __заявить совет_директор совет_директор совет_директор совет_директор пост_гендиректор пост_гендиректор новый_руководитель _заявить управлять_компания быть_освободить сын_бывший контрольный_пакет _возглавить крупный_российский_авиакомпания планировать_купить процент_плюс что_акционер _нагрузка перевозка_пассажир российский_компания миллион_человек +1375 |text россиянин известный бизнесмен миллиардер купить паспорт мальта . основатель совладелец компания яндекс член семья . информация опубликовать сайт правительство страна . представитель яндекс пояснить рбк что путешествовать европейский гражданство позволять ездить виза . как оставаться российский гражданин выполнять требование законодательство россия компания . В список упоминаться имя предприниматель председатель совет директор инвестиционный компания group минец совладелец beluga group производитель водка землевладелец худокормовый . программа гражданство обмен инвестиция действовать мальта год . основной взнос тысяча евро вкладываться государственный облигация возвращаться год . заявитель срок год приобрести арендовать остров жильё . |ngramms опубликовать_на_сайт правительство_страна пояснить_рбк российский_гражданин требование_законодательство В_список председатель_совет_директор инвестиционный_компания group_ _ тысяча_евро +1376 |text гонконгский авиакомпания cathay pacific airways объявить приостановка рейс москва год . компания получить лента . . вплоть дата cathay pacific быть осуществлять рейс неделя гонконг москва обратно согласно расписание . пассажир забронировать билет рейс вылет быть предложить альтернативный вариант перелёт забронированный маршрут . приостановка рейс cathay pacific москва обусловить коммерческий причина высокий операционный стоимость сокращаться поток пассажир рейс москва гонконг значительно повлиять прибыльность маршрут заявление перевозчик . авиакомпания cathay pacific являться флагманский перевозчик гонконг осуществлять полёт направление . В рейтинг исследовательский компания skytrax итог прошлое год согласно опрос пассажир cathay pacific назвать хороший авиакомпания мир . cathay pacific авиакомпания решить прекратить полёт россия падение пассажиропоток результат кризис девальвация рубль . В thai airways объявить прекращение полётный программа маршрут бангкок москва год . прекращение полёт москва вена заявить авиакомпания niki aigle azur отменить рейс париж москва . |ngramms приостановка_рейс приостановка_рейс пресс_релиз быть_осуществлять билет_на_рейс быть_предложить альтернативный_вариант высокий_операционный В_рейтинг прошлое_год назвать_хороший авиакомпания_мир прекратить_полёт девальвация_рубль +1377 |text производство новый продукция литий ионный аккумулятор улучшить характеристика запустить новосибирский завод лиотех госкорпорация роснано быть признанный банкрот . сайт корпорация . В сообщение указываться что новый продукция предназначить использование перспективный сегмент применение накопитель электроэнергия как здравоохранение энергетика жкх транспорт . разработка новый продукция учесть опыт мировой производитель внести изменение технология производство . позволить получить аккумулятор улучшить характеристика как увеличить продолжительность импульсный ток разряд указываться сообщение . партия новый аккумулятор штука год быть использовать сборка троллейбус удлинённый автономный ход использование контактный сеть километр аргентинский город росарио . троллейбус встроить машинокомплект аккумулятор изготавливать компания релиз . председатель правление ук роснано слово приводиться сообщение что проект создание производство аккумулятор новосибирск оказаться сложный . рыночный причина завод год попасть трудный положение оказаться банкрот производственный линия быть сохранить . быть убедить что направление промышленный хранение электроэнергия отвечать глобальный тренд есть хороший перспектива . нынешний запуск производство литий ионный аккумулятор шаг ждать предприятие расширение продуктовый линейка заявить что продукция завод выходить рынок страна . В начало суд вынести решение банкротство новосибирский завод лиотех единственный страна производитель литий ионный аккумулятор . продукция предназначаться местный китайский рынок . создаваться инновационный предприятие как сп роснано китайский thunder sky group . объесть инвестиция достигнуть миллиард рубль быть крупный промышленный инвестпроект новосибирск областной правительство выделить полумиллиард бюджетный средство . |ngramms новый_продукция новый_продукция новосибирский_завод новосибирский_завод быть_признанный В_сообщение разработка_новый мировой_производитель технология_производство быть_использовать председатель_правление _ создание_производство оказаться_сложный линия_быть хороший_перспектива заявить_ продукция_завод В_начало суд_вынести китайский_рынок инновационный_предприятие миллиард_рубль крупный_промышленный областной_правительство бюджетный_средство +1378 |text газпром намеренный предъявить нафтогаза документ невыборка газа что украинский компания грозить штраф сумма миллиард доллар . заявить ход конференция европейский деловой конгресс белград глава газпром передавать . пояснить что согласно условие контракт нафтогаз прошлое год месяц российский газовый холдинг не_иметь право предъявлять претензия украина недобор газа условие брать платить . год год газпром предъявлять нафтогаза согласно контракт миллиард доллар штрафной санкция невыборка газа добавить . аналогичный представление слово быть направить стокгольмский арбитраж . образ сумма долг украина учёт штрафной санкция мочь вырастить миллиард доллар . миллиард доллар задолженность украина поставка газа год миллион доллар долг поставка украина остаться сумма долг невыборка газа год . В первое квартал год стоимость газа украина учёт скидка составлять доллар . поставка производиться рамка зимний пакет согласовать москва киев евросоюз год . В начало россия украина подписать соглашение поставка газа квартал год зафиксировать цена доллар тысяча кубометр учёт скидка доллар . как отмечать глава газпром поставщик период не_быть требовать оплата штраф правило брать платить . С конец текущий год нафтогаз украина осуществлять предоплата газпром поставка газа транш миллион доллар . платёж размер миллион доллар быть перечисленный год . |ngramms украинский_компания миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар _ _ _пояснить согласно_условие прошлое_год российский_газовый не_иметь_право согласно_контракт быть_направить санкция_мочь миллион_доллар миллион_доллар миллион_доллар юго_восток остаться_сумма В_первое_квартал скидка_составлять поставка_производиться согласовать_москва В_начало россия_и_украина подписать_соглашение поставка_газа поставка_газа тысяча_кубометр как_отмечать текущий_год нафтогаз_украина +1379 |text роснефть вести переговоры приобретение нефтяной актив компания alliance oil . номер писать газета ведомость ссылка неназванный источник . официально роснефть alliance oil информация не_прокомментировать . информация издание роснефть мочь выкупить доля alliance oil company хабаровский нефтеперерабатывающий завод нпз доля совместный предприятие словенский petrol . В время покупатель доля alliance oil сп shell мочь стать газпром . источник ведомость что нефтяной актив alliance oil оцениваться миллиард доллар учёт задолженность хабаровский нпз . долг завод составлять миллиард доллар кредит выдать вэб год . газета коммерсантъ ссылка неназванный источник написать что роснефть худайнат мочь создать собственный частный компания мочь заняться приобретение российский нефтяной актив . В качество возможный объект поглощение называться alliance oil . |ngramms вести_переговоры нефтяной_актив нефтяной_актив писать_газета мочь_выкупить нефтеперерабатывающий_завод В_то_же_время покупатель_доля мочь_стать миллиард_доллар завод_составлять вице_президент мочь_создать частный_компания российский_нефтяной В_качество +1380 |text ржд планировать выйти безубыточный уровень итог год . сообщить xi ассамблея начальник железный дорога новосибирск президент компания передавать . слово глава ржд способствовать быть что специалист компания правильно просчитывать тенденция экономический развитие страна . что тенденция негативно влиять состояние компания приходиться использовать возможный механизм как зрение повышение доход снижение расход . напомнить что ржд начать переход новый бизнес модель что потребовать перестройка система управление компания . глава госмонополия сообщить что ржд работа превращение международный транспортный логистический холдинг быть опираться предоставление услуга комплексный обслуживание база технология gefco . как отмечать новость ржд считать что развитие рынок называть услуга комплексный обслуживание услуга база технология gefco долгосрочный перспектива способный обеспечить существенный мультипликативный эффект компания целое как оптимизация затрата холдинг получение дополнительный доход . глава ржд что переход новый бизнес модель модель международный транспортный логистический холдинг потребовать перестройка система управление компания . изменение система управление слово произойти региональный уровень . что настоящее время основной конкурент холдинг инфраструктура вид транспорт автомобильный трубопроводный речной системно развиваться бизнес блок ржд нужно решить задача усиление позиция компания транспортный система . В начало стать что глава минэкономразвития направить письмо россия предлагать создать структура регулировать деятельность естественный монополия . форма контроль известный . неясно быть создать нужда специальный орган государственный власть . В год просить президент россия помочь ржд грозить убыток итог год миллиард рубль . идти индексация железнодорожный тариф перевозка выше уровень инфляция процент вместо выделение миллиард рубль бюджет . В результат правительство пошло навстречу ржд компания добиться дополнительный повышение тариф миллиард рубль господдержка . |ngramms ржд_планировать железный_дорога компания__ глава_ржд глава_ржд специалист_компания экономический_развитие приходиться_использовать снижение_расход что_ржд что_ржд новый_бизнес новый_бизнес система_управление система_управление система_управление предоставление_услуга как_отмечать развитие_рынок долгосрочный_перспектива способный_обеспечить оптимизация_затрата получение_дополнительный международный_транспортный региональный_уровень основной_конкурент вид_транспорт нужно_решить транспортный_система В_начало глава_минэкономразвития _ направить_письмо премьер_министр россия__ орган_государственный президент_россия__ помочь_ржд грозить_убыток миллиард_рубль миллиард_рубль миллиард_рубль выше_уровень В_результат добиться_дополнительный повышение_тариф +1381 |text генеральный директор мегафон предложить ввести дополнительный налог оператор размер процент годовой выручка . слово деньга власть смочь создавать хранилище пользовательский дать как требовать закон передавать коммерсантъ . налог быть экономически выгодный как государство оператор . дополнительный налог размер процент выручка никак не_повлиять отрасль выдержать . добавить что процентный налог история быть . мнение гендиректор мегафон текущий вид законопроект финансовый убивать телекоммуникационный отрасль . вид законопроект существовать не_смочь выполнять . добавить что оператор прийтись переложить часть затрата абонент . мтс вымпелком мегафон направить председатель сф письмо просьба отклонить госдума закон . обязывать оператор хранить дать переписка звонок пользователь год год . компания предупредить что подобный мера повлечь рост тариф абонент деградация качество услуга россия . предложить создать специальный комиссия преодоление возникнуть разногласие . документ вноситься поправка уголовный уголовно процессуальный кодекс отдельный закон быть госдума . |ngramms генеральный_директор __предложить дополнительный_налог дополнительный_налог годовой_выручка деньга_власть процентный_налог вид_законопроект _добавить направить_председатель _ интернетом_ресурс что_подобный рост_тариф создать_специальный +1382 |text объесть задолженность зарплата работник авиакомпания когалымавиа превысить миллион рубль . сообщать интерфакс ссылка роструд . работодатель выдать предписание ликвидация задолженность выплата работник компенсация несоблюдение срок выплата срок год . руководство авиакомпания настоящее время приниматься возможный мера погашение задолженность роструд . В ведомство что долг не_быть погасить материал проверка мочь быть направить суд рассмотрение административный правонарушение соответствие статья . коап . согласно разместить сайт ведомство проверка авиакомпания быть начать крушение российский авиалайнер airbus . В сообщение роструд отмечаться что перевозчик быть обнаружить задолженность заработный плата месяц . В начало пфр сообщить что задолженность авиакомпания когалымавиа пенсионный фонд взнос учёт пеня штраф превышать миллион рубль . миллион составлять задолженность обязательный пенсионный страхование миллион обязательный медицинский страхование миллион пеня штраф . лайнер airbus когалымавиа лететь шарм потерпеть крушение север синайский полуостров результат взрыв самодельный взрывной устройство борт . пассажир член экипаж человек включая ребёнок погибнуть . |ngramms объесть_задолженность миллион_рубль миллион_рубль пресс_служба срок_выплата погашение_задолженность В_ведомство материал_проверка мочь_быть разместить_на_сайт проверка_авиакомпания быть_начать В_сообщение быть_обнаружить В_начало пенсионный_фонд обязательный_медицинский лайнер_airbus эль_шейх санкт_петербург член_экипаж +1383 |text производство кондитерский фабрика roshen росить липецк принадлежащий украинский президент не_ликвидироваться остановить законсервировать . воскресение сообщать страна . ссылка аудиторский заключение отчётность предприятие год . что фабрика мочь возобновить деятельность отмечать издание . В отчётность отмечаться что липецкий фабрика год уплатить бюджет россия миллиард рубль порядок миллион доллар . замначальник управление труд занятость липецкий область заявить что местный фабрика росить начать увольнять сотрудник работа оставаться человек . В стать что основать корпорация roshen решить закрыть липецкий фабрика . В холдинг подчеркнуть что год производство предприятие сократиться втрое . причина называться запрет роспотребнадзор импорт продукция концерн россия давление орган власть ряд регион снижение уровень покупательный способность население . В очередь президент россия песок комментировать ситуация липецкий фабрика заявить что предприятие мочь продолжать работа . подчеркнуть что решение подобный вопрос полностью находиться компетенция собственник компания . |ngramms кондитерский_фабрика принадлежащий_украинский президент__ мочь_возобновить отмечать_издание В_отчётность липецкий_фабрика липецкий_фабрика липецкий_фабрика миллиард_рубль миллион_доллар липецкий_область __заявить корпорация_roshen производство_на_предприятие орган_власть ряд_регион В_свой_очередь пресс_секретарь президент_россия_ продолжать_работа что_решение собственник_компания +1384 |text сотовый оператор мегафон повысить цена часть архивный тарифный план житель москва подмосковье . минута разговор звонок сеть оператор предел москва область быть стоить среднее процент дорогой . повышаться стоимость sms междугородный звонок . писать ведомость . слово представитель компания образ мегафон стимулировать абонент пользоваться старое тарифный план переходить новое . изменение коснуться архивный тарифный план . подписчик тариф твой время стать платить минута звонок номер мегафон россия большой вместо рубль минута . В тарифный план О sms номер снг абхазия грузия южный осетия подорожать рубль . А московский подписчик тариф звонить город минута вызов вырасти цена рубль . изменение коснуться процент архивный тарифный план мегафон . сообщаться что мегафон повысить базовый тариф услуга роуминг европейский страна рубль килобайт трафик . одновременно компания ввести новое пакет услуга доступ интернет роуминг европа . В год мегафон изменить интервал тарификация доступ интернет россия . тарифицировать объесть трафик компания стать округлять килобайт килобайт . образ стоимость сессия выход интернет объём трафик килобайт увеличиться полтора копейка рубль . В год мегафон повышать тариф мобильный интернет роуминг европа турция некоторый страна снг процент рубль килобайт дать . образ начало год базовый роуминговый тариф мегафон доступ интернет страна европа увеличиться . |ngramms сотовый_оператор быть_стоить процент_дорогой представитель_компания _ изменение_коснуться изменение_коснуться минута_звонок вырасти_в_цена европейский_страна ввести_новое услуга_доступ мобильный_интернет страна_снг год_базовый +1385 |text газпром год установить очередной рекорд экспорт газа дальний зарубежье . объесть поставка составить миллион кубометр сутки . сообщать новость ссылка сообщение компания . днём экспорт газа холдинг дальний зарубежье быть равный миллион кубометр . В компания подчеркнуть что газопровод северный поток ямал европа голуба поток работать полный мощность транзит украина превышать плановый объём миллион кубометр сутки . поставка германия вырасти процент сравнение аналогичный дата год миллион кубометр . газпром германия быть поставить миллиард кубометр газа что миллион кубометр превышать показатель аналогичный период год . В начало резкий похолодание суточный объём поставка газа европа быть рекордный . быть установленный новый исторический суточный рекорд экспорт дальний зарубежье . потребитель быть поставить миллион кубометр газа . предыдущий пиковый значение установленный составлять миллион кубометр . В середина компания оператор nord stream сообщить что среднегодовой загрузка газопровод северный поток год составить процент . потребитель евросоюз газотранспортный система иметь мощность миллиард кубометр быть поставить миллиард куб энергоноситель . В год газпром год увеличить поставка газа дальний зарубежье процент сравнение год миллиард кубометр что стать исторический максимум сообщать глава российский холдинг . |ngramms дальний_зарубежье дальний_зарубежье дальний_зарубежье дальний_зарубежье объесть_поставка миллион_кубометр миллион_кубометр миллион_кубометр миллион_кубометр миллион_кубометр миллион_кубометр сообщение_компания экспорт_газа В_компания северный_поток северный_поток полный_мощность процент_по_сравнение_с_аналогичный быть_поставить быть_поставить быть_поставить миллиард_кубометр_газа превышать_показатель аналогичный_период В_начало быть_установленный кубометр_газа В_середина год_составить газотранспортный_система миллиард_кубометр миллиард_кубометр год_увеличить российский_холдинг _ +1386 |text компания лукойл завершить поиск газа саудовский аравия падение цена нефть сделать разведка экономически нецелесообразный . сообщать ссылка источник . слово компания luksar совместный предприятие лукойл государственный арабский saudi aramco быть год приступить разведка плотный порода сворачивать деятельность . что остаться семь человек что компания . экономический проблема что выгодно . низкий цена нефть бурить глубокий скважина дорого пояснять . информация что российский компания скорее прекратить деятельность саудовский аравия подтвердить агентство источник лукойл . что текущий цена нефть нет никакой шанс получить саудовский правительство разумный цена газ . слово источник компания лукойл рассматривать различный вариант окончательный решение свёртывание поиск не_принять . В год глава лукойл сообщить что компания решить инвестировать проведение работа пустыня рубль миллион доллар год . анонсировать увеличение добыча нефть год . нацелить стабилизация добыча территория российский федерация . В целое компания быть рост счёт что снижение цена нефть резко расти доля добыча территория рф . компания намерить снизить инвестиционный программа год процент миллиард доллар . лукойл оставаться действующий компания пригласить саудовский аравия год поиск газа пустыня рубль страна . sinopec eni repsol приостановить поиск газа высокий себестоимость топливо . перестать инвестировать газовый сектор саудовский аравия royal dutch shell . оао лукойл крупный нефтегазовый компания мир . обеспечивать процент мировой добыча нефть . доказать запас углеводород компания состояние конец год составлять миллиард баррель . |ngramms цена_на_нефть цена_на_нефть цена_на_нефть цена_на_нефть совместный_предприятие семь_человек что_российский_компания прекратить_деятельность нет_никакой цена_на_газ различный_вариант год_глава __сообщить что_компания эль_хали эль_хали российский_федерация В_целое компания_быть резко_расти компания_намерить инвестиционный_программа миллиард_доллар юго_восток поиск_газа нефтегазовый_компания процент_мировой добыча_нефть запас_углеводород год_составлять миллиард_баррель +1387 |text сотовый оператор мегафон год менять название услуга кто звонить кто звонить вводить абонентский плата использование услуга составить рубль сутки . сообщение компания . услуга подключаться автоматически бесплатно предоставляться абонентский плата . услуга кто звонить ? информировать пропустить вызов позволять оставить абонент голосовой сообщение аппарат находиться вне зона действие сеть номер занятый причина абонент мочь ответить . информация пропустить вызов голосовой сообщение приходить вид sms имя номер абонент звонить указание количество время звонок . как пояснить лента . компания услуга кто звонить абонент быть подключать самостоятельно автоматически подключаться не_быть . абонентский плат использование услуга не_быть взиматься абонент подключиться тарифный план группа включить год год . новое абонент тарифный план год смочь пользоваться услуга кто звонить ? бесплатно услуга нужно быть подключать самостоятельно использование быть взиматься абонентский плат . В сообщение уточняться что прослушивание голосовой сообщение абонент нахождение домашний регион быть бесплатный нахождение предел домашний регион быть тарифицироваться согласно условие тарифный план абонент как исходящий вызов номер мегафон домашний регион . |ngramms сотовый_оператор использование_услуга голосовой_сообщение голосовой_сообщение голосовой_сообщение зона_действие как_пояснить год_смочь пользоваться_услуга нужно_быть В_сообщение домашний_регион домашний_регион домашний_регион быть_бесплатный согласно_условие +1388 |text china mobile являться крупный мобильный оператор мир количество подписчик начало продажа смартфон iphone . сообщать ресурс techcrunch . церемония пекин присутствовать глава apple . china mobile предложить покупатель iphone . модель гигабайт память обойтись клиент бесплатно согласиться двухлетний контракт china mobile ежемесячно быть тратить доллар . В версия контракт покупатель мочь заплатить доллар модель месяц трата составить доллар . У конкурент china mobile china telecom china unicorn контракт iphone дешёвый china mobile предоставлять доступ быстрый сеть td lte нет соперник . работа сверхбыстрый сеть рассчитать iphone . переговоры apple china mobile перерыв идти год . издание wall street journal год связать долгий переговоры нежелание apple продавать смартфон компания ненадёжный G сеть время как china mobile быть недовольный жёсткий обязательство продажа iphone что требовать apple . слово apple конец год материковый китай свыше миллион смартфон . china mobile обслуживать миллион абонент . компания лидировать показатель как родина мир . |ngramms china_mobile china_mobile china_mobile china_mobile china_mobile china_mobile china_mobile china_mobile мобильный_оператор смартфон_iphone глава_apple _ мочь_заплатить смартфон_компания продажа_iphone что_требовать миллион_смартфон миллион_абонент +1389 |text государственный нефтяной компания транснефть предложить группа сумма зиявудин выкупить нея доля компания владеть контрольный пакет новороссийский морской торговый порт нмтп писать ведомость . В обмен нефтетранспортный корпорация передать сумма находиться порту мощность связанный перевалка нефть нефтепродукт . У транснефть итог сделка остаться терминал перевалка нефть приморский торговый порт бункеровочный бизнес мощность перевалка нефтепродукт флот . сумма очередь получить зерновой терминал контейнерный терминал новороссийский судоремонтный завод . предложение раздел актив нмтп отправить правительство дать итоговый заключение дать идея . государство владеть напрямую процент акция порт . транснефть помощь уралсиб приобрести процент порт миллиард рубль увеличить доля предприятие процент . В что барьер преодолеть компания выставить миноритарий обязательный оферта причём цена быть цена сделка акция порт . образ сумма покупка процент акция принадлежащий сумма мочь составить миллиард рубль . В текущий год крупный структура интересоваться государство возможность покупка госпакет порту . быть роснефть украинский тис инвестиционный компания . правительство категорически выступить продажа доля порту роснефть заявить что быть реализовать стратегический негосударственный инвестор выставить биржа . |ngramms нефтяной_компания доля_в_компания контрольный_пакет торговый_порт торговый_порт сделка_остаться государство_владеть процент_акция процент_акция миллиард_рубль миллиард_рубль акция_порт сумма_покупка мочь_составить текущий_год покупка_госпакет инвестиционный_компания +1390 |text американский компания boeing представить авиасалон ле буржа новый dreamliner длинный вместительный линейка лайнер мечта . сообщаться boeing . новый версия dreamliner поступить заказ сумма миллиард доллар . В заказчик air lease corporation ge capital aviation services international airlines group singapore airlines united airlines . вместимость кресло способный летать расстояние тысяча километр . сравнение вместимость составлять кресло дальность полёт тысяча тысяча километр соответственно . длина составлять метр как длина девять восемь версия метр соответственно . семейство самолёт dreamliner быть представить год . лайнер мечта полностью новый авиалайнер boeing год когда быть запустить . В начало нынешний год dreamliner произойти происшествие большой часть быть связать задымление неисправный литий ионный аккумулятор . соображение безопасность полёт быть приостановить мир . dreamliner возобновить выполнение рейс год . |ngramms американский_компания лайнер_мечта лайнер_мечта пресс_релиз миллиард_доллар international_airlines тысяча_километр тысяча_километр быть_представить авиалайнер_boeing быть_запустить В_начало нынешний_год большой_часть безопасность_полёт быть_приостановить выполнение_рейс +1391 |text ряд российский долларовый миллиардер пополнить штенгеловый владелец kdv group выпускать пивная закуска beerka сухарик кириешка чипсы передавать bloomberg . издание оценить состояние предприниматель сумма миллиард доллар . отмечаться что год холдинг суметь увеличить продажа вдвое миллиард рубль миллиард доллар год . бросить вызов крупный игрок рынок как frito lay mondelez international компания штенгеловый удаться фон кризис спровоцировать обвал цена нефть введение санкция сша ес . издание kdv group выиграть счёт широкий распространение снековы фон экономический спад инфляция . сильный ослабление рубль импортный продсырье включая какао стать дорогой . В результат россиянин переключиться кондитерский изделие отечественный мука . компания штенгеловый смочь удержать цена продукция четверть конкурент свидетельствовать дать nielsen russia . удаться сделать благодаря что kdv group обладать актив производственный цепочка сельхозферма шоколадный фабрика . строчка рейтинг миллиардер forbes занимать сооснователь microsoft глава amazon безос основатель сеть zara ортег . причём мочь уступить лидерство благотворительный деятельность . |ngramms ряд_российский оценить_состояние миллиард_доллар миллиард_доллар увеличить_продажа миллиард_рубль крупный_игрок цена_на_нефть введение_санкция широкий_распространение экономический_спад В_результат кондитерский_изделие свидетельствовать_дать удаться_сделать шоколадный_фабрика рейтинг_миллиардер _ глава_amazon уступить_лидерство благотворительный_деятельность +1392 |text восемнадцать арбитражный апелляционный суд челябинск рассмотреть апелляционный жалоба афк система решение нижестоящий арбитраж взыскание нея миллиард рубль польза башнефть . информация содержаться картотека арбитражный . материал основный иск роснефть афк система быть направить восемнадцать арбитражный апелляционный суд . В роснефть расценить факт подача апелляционный жалоба афк система отсутствие нея предложение мировой соглашение как односторонний отказ конструктивный диалог . С заявление выступить компания . В год роснефть башнефть подать исковый заявление афк система зао система инвест взыскание миллиард рубль убыток понести мнение реорганизация компания башнефть . поздний увеличить размер требование миллиард рубль . В конец месяц требование качество соистец присоединиться башкирия . арбитраж башкирия частично удовлетворить исковый требование взыскать афк миллиард рубль . год процент акция башнефть принадлежать система . В конец ценный бумага решение суд быть возвратить собственность государство обнаружить нарушение приватизация компания год . |ngramms апелляционный_суд апелляционный_суд апелляционный_жалоба апелляционный_жалоба миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль факт_подача мировой_соглашение пресс_секретарь компания__ исковый_заявление увеличить_размер В_конец В_конец частично_удовлетворить исковый_требование процент_акция ценный_бумага решение_суд обнаружить_нарушение +1393 |text корпоративный конфликт крупный российский онлайн ретейлер юлмарт вероятно продолжиться проблема кредитор сообщать коммерсантъ . газета отмечать что московский арбитражный суд удовлетворить претензия структура сбербанк взыскание компания миллион рубль . юлмарт намеренный обжаловать решение апелляция . иск взыскание юлмарт миллион рубль долг пеня быть подать год . претензия базироваться договор факторинг работать поставщик юлмарт уточнять издание . В год коммерсантъ сообщать что совладелец юлмарт близкий завершение конфликт . предполагаться что компания мочь выкупить доля оцениваться миллиард рубль . основатель компания юлмарт директор быть возбудить уголовный связанный уклонение уплата налог компания год . корпоративный конфликт основный акционер компания сторона мейер возникнуть год . предприниматель разойтись взгляд дальнейший развитие бизнес . В результат подать партер иск международный арбитраж лондон lcia . истец требовать обязать партнёр выкупить доля компания определённый цена . ответчик посчитать что выше рыночный . компания начаться проблема кредитор структура сбербанк банк втб . В год кипрский суд арестовать счёт головной компания юлмарт . insight прошлое год юлмарт потерять позиция крупный продажа онлайн россия уступить строчка wildberries . компания юлмарт лидер российский занимать место объём бизнес сегмент . оборот компания второе квартал год вырасти процент миллиард рубль первое полугодие показатель составить миллиард рубль . В сообщаться что компания прогнозировать итог год выручка уровень миллиард доллар . |ngramms корпоративный_конфликт корпоративный_конфликт газета_отмечать арбитражный_суд удовлетворить_претензия структура_сбербанк структура_сбербанк миллион_рубль миллион_рубль уточнять_издание __и__ __и__ что_компания_мочь выкупить_доля миллиард_рубль миллиард_рубль миллиард_рубль основатель_компания экс_генеральный директор__ быть_возбудить уплата_налог основный_акционер развитие_бизнес В_результат _и_ иск_в_международный истец_требовать доля_в_компания выше_рыночный банк_втб суд_арестовать головной_компания потерять_позиция лидер_российский интернетом_торговля оборот_компания показатель_составить что_компания год_выручка миллиард_доллар +1394 |text российский авиакомпания аэрофлот начать полёт направление тбилиси год . сообщать новость ссылка информационный бюро тбилисский международный аэропорт . нет информация как часто быть совершаться рейс рассказать аэропорт . сотрудник информбюро подчеркнуть что не_знать когда регулярный рейс столица грузия начать выполнять российский авиакомпания . регулярный авиасообщение россия грузия быть прервать инициатива российский сторона год вооружённый конфликт южный осетия . росавиация разрешить возобновить регулярный авиасообщение страна . допуск выполнение полёт выдать авиакомпания аэрофлот вим глобус сибирь трансаэро уральский авиалиния ютэйр . возобновление регулярный рейс осуществляться прямая чартерный рейс начаться год . В настоящее время прямая рейс россия грузия выполняться москва екатеринбург тбилиси батуми кутаиси . осуществлять авиакомпания airlines уральский авиалиния грузинский компания georgian airways . |ngramms российский_авиакомпания российский_авиакомпания международный_аэропорт как_часто грузия_быть российский_сторона росавиация_разрешить возобновить_регулярный полёт_выдать уральский_авиалиния уральский_авиалиния регулярный_рейс В_настоящее_время прямая_рейс +1395 |text украинский кондитерский корпорация росить roshen не_получать официальный уведомление роспотребнадзор запрет поставка продукция россия . сообщать новость ссылка roshen . В компания связываться представитель роспотребнадзор прояснить ситуация . О введение запрет поставка кондитерский изделие roshen сообщить деловой ссылка заявление руководитель роспотребнадзор . В слово молочный шоколад украинский компания быть обнаружить бензопирен . поздний российский ведомство пояснить что роспотребнадзор отобрать торговый сеть москва продукция предприятие принадлежащий roshen . идти киевский винницкий мариупольский кременчугский фабрика компания . проверка роспотребнадзор обнаружить что кондитерский изделие не_соответствовать норматив содержание жир органолептика иметь отклонение показатель качество . помимо украинский фабрика roshen иметься предприятие литва венгрия россия производственный площадка липецкий кондитерский фабрика . проверка продукция предприятие роспотребнадзор судить не_проводиться . roshen выпускать вид кондитерский продукция шоколад шоколадный конфета печение вафля бисквитный рулет торт . ежегодный объесть производство компания составлять тысяча тонна . известный вид продукция roshen являться торт киевский . |ngramms кондитерский_корпорация запрет_на_поставка запрет_на_поставка пресс_служба пресс_служба В_компания кондитерский_изделие кондитерский_изделие заявление_руководитель _ молочный_шоколад украинский_компания быть_обнаружить ведомство_пояснить торговый_сеть фабрика_компания украинский_фабрика производственный_площадка кондитерский_фабрика проверка_продукция roshen_выпускать кондитерский_продукция объесть_производство компания_составлять тысяча_тонна продукция_roshen +1396 |text российский энергетический концерн газпром готовый завершить строительство нитка газопровод турецкий поток год . сообщение компания итог переговоры турция председатель правление газпром министр энергетика природный ресурс турция йылдыз . сторона определить что граница турция греция быть поставляться миллиард кубометр газа столько российский компания готовый экспортировать дать маршрут европа . мощность морской газопровод россия турция составить миллиард кубометр год соответственно миллиард кубометр быть приходиться доля турция . В йылдызть облететь планировать трасса сухопутный часть газопровод вертолёт . сторона определить ключевой реперный маршрут технический решение газопровод территория турция выход суша сделать район населить пункт каякей сдача газа турецкий потребитель назначить люла бургаснуть район выход турецкий греческий граница местность эпсила . длина газопровод составить километр . В ближний время получение разрешение проведение проектный изыскательский работа новый турецкий морской участок газопровод . О проект турецкий поток быть объявить год . москва анкара договориться строительство газопровод дно чёрный море вместо южный поток россия отказаться строить разногласие евросоюз . турция величина рынок сбыт газпром германия . В год газпром экспортировать турция миллиард кубометр газа . В настоящее время поставка российский газа турция осуществляться газопровод голуба поток трансбалканский газопровод . |ngramms российский_энергетический нитка_газопровод турецкий_поток турецкий_поток пресс_служба председатель_правление министр_энергетика природный_ресурс сторона_определить быть_поставляться миллиард_кубометр_газа миллиард_кубометр_газа российский_компания морской_газопровод миллиард_кубометр миллиард_кубометр часть_газопровод определить_ключевой греческий_граница длина_газопровод В_ближний_время работа_на_новый морской_участок О_проект быть_объявить строительство_газопровод чёрный_море южный_поток россия_отказаться рынок_сбыт В_настоящее_время поставка_российский +1397 |text компания норникель предложить власть отдавать компания найти месторождение конкурс . номер писать коммерсантъ ссылка анонимный источник . неназванный представитель компания пояснить что предложение гмк направить улучшение инвестклимат цветной металлургия . действующий закон участок проявление медь кобальт металл платиновый группа никель относиться недра федеральный значение . конвертировать геологоразведочный лицензия добычный невозможно обнаружить месторождение выставляться торг . В итог инвестор опасаться рисковать средство геологоразведочный работа . сложиться ситуация привести что интенсивность разведка значительно упасть прирост запас никель металл платиновый группа остановиться считать гмк . норникель предложить разработать критерий месторождение следовать относить недра федеральный значение . критерий как предполагаться мочь стать объесть запас . аналогичный схема действовать нефтяной сектор где недра федеральный значение признаваться участок запас свыше миллион тонна сырьё . источник коммерсант отмечать что норникель заботить судьба конкретный месторождение масловский красноярский край гмк разведывать год . год срок разведочный лицензия истекать решение добычный лицензия не_принять . В норникель затрудниться прокомментировать лента . информация предложение отменить аукцион . норникель прошлое год проиграть борьба крупный никелевый участок норильск воронежский область . копание обойти угмк русский платина . норникель назвать итог конкурс необъективный пытаться оспорить решение власть . русский платина судебный процесс гмк большой год мочь получить лицензия выиграть месторождение . |ngramms горно_металлургический горно_металлургический предложить_власть представитель_компания что_предложение металл_платиновый металл_платиновый федеральный_значение федеральный_значение федеральный_значение В_итог сложиться_ситуация прирост_запас как_предполагаться мочь_стать нефтяной_сектор миллион_тонна красноярский_край предложение_отменить русский_платина русский_платина _ итог_конкурс решение_власть судебный_процесс +1398 |text афк система собираться уволить процент сотрудник потеря башнефть оптимизация бизнес . писать коммерсантъ . решение мочь быть вызвать затруднение привлечение финансирование . корпорация рассчитывать сохранить получить башнефть дивиденд добиться освобождение президент основный владелец . В случай прийтись пойти серьёзный урезание расход . арбитражный суд москва конец удовлетворить иск генпрокуратура деприватизация башнефть обеспечивать большой половина денежный поток система . информация афк система башнефть быть купить цена процент превосходящий рыночный миллиард доллар . В компания подчёркивать что не_участвовать приватизация предприятие башкирский тэк выступать добросовестный покупатель актив сторона . уголовный факт незаконный продажа акция нефтяной компания башнефть быть возбудить год . обвинять статья ук рф легализация отмывание денежный средство . С бизнесмен находиться домашний арест . В начало басманный суд москва продлить мера пресечение . В обвинение быть заочно предъявить бывший глава компания урал сын бывший президент башкортостан . |ngramms оптимизация_бизнес мочь_быть основный_владелец _ _ _ арбитражный_суд_москва удовлетворить_иск большой_половина денежный_поток быть_купить миллиард_доллар В_компания покупатель_актив продажа_акция нефтяной_компания быть_возбудить ук_рф денежный_средство домашний_арест В_начало суд_москва бывший_глава_компания бывший_президент +1399 |text аэрофлот очередной стать обладатель престижный премия russian business travel mice award номинация хороший компания бизнес путешественник . сообщение перевозчик поступить редакция лента . . торжественный церемония награждение пройти москва гостиница президент отель . ежегодный профессиональный проект russian business travel mice award награда хороший компания предприятие сфера деловой туризм . учредитель являться палата рф журнал business travel портал conference . . год крупный российский авиакомпания стать обладатель премия skytrax world airline awards категория хороший авиакомпания восточный европа . благодаря непрерывный совершенствование сервис внедрение новый технология аэрофлот входить элита премиальный перевозчик европа перевозчик . аэрофлот крупный российский перевозчик россия совокупный маршрутный сеть насчитывать пункт страна . В год авиакомпания группа совокупность перевезти миллион пассажир . В первое полугодие год аэрофлот укрепить позиция лидер российский отрасль авиаперевозка увеличить пассажиропоток процент доля рынок процентный пункт сравнение аналогичный период прошлое год . |ngramms стать_обладатель престижный_премия поступить_в_редакция торгово_промышленный палата_рф крупный_российский_авиакомпания обладатель_премия хороший_авиакомпания восточный_европа новый_технология пресс_релиз крупный_российский маршрутный_сеть авиакомпания_группа миллион_пассажир В_первое_полугодие лидер_российский доля_рынок процентный_пункт аналогичный_период_прошлое_год +1400 |text группа сумма расторгнуть контракт порт роттердам строительство нефтяной терминал макроэкономический ситуация конъюнктура рынок углеводород . сообщить представитель сумма . добавить что группа не_уходить порт роттердам где нея оставаться бункеровочный бизнес . нефтяной терминал порту компания намереваться построить год срок сдвинуться начать год . хаб предназначаться транспортировка нефть порт приморск продажа . стоимость проект оцениваться миллион евро миллиард доллар . реализация отвечать дочерний компания сумма shtandart tt B . V . группа сумма зиявудин диверсифицировать холдинг объединять актив портовый логистика строительство телекоммуникационный нефтегазовый сектор металлургия . |ngramms нефтяной_терминал нефтяной_терминал компания_намереваться стоимость_проект миллион_евро миллиард_доллар дочерний_компания нефтегазовый_сектор +1401 |text переговоры создание крупный российский компания прекратить слияние русало норникель не_быть . заявить основной владелец норникель интервью принадлежащий семья газета ведомость . слово президент норникель владелец русало дерипаск сойтись что компания разный синергия видно . быть среднесрочный перспектива самостоятельно развиваться . вопрос слияние компания обсуждаться летом добавить . представитель дерипаск что доля норникель рассматриваться как стратегический инвестиция позиция не_меняться . переговоры объединение русало норникель стартовать год . В год начать раздел бизнес упустить возможность выкупить блокировать пакет акция норникель . В год незадолго кризис покупка объявить русало . компания собираться объединиться норникель . норникель являться глобальный производитель никель платина медь . русало крупный мировой производитель алюминий глинозём бокситовый . |ngramms крупный_российский горно_металлургический компания_прекратить основной_владелец _ _ _ принадлежащий_семья _дерипаск что_компания слияние_компания рассматриваться_как пакет_акция компания_собираться производитель_никель мировой_производитель +1402 |text сбербанк рассматривать возможность перенос выплата часть долг мечело год . сообщить ведомость ссылка источник близкие участник переговоры . компания выплатить сбербанк миллиард рубль основный долг миллиард рубль штраф пеня что начать действовать условие реструктуризация остаться часть задолженность . быть конвертировать рубль составить миллиард российский валюта текущий курс . согласно договорённость банк год заёмщик смочь погасить миллиард рубль год миллиард рубль остаться часть долг миллиард рубль выплачивать год . мечело погасить часть долг сбербанк компания получить одобрение перенос срок выплата тело основный долг сторона крупный кредитор газпромбанк втб писать издание . компания не_исполнить обязательство отмечать источник издание . сбербанк долгий время оставаться единственный госбанк кредитор не_соглашаться реструктуризация задолженность мечело рассчитывать часть долг сторонний инвестор . сообщаться что представитель крупный банка страна угольный компания южный кузбасс входить мечело заключить мировой соглашение взыскание миллион доллар попросить арбитражный суд москва утвердить . В начало мечело договориться втб реструктуризация долг миллиард рубль . кредитный соглашение предусматривать отсрочка погашение тело долг год последующий ежемесячный погашение год . В конец мечело подписать соглашение реструктуризация задолженность кредитор газпромбанк сумма миллиард доллар миллиард рубль . группа мечело основный собственник являться родственник крупный российский холдинг немой работать тысяча человек . С начало год группа вести переговоры кредитор . |ngramms рассматривать_возможность перенос_выплата часть_долг часть_долг часть_долг часть_долг миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль основный_долг основный_долг начать_действовать условие_реструктуризация остаться_часть рубль_и_составить российский_валюта текущий_курс компания_получить перенос_срок выплата_тело крупный_кредитор писать_издание компания__ источник_издание долгий_время оставаться_единственный реструктуризация_задолженность реструктуризация_задолженность крупный_банка заключить_мировой миллион_доллар арбитражный_суд_москва реструктуризация_долг соглашение_предусматривать миллиард_доллар основный_собственник горно_металлургический тысяча_человек С_начало +1403 |text рост чистый прибыть крупный российский продуктовый магнит международный стандарт финансовый отчётность квартал год замедлиться процент падение курс рубль . сообщение компания . В год чистый прибыль компания вырасти процент . В третье квартал год процент . прибыль квартал абсолютный выражение составить миллиард рубль . чистый прибыль год вырасти процент составить миллиард рубль год показатель вырасти сравнение процент миллиард рубль . выручка компания год вырасти процент миллиард рубль . ebitda итог год увеличиться процент миллиард рубль . большой курсовой разница внести корректив финансовый результат приводиться сообщение слово генеральный директор компания магнит . несмотря замедление рост год магнит сохранять амбициозный план открытие новый магазин год сообщить . магнит российский компания . основатель гендиректор компания являться крупный акционер . принадлежать процент акция магнит . |ngramms чистый_прибыть крупный_российский международный_стандарт финансовый_отчётность курс_рубль чистый_прибыль чистый_прибыль третье_квартал миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль процент_и_составить показатель_вырасти финансовый_результат генеральный_директор_компания _ новый_магазин российский_компания гендиректор_компания __являться крупный_акционер процент_акция +1404 |text вклад роснефть российский бюджет год быть значительный триллион рубль как указать рейтинг рбк . заявить лента . кандидат экономический наука . роснефть заплатить бюджет налог дивиденд половина капитал . есть реально государство нея получать большой подсчитать рбк . обратить внимание что согласно исследование основа наполнение бюджет лежать нефтегазовый сектор . В россия действовать политика ресурсный национализм . ввести быть год когда заработать связка налог добыча полезный ископаемое плюс экспортный пошлина . С зрение есть некоторый несправедливость роснефть газпром компания сопоставимый газпром платить бюджет маленький год заплатить примерно триллион рубль добавить эксперт . слово газпром быть достаточно серьёзный лобби соответственно мягкий налоговый режим нефтяник . холдинг газпром входить компания газпромнефть вес столь велик добавить . рузаесть высказать мнение целесообразность снижение налоговый нагрузка нефтяной сектор счёт увеличение размер дивиденд . слово эксперт позволить компания увеличить инвестпрограмма направить разведка разработка новый месторождение . рбк опубликовать рейтинг налогоплательщик год строчка занять роснефть заплатить триллион рубль газпром триллион рубль лукойл миллиард рубль . |ngramms российский_бюджет год_быть триллион_рубль триллион_рубль триллион_рубль триллион_рубль _ получать_большой обратить_внимание согласно_исследование нефтегазовый_сектор В_россия экспортный_пошлина есть_некоторый добавить_эксперт добавить_ снижение_налоговый нефтяной_сектор размер_дивиденд разработка_новый опубликовать_рейтинг миллиард_рубль +1405 |text правительство россия сформулировать условие покупка американский schlumberger доля российский eurasia drilling company edc . сообщать интерфакс ссылка глава федеральный антимонопольный служба россия . В ближний встретиться schlumberger нея выставить условие быть приемлемый комиссия вернуться рассмотрение вопрос чиновник итог заседание правкомиссия контроль иностранный инвестиция . не_уточнить какой требование предъявить российский правительство иностранный инвестор . О планировать приобретение schlumberger процент акция крупный российский нефтесервисный компания eurasia drilling быть объявить . сумма составить миллиард доллар доллар акция премия рыночный цена процент . аналитик раффайзенбанк считать стоимость приобретать пакет обоснованный . достаточно посмотреть середина прошлое год акция eurasia drilling стоить выше доллар бумага доллар . есть что кризис давать дополнительный возможность . schlumberger собственный заверение возможность улучшить позиция российский рынок приобретать интересный игрок пояснить лента . эксперт . продажа акция планироваться провести этап . первое eurasia необходимый провести акция лондонский фондовый биржа lse дочерний структура выкупить рынок глобальный депозитарный расписка gdr эквивалентный процент акция . второе этап schlumberger стать владелец акция дочка edc выкупить держатель крупный пакет акция российский компания процент . полагать что структура сделка мочь быть пересмотреть наличие опцион увеличение иностранный инвестор доля eurasia drilling процент . риска блокирование сделка российский сторона называть достаточно высокий . фас заинтересоваться сделка январский объявление компания . В eurasia drilling сообщать что продажа акция завершиться одобрение фас россия поздний объявить отмена акция лондонский биржа получение разрешение регулировать орган . фас россия очередь вынести сделка рассмотрение правительственный комиссия иностранный инвестиция . schlumberger крупный мир сервисный компания область нефть газа . работать страна . оборот компания год составить миллиард доллар . компания являться ключевой партнёр eurasia drilling бурение скважина . доля edc крупный акционер доля процент процент российский рынок бурение оцениваться процент . |ngramms правительство_россия покупка_американский доля_в_российский федеральный_антимонопольный_служба россия__ В_ближний иностранный_инвестиция иностранный_инвестиция российский_правительство иностранный_инвестор иностранный_инвестор О_планировать процент_акция процент_акция крупный_российский быть_объявить миллиард_доллар миллиард_доллар рыночный_цена _ _ прошлое_год давать_дополнительный продажа_акция продажа_акция фондовый_биржа дочерний_структура стать_владелец пакет_акция российский_компания структура_сделка мочь_быть российский_сторона достаточно_высокий фас_россия фас_россия объявить_о_отмена лондонский_биржа крупный_в_мир компания_в_область оборот_компания компания_являться ключевой_партнёр крупный_акционер +1406 |text роснефть намерить привлечь кредит российский банка сумма триллион рубль сообщать новость . вопрос привлечение финансирование рассмотреть акционер компания . имя предстоять одобрить сделка привлечение кредит предельный сумма триллион рубль всероссийский банка развитие регион вбрра триллион рубль втб триллион рубль газпромбанк . средство мочь быть привлечь иностранный валюта юань . В роснефть лента . пояснить что вынесение одобрение собрание акционер потенциальный сделка привлечение кредит сумма триллион рубль не_означать привлечение средство компания год . план компания нет . подобный сделка одобряться год не_означать что компания привлечь сумма . идти потенциальный возможность представитель нефтяной компания . В очередь роснефть пояснить что идти револьверный схема кредитование не_предполагать увеличение нагрузка . являться кредитный линейка год включать сумма кредит механический предел объём привлечь средство позволять компания достаточно свободно работать финансовый инструмент не_собирать совет директор . не_означать дополнительный задолженность компания . В роснефть добавить что одобрение сделка собрание акционер невозможно определить точный условие сделка контрагент как финансовый сделка совершаться мера необходимость банк предложить наиболее выгодный условие . сумма привлечь кредит период год не_превысить установленный компания лимит основать среднестатистический анализ ежемесячный потребность заёмный денежный средство период представитель роснефть . одобрение указанный сделка позволить банка конкурентный основа обслуживание операция компания . процедура стандартный осуществляться ежегодно подчеркнуть компания . сообщаться что роснефть просить предоставить триллион рубль фонд национальный благосостояние фнб проект разведка разработка месторождение . поддержать минэнерго минэкономразвития проект инвестиция исключая проект звезда оцениваться компания триллион рубль включая миллиард рубль фнб . |ngramms намерить_привлечь российский_банка триллион_рубль триллион_рубль триллион_рубль триллион_рубль триллион_рубль триллион_рубль триллион_рубль сообщать_риа_новость привлечение_финансирование акционер_компания привлечение_кредит привлечение_кредит мочь_быть иностранный_валюта собрание_акционер собрание_акционер компания_привлечь нефтяной_компания В_свой_очередь вице_президент пресс_секретарь __пояснить _нагрузка привлечь_средство позволять_компания совет_директор одобрение_сделка определить_точный выгодный_условие привлечь_кредит установленный_компания денежный_средство сделка_позволить просить_предоставить фонд_национальный разработка_месторождение миллиард_рубль +1407 |text fortum не_достигнуть соглашение газпром росатом реструктуризация тгк сообщить финский компания . мнение fortum оценить график переговоры не_представляться возможный . В год fortum газпром энергохолдинг росатом подписать протокол намерение реструктуризация актив тгк россия . предполагаться что рамка реструктуризация fortum росатом учредить совместный предприятие войти гидрогенерировать актив тгк . цель fortum являться преобразование текущий доля размер процент акция тгк контрольный пакет совместный предприятие . финский компания заявлять что случай успешный завершение реструктуризация готовый быть участвовать качество миноритарный акционер проект строительство аэс компания fennovoima участвовать росатом условие аналогичный немой участвовать финский компания . миноритарный акционер тгк выступить сделка . С соответствующий заявление миноритарий выступить годовой собрание акционер тгк . мнение совладелец энергокомпания выделение гидростанция состав тгк передача иностранный предприятие нарушить надёжность энергетика россия . письменный обращение миноритарий быть передать fortum совет директор тгк . |ngramms финский_компания финский_компания финский_компания реструктуризация_актив что_в_рамка совместный_предприятие доля_в_размер процент_акция контрольный_пакет что_в_случай миноритарный_акционер миноритарный_акционер проект_строительство соответствующий_заявление собрание_акционер иностранный_предприятие энергетика_россия быть_передать совет_директор +1408 |text дагестанский управление федеральный антимонопольный служба фас возбудить отношение предприятие газпром межрегионгаз пятигорск гмп ограничить поставка газа местный коммунальный компания . официальный ведомство . быть возбудить как дочка газпром отключить газ организация дагестанэнерго махачкалатеплоэнерго махачкалатеплосервис . В гмп пояснить что поставка топливо ограничить долг коммунальщик миллион рубль . В очередь дагестанский уфас прислать вывод что отключение газа местный организация мочь привести ущемление интерес добросовестный абонент исправно оплачивать коммунальный услуга . гмп сообщить что прекратить поставка газа большинство котельная владикавказ задолженность предприятие владикавказский тепловой сеть . объесть долг предприятие составлять миллион рубль учёт преемственность потребитель северный осетия задолженность оцениваться миллиард рубль . потребитель газа северный осетия дагестан сумма долг не_признать . В председатель совет директор газпром сообщить что итог год долг потребитель газа увеличиться процент миллиард рубль . крупный неплательщик являться предприятие хозяйство . |ngramms федеральный_антимонопольный_служба поставка_газа поставка_газа пресс_релиз быть_возбудить поставка_топливо миллион_рубль миллион_рубль В_свой_очередь местный_организация задолженность_предприятие предприятие_составлять миллиард_рубль миллиард_рубль потребитель_газа потребитель_газа сумма_долг председатель_совет_директор __сообщить что_по_итог жилищно_коммунальный +1409 |text арбитражный суд москва отказ норильский никель иск роснедра металлургический компания требовать признать незаконный конкурс западный фланг октябрьский месторождение таймыр . сообщать интерфакс . заседание суд представитель норникель заявить что отказ быть вызвать распоряжение правительство прошлое год признание конкурс незаконный передавать рапси . иск быть подать норникель роснедра прошлое год . В компания счесть незаконный действие решение ведомство подведение итог конкурс октябрьский месторождение . В роснедра признать конкурс несостоявшийся единственный заявка подать норникель соответствующий условие . В компания решение не_согласиться . норникель суд оспаривать итог конкурс роснедра освоение южный часть месторождение норильск . В год победитель конкурс разведка добыча никель медь кобальт участок быть признать артель старатель амур входить группа русский платина . В норникель счесть что конкурс быть провести необъективный . поздний минприрода обратиться просьба не_утверждать результат конкурс норильск как заявка русский платина уступать условие предложение норникель . решение не_принять . норникель являться крупный мир производитель никель палладий . комбинат производить золото серебро платина медь металл . |ngramms арбитражный_суд_москва металлургический_компания признать_незаконный суд_представитель быть_вызвать распоряжение_правительство прошлое_год быть_подать В_компания В_компания решение_ведомство итог_конкурс южный_часть победитель_конкурс быть_признать входить_в_группа русский_платина русский_платина быть_провести премьер_министр _ результат_конкурс крупный_в_мир +1410 |text плацкартный вагон замена комфортный купейный ратовать бывший глава ржд продолжить курсировать российский железный дорога . пассажирский форум заявить президент ржд передавать корреспондент лента . . уточнить что вопрос обсуждаться экспертный сообщество . прислать вывод что плацкарта нужный . пользоваться популярность дешёвый глава госкомпания . слово есть плацкартный вагон преимущество купейный приспособить перевозка детский группа присматривать взрослый . есть ряд специальный задача . И пассажир обращаться просьба сохранить традиционный вид движение . смотреть где удобно востребовать . планировать плацкартный вагон оставить резюмировать . добавить что плацкарта становиться качественный комфортный . федеральный пассажирский компания дочка ржд слово намерить обновить плацкартный парк вагон . ржд пассажирский перевозка акуловый уточнить что год тверская вагоностроительный завод поставить новый вагон миллиард рубль . вагон двухэтажный местами ночное следование дневный курсирование кресло незначительный количество штука плацкартный вагон что явно недостаточно учёт темп выбытие парк . акуловый сообщить что пригородный движение быть приобрести вагон электричка вагон поезд ласточка . быть курсировать год малое кольцо московский железный дорога мкжда . замещение плацкартный вагон комфортный дорогой купейный мягкий вагон неоднократно выступать бывший глава ржд . В интервью российский газета начало прошлое год назвать поездка плацкарта коллективный стриптиз человек . Я считать что развитие общество таков что раздеваться одеваться прилюдно что плацкарта дешёвый купе правильно . что распространение двухэтажный вагон стоимость проезд купе сократиться процент результат что цена купейный билет фактически сравняться плацкартный . |ngramms бывший_глава бывший_глава _ _ российский_железный_дорога заявить_президент передавать_корреспондент _уточнить пользоваться_популярность ряд_специальный _добавить пассажирский_компания вице_президент пассажирский_перевозка миллиард_рубль быть_приобрести малое_кольцо железный_дорога неоднократно_выступать В_интервью российский_газета прошлое_год Я_считать что_цена +1411 |text житель сша текущий год потратить обновление айфон миллиард доллар . сообщать marketwatch ссылка исследование sellcell . . В целое апгрейд принадлежащий имя смартфон американец тратить миллиард доллар ежегодно . год процент житель сша покупать новое мобильный телефон . как указывать marketwatch частый обновление гаджет многое связать маркетинговый политика сотовый оператор . многие предлагать клиент льготный программа кредитование возможность обмен старый модель телефон современный . comscore доля apple приходиться процент рынок смартфон сша . прогноз компания asymco год доля производитель iphone американский рынок смартфон вырасти процент . apple начало продавать айфон год . выпуск модель iphone корпорация выпустить . смартфон iphone iphone быть представить начало год . продажа быть реализовать девять миллион аппарат . |ngramms житель_сша житель_сша миллиард_доллар миллиард_доллар В_целое принадлежащий_имя мобильный_телефон как_указывать сотовый_оператор предлагать_клиент процент_рынок год_доля американский_рынок начало_продавать модель_iphone смартфон_iphone быть_представить быть_реализовать девять_миллион +1412 |text американский yahoo ! рассматривать возможность приобретение крупный полдюжины небольшой компания . сообщать things digital ссылка неназванный источник внутри компания . О планировать сделка M A корпоративный собрание минувший рассказать hr директор ответственный слияние поглощение резес jacqueline reses . подробность сделка не_сообщить . информация things digital yahoo ! мочь рассматривать покупка компания сфера как рекламный технология разработка приложение смартфон . yahoo ! полностью пересматривать бизнес стратегия назначение пост гендиректор марисс возглавить компания прошлое год . сделка M A yahoo ! совершить руководство стать покупка сервис мобильный рекомендация stamped . В ход первое общение инвестор минувший сообщить что приоритет компания ближний время быть наращивание присутствие yahoo ! мобильный интернет . изменение гендиректор предпринять можно назвать закрытие семь сервис запрет удалённый работа . |ngramms интернетом_корпорация рассматривать_возможность небольшой_компания О_планировать покупка_компания прошлое_год покупка_сервис В_ход _сообщить ближний_время мобильный_интернет можно_назвать +1413 |text московский нефтеперерабатывающий завод крупный поставщик бензин центральный часть россия перенести плановый ремонт . сообщать газета известие ссылка газпром нефть компания принадлежать нпз . источник издание решение быть заседание минэнерго обсуждаться мера увеличение поставка бензин рынок фон значительный повышение оптовый цена . В газпром нефть впрочем что перенести ремонт компания решить совещание минэнерго согласование министерство . часть производство московский нпз быть закрытый месяц ремонтный работа завод продлиться . В компания уверять что существенно выпуск нефтепродукт ремонт не_сократиться . О что московский нпз вынужденный провести плановый ремонтный работа стать середина . завод заявлять что дефицит бензин рынок не_привести . повышение оптовый цена бензин привести что розничный цена начало год практически не_изменяться скакнуть неделя процент . деловой минэнерго провести представитель нефтекомпания совещание попросить нефтяник не_продавать бензин рубеж поставить рынок дополнительный объём топливо . федеральный антимонопольный служба попросить производитель объяснить связать скачок цена . В российский рынок мочь ждать очередной сокращение предложение как ремонт закрыться мозырский нпз белоруссия поставщик топливо россия . |ngramms нефтеперерабатывающий_завод часть_россия пресс_служба пресс_служба газпром_нефть газпром_нефть источник_издание увеличение_поставка что_перенести компания_решить часть_производство быть_закрытый работа_на_завод В_компания московский_нпз розничный_цена дополнительный_объём федеральный_антимонопольный_служба российский_рынок поставщик_топливо +1414 |text подать иск авиакомпания ютэйр ютэйр лизинг . писать ссылка материал арбитражный суд город москва . исковый заявление подать сумма деталь не_уточняться . В федеральный служба судебный пристав фссп агентство сообщить что арестовать имущество авиакомпания задолжать банка миллион доллар . пристав наложить арест семь вертолёт ютэйр . судебный пристать выехать тобольск адрес указанный постановление выявить имущество принадлежащий должник семь вертолёт ми . имущество арестовать передать ответственный хранение уполномоченный представитель взыскатель рассказать фссп . инвестиционный финансовый компания авиализинг подать иск банкротство авиаперевозчик ютэйр . В конец дочерний компания ютэйр ютэйр допустить дефолт облигация сумма миллиард рубль . В компания заявлять что ситуация являться временной не_оказать влияние операционный деятельность авиаперевозчик условие что удаться достигнуть договорённость кредитор . летом авиакомпания объявить программа снижение расход миллиард рубль год . включать сокращение персонал флот отказ неприбыльный маршрут . В зимний расписание ютэйр отказаться процент рейс уволить сотрудник . ютэйр объём перевозка авиакомпания россия находиться тяжёлый финансовый положение . ик авиализинг компания крупный сумма сбербанк банка россия сургутнефтегаз сложность миллиард рубль . |ngramms альфа_банк альфа_банк арбитражный_суд город_москва исковый_заявление федеральный_служба агентство_сообщить арестовать_имущество миллион_доллар семь_вертолёт семь_вертолёт пресс_служба финансовый_компания подать_иск В_конец дочерний_компания миллиард_рубль миллиард_рубль миллиард_рубль В_компания что_ситуация являться_временной операционный_деятельность достигнуть_договорённость программа_снижение сокращение_персонал финансовый_положение крупный_сумма +1415 |text горьковский автозавод нижний новгород год собрать тысяча автомобиль mercedes benz sprinter classic относиться класс грузопассажирский увеличить показатель год . как передавать сообщить малотоннажный автомобиль мерседес бенц русый сорный хез . В год совместно газ сделать большой прогресс собрать тысяча автомобиль . план год позитивный сожаление мочь предсказать какой быть внешний условие как повлиять заявить сорный хез . слово производственный программа мерседес бенц русый быть основываться требование исходящая покупатель . мерседес бенц русый что несмотря кризисный условие существовать компания заинтересовать вести бизнес россия . В немецкий автопроизводитель mercedes benz cars входящий группа daimler зафиксировать рост продажа россия процент несмотря негативный тенденция российский авторынок . контракт группа газ немецкий концерн daimler производство горьковский автозавод автомобиль mercedes быть подписать конец год . производство машина стартовать газа летом год . |ngramms нижний_новгород тысяча_автомобиль тысяча_автомобиль как_передавать вице_президент вице_президент вице_президент какой_быть производственный_программа вести_бизнес немецкий_автопроизводитель рост_продажа негативный_тенденция немецкий_концерн автомобиль_mercedes быть_подписать +1416 |text нафтогаз украина готовый увеличить поставка газа европа процент просьба газпром сообщаться сайт украинский компания . В отмечаться что поступить нафтогаз заявка газпром указанный ежедневный объесть прокачка миллион кубометр . масштаб заявка превышать предусмотренный контракт нак нафтогаз украина российский компания . несмотря украина выполнить заявка полный объём сообщение . нафтогаза просьба газпром увеличение объём транзит энергоноситель связать ремонт трубопровод opal соединять газопровод северный поток газотранспортный система германия страна центральный европа . отмечаться что год год газотранспортный система украина европейский потребитель поступить миллиард кубометр газа что процент большой прошлогодний . В текущий год глава антимонопольный комитет украина амка сообщить подготовка иск газпром сумма миллиард доллар . антимонопольный комитет украина начать расследование газпром прошлое год . В начало ведомство наложить штраф компания размер миллиард гривна миллиард доллар злоупотребление доминировать положение рынок услуга транзит природный газа территория украина период год . мнение амка монопольный положение газпром привести ущемление интерес нафтогаза украина . настоящее время взаимный претензия нафтогаза газпром рассматривать стокгольмский арбитражный суд . |ngramms нафтогаз_украина нафтогаз_украина сообщаться_на_сайт украинский_компания пресс_релиз миллион_кубометр увеличение_объём северный_поток газотранспортный_система газотранспортный_система центральный_европа миллиард_кубометр_газа процент_большой текущий_год антимонопольный_комитет антимонопольный_комитет _ миллиард_доллар миллиард_доллар начать_расследование В_начало наложить_штраф миллиард_гривна природный_газа территория_украина нафтогаза_украина арбитражный_суд +1417 |text куйбышевский транспортный прокуратура направить симоновский суд москва иск требование расторжение трудовой договор директор самарский аэропорт курумочий сообщать samru . В прокуратура считать что занимать должность не_иметь необходимый нея образование опыт работа . В указываться что руководитель быть технический лётный образование иметь образование специальность менеджмент . не_проходить аттестация положить лицо занимать должность исполнительный руководитель авиапредприятие . как передавать интерфакс год прокуратура провести проверка итог пришлый вывод . слово старший помощник прокурор назначение лицо должность директор мочь представлять угроза безопасность аэропорт . аэропорт курумочий расположить километр север самара . аэродром относиться класс Б пригодный большинство тип воздушный судно . пассажиропоток аэропорт прошлое год составить миллион человек . В год аэропорт обслужить миллион пассажир месяц . нынешний инвестор аэропорт являться компания кольцово инвест входить группа реновый . корпорация развитие самарский область владеть процент акция аэропорт структура курумочий инвест . компания заняться реконструкция объект стоимость составить миллиард рубль . |ngramms суд_москва _ _ занимать_должность занимать_должность опыт_работа как_передавать провести_проверка мочь_представлять воздушный_судно пассажиропоток_аэропорт миллион_человек миллион_пассажир аэропорт_являться входить_в_группа корпорация_развитие процент_акция компания_заняться миллиард_рубль +1418 |text автоваз конец год планировать премировать треть сотрудник исключение руководящий состав компания . заявить страница facebook советник президент автоваз . слово поощрить персонал компания намерить декада . план подтвердить президент автоваз бу андерссон . премировать сотрудник предприятие быть как отсутствие абсентеизм есть стопроцентный выход работа график достижение хороший качественный показатель результат соревнование производство заявить . размер премия быть равный среднемесячный заработок автоваз составлять тысяча рубль . советник президент компания отмечать что количество сотрудник мочь получить премия увеличиться половина сравнение год . образ количество премировать мочь составить тысяча человек . В сообщаться что автоваз возобновить работа корпоративный отпуск длиться . месяц конвейер простаивать завод быть провести модернизация технологический оборудование тысяча единица ремонт столовый помещение . |ngramms год_планировать _ компания_намерить подтвердить_президент бу_андерссон сотрудник_предприятие заявить_ премия_быть тысяча_рубль президент_компания количество_сотрудник получить_премия тысяча_человек возобновить_работа корпоративный_отпуск быть_провести тысяча_единица санитарно_бытовой +1419 |text генеральный директор главный конструктор конструкторский бюро арсенал сапегий уйти отставка . как писать газета коммерсантъ сапегий обратиться роскосомос просьба уволить собственный желание . следующий отставка быть согласовать сапегий возглавить машиностроительный завод арсенал . переход объяснить необходимость организовывать производство изделие интерес минобороны что потребоваться прорывный деятельность . неназванный источник роскосмос сообщить коммерсант что решение отставка быть что осень год сапегий одновременно руководить конструкторский бюро быть председатель совет директор одноимённый завод что мочь привести конфликт интерес . обстоятельство обнаружить внеплановый проверка провести осень год комиссия космический ведомство . исключить сапегий прима . лента . заинтересованность окончательно не_смочь рекомендовать должность руководитель конструкторский бюро отстранить заявить собеседник газета . официальный подтверждение арсенал роскосмос журналист не_получить . сайт организация качество генеральный директор указанный сапегий . газета конструкторский бюро арсенал руководить заместитель главный директор . что ближний время роскосмос провести конкурс должность . сапегий занимать должность генеральный директор конструкторский бюро арсенал год . осень год сапегий быть задержать подозрение хищение имущество завод стоимость миллион рубль . быть возбудить уголовный . предполагать сообщник сапегий признать виновный дать показание глава завод сапегий не_признать вина . В год быть прекратить . |ngramms генеральный_директор генеральный_директор генеральный_директор санкт_петербургский как_писать собственный_желание быть_согласовать неназванный_источник председатель_совет_директор конфликт_интерес собеседник_газета пресс_служба директор__ провести_конкурс занимать_должность быть_задержать имущество_завод миллион_рубль +1420 |text арбитражный суд ленинградский область признать незаконный решение совет директор ростелеком выплата бывший глава компания миллион рубль досрочный расторжение трудовой договор . сообщать новость . решение можно быть обжаловать апелляционный инстанция . суд вынести решение иск миноритарий пожаловаться выплата золотой парашют . мнение акционер решение совет директор компенсация бывший президент быть нарушение закон поскольку совет не_быть соответствующий полномочие . заинтересоваться прокуратура . надзорный ведомство констатировать что миллион рубль компенсация плюс миллион рубль премия быть выплатить руководитель время как долг ростелеком достигать миллиард рубль . заместитель генпрокурор рф написать глава минэкономразвития письмо предложить взыскать совет директор компания убыток связанный выплата золотой парашют . сообщать что ростелеком обратиться бывший президент просьба вернуть часть средство выплатить качество компенсация досрочный увольнение . |ngramms арбитражный_суд санкт_петербург ленинградский_область признать_незаконный совет_директор совет_директор бывший_глава_компания можно_быть апелляционный_инстанция вынести_решение _ _ бывший_президент бывший_президент нарушение_закон миллион_рубль миллион_рубль быть_выплатить миллиард_рубль рф__ глава_минэкономразвития совет_директор_компания часть_средство +1421 |text совладелец авиакомпания сибирь сообщить новость что акционер компания планировать покупка акция трансаэро несмотря планировать отзыв сертификат эксплуатант . соответствующий вопрос ответить . В очередь председатель совет директор аэрофлот андрос высказать мнение что смочь возродить трансаэро условие существенный финансовый вложение . подчеркнуть что компания оформить средство перевозка пассажир трансаэро как кредит перевозчик предпринять усилие возврат . министр транспорт рф максим сообщить что сертификат трансаэро быть отозвать компания не_смочь выполнять полёт . росавиация завершить проверка трансаэро эксперт подписать акт согласно деятельность компания становиться невозможный уточнить глава министерство . арбитражный суд ленинградский область заявление сбербанк возбудить банкротство трансаэро . слушание рассмотрение обоснованность заявление как следовать материал суд назначить . К производство заявление вступление банкротство перевозчик . рбк сообщить что гендиректор совладелец группа крупный акционер трансаэро подписать соглашение продажа акционер процент акция авиаперевозчик . сумма сделка участник не_раскрыть слово цена пакет составить существенно большой рубль предполагаться рамка несостоявшийся сделка аэрофлот сумма удовлетворить участник . трансаэро оказаться грань банкротство высокий нагрузка миллиард рубль включая лизинговый платёж фон падение спрос перелёт . С начало авиакомпания находиться операционный управление аэрофлот . перевозчик планироваться спасти передать крупный российский авиакомпания процент плюс акция трансаэро рубль . акционер не_успеть установленный срок консолидировать пакет . В результат начало правительство решить запустить процедура банкротство . продажа билет рейс трансаэро быть остановить . В настоящее время лизингодатель втб лизинг сбербанк лизинг вэб лизинг являться крупный кредитор трансаэро . воздушный флот авиакомпания состоять самолёт большой часть составлять пассажирский лайнер boeing airbus . самолёт готовый забрать группа аэрофлот . руководство обещать трудоустроить половина тысяча сотрудник трансаэро . перевозка пассажир трансаэро продлиться сила авиакомпания . клиент трансаэро купить билет поздний дата вылет обещать вернуть полный стоимость проездной документ . |ngramms совладелец_авиакомпания __сообщить акционер_компания покупка_акция сертификат_эксплуатант В_свой_очередь председатель_совет_директор компания_оформить перевозка_пассажир перевозка_пассажир министр_транспорт максим__сообщить быть_отозвать компания_не_смочь выполнять_полёт деятельность_компания глава_министерство арбитражный_суд санкт_петербург ленинградский_область материал_суд К_производство альфа_банк крупный_акционер _ процент_акция сумма_сделка существенно_большой _нагрузка миллиард_рубль лизинговый_платёж операционный_управление крупный_российский_авиакомпания процент_плюс установленный_срок В_результат процедура_банкротство быть_остановить В_настоящее_время являться_крупный флот_авиакомпания большой_часть лайнер_boeing тысяча_сотрудник +1422 |text крупный предприятие авиапром входящая объединить авиастроительный корпорация оак российский самолётостроительный корпорация миг рск миг гражданский самолёт сухой гсс смениться руководство . сообщать коммерсантъ ссылка источник авиапром . как писать газета глава рск миг заменить руководитель гсс . место прийти boeing commercial airplanes . отбор кандидат пост новое глава гсс вести лично президент оак слюсарь . как сообщать источник искать человек способный выстроить система послепродажный обслуживание учёт специфика мировой рынок . информация перестановка руководство подтвердить издание аппарат правительство . быть курировать стратегический разработка корпорация заняться создание единый инженерный центр самолётостроение . издание возглавить совет директор миг занять место первое оак . повод смена руководство рск миг стать рекомендация правительство разделение полномочие генконструктор гендиректор возглавлять корпорация год совмещать сообщать издание . зао гражданский самолёт сухой российский компания заниматься разработка производство маркетинг обучение лётный персонал послепродажный обслуживание включая поставка запасный часть оборудование гражданский самолёт . гсс являться разработчик производитель первое отечественный постсоветский пассажирский самолёт sukhoi superjet ssj . рск миг российский авиастроительный компания предприятие полный цикл объединять аспект конструирование изготовление реализация поддержание ремонт самолёт марка миг . |ngramms крупный_предприятие объединить_авиастроительный_корпорация гражданский_самолёт_сухой гражданский_самолёт_сухой как_писать_газета _ _ _ _ топ_менеджер отбор_кандидат новое_глава президент_оак как_сообщать мировой_рынок подтвердить_издание аппарат_правительство быть_курировать стратегический_разработка заняться_создание совет_директор вице_президент смена_руководство сообщать_издание российский_компания заниматься_разработка гражданский_самолёт гсс_являться первое_отечественный пассажирский_самолёт sukhoi_superjet российский_авиастроительный предприятие_полный самолёт_марка +1423 |text антимонопольный служба италия одобрить сделка приобретение роснефть процент холдинговый компания camfin владеть процент акция компания pirelli . сообщать новость . сделка не_привести создание укрепление доминировать позиция существенно снизить устранить конкуренция процитировать официальный письмо антимонопольный служба источник агентство нефтяной компания . сделка быть закрытый начало исходить цена евро акция компания pirelli . акция приобрести люксембургский структура роснефть long term investments luxembour . совет директор pirelli войти новый участник . трое представлять роснефть президент компания сечин коммерция логистика касимиро финансовый директор . О возможность вступление российский нефтяной компания акционерный капитал итальянский корпорация стать . В сообщение роснефть отмечаться что подразделение работать компания camfin стать акционер pirelli . сделка подготовить мочь быть реализовать получение разрешение регулировать орган сообщение . pirelli итальянский компания выпускать автомобильный шина . год россия pirelli занимать третье место крупный производитель шина . pirelli владеть процентный доля совместный предприятие госкорпорация ростёха pirelli tyre russia принадлежать шинный завод киров воронеж . |ngramms антимонопольный_служба антимонопольный_служба италия_одобрить процент_акция_компания существенно_снизить источник_агентство нефтяной_компания нефтяной_компания быть_закрытый акция_компания совет_директор новый_участник президент_компания _сечин вице_президент финансовый_директор _ О_возможность акционерный_капитал В_сообщение стать_акционер мочь_быть получение_разрешение итальянский_компания pirelli_занимать третье_место крупный_производитель pirelli_владеть +1424 |text акционер крупный российский производитель аммиак химкомбинат тольяттиазот скорый время быть предложить избрать новый состав совет директор председатель махлай возглавлять совет год . сообщить интерфакс источник близкий совет директор предприятие . слово махлай направить адрес компания отказ выдвижение кандидатура новый состав совет директор . подготовка проведение собрание акционер начаться . В быть определить повестка собрание . мнение генеральный директор центр политический информация махлай решение пойти польза предприятие лишний демонстрировать способность находить неожиданный эффективный управленческий стратегия . волевой решение . выход махлай скорее оздоровить обстановка предприятие послужить благо развитие считать . что обновление совет директор вовсе обязательно означать радикальный изменение корпоративный политика . решение покинуть совет махлай демонстрировать управленческий эффективность . есть решение можно назвать грамотный зрение менеджмент считать доктор экономический наука профессор кричевский . перемена мочь позитивно сказаться разрешение корпоративный конфликт подчеркнуть эксперт . что уход махлай не_связать вышеупомянутый конфликт . махлай легко поддаваться внешний прессинг уйти давно атака тольяттиазот иметь давний история добавить . дата проведение очередной собрание акционер тольяттиазот не_определить . В ближний время совет директор компания решение дать вопрос . В конец тольяттиазот разгореться корпоративный конфликт вследствие бывший нынешний председатель совет директор предприятие махлай сын быть вынудить уехать жить граница . тольяттиазот предприятие химический промышленность россия входящий десятка крупный мир производитель аммиак . |ngramms крупный_российский скорый_время быть_предложить новый_состав новый_состав совет_директор совет_директор совет_директор совет_директор возглавлять_совет собрание_акционер собрание_акционер быть_определить генеральный_директор центр_политический _ покинуть_совет можно_назвать доктор_экономический профессор_ корпоративный_конфликт корпоративный_конфликт подчеркнуть_эксперт что_уход В_ближний_время совет_директор_компания В_конец председатель_совет_директор сын_ быть_вынудить промышленность_россия крупный_в_мир +1425 |text южный коридор строить газпром подача газа юг россия наполнение южный поток оцениваться миллиард рубль миллиард как предполагаться . образ как сообщать интерфакс ссылка материал газпром начало год южный коридор подорожать полтора . сравнение инвестпрограмма компания год составлять большой триллион рубль . В год южный коридор газпром планировать потратить миллиард рубль инвестиция быть увеличить сравнение план процент . южный коридор пропускной способность миллиард кубометр год быть достроить год . доставить краснодарский край топливо воронежский нижегородский область пройти территория восемь регион мордовия саратовский волгоградский ростовский область . длина газопровод составить половина тысяча километр . образ километр южный коридор включая затрата компрессорный станция обходиться газпром миллион рубль . |ngramms южный_коридор южный_коридор южный_коридор южный_коридор южный_коридор южный_поток миллиард_рубль миллиард_рубль как_предполагаться как_сообщать год_составлять триллион_рубль планировать_потратить быть_увеличить миллиард_кубометр краснодарский_край восемь_регион ростовский_область тысяча_километр миллион_рубль +1426 |text прирост запас газпром год категория запас A B составить миллиард кубометр что процент большой объём добыча газовый монополист год миллиард кубометр . сообщаться корпорация . образ запас газпром увеличиваться быстрый добыча девять год подряд . год компания получить лицензия причём промышленный запас запас сложный геологический строение слабо разведать запас новый площадь увеличиться период миллиард тонна условный топливо миллиард тонна нефтяной эквивалент . объесть добыча газпром прошлое год увеличиться миллиард кубометр . рост возобновиться резкий обвал год когда добыча сократиться миллиард куб . год производство газа газпром стабильно рослый протяжение год . группа газпром учёт газпромнефть принадлежать лицензия пользование недра право добыча углеводород континентальный шельф . |ngramms прирост_запас миллиард_кубометр миллиард_кубометр миллиард_кубометр процент_большой объём_добыча пресс_релиз год_подряд компания_получить миллиард_тонна тонна_нефтяной добыча_углеводород +1427 |text росавиация распорядиться проверить стабилизатор самолёт sukhoi superjet выявить дефект эксплуатация лайнер передавать интерфакс ссылка источник . агентство отмечать что дефект проушина верхний нижний пояс установочный узел стабилизатор выявить авиакомпания ираэро . авиационный ведомство направить авиакомпания осуществлять полёт лайнер провести разовый проверка соответствующий узел самолёт . В осмотр представитель разработчик superjet холдинг гражданский самолёт сухой гсс . В гсс агентство подтвердить наличие дефект подчеркнуть что мочь создать небезопасный ситуация эксплуатация . поломка обнаружить проведение техобслуживание лайнер . sukhoi superjet ssj региональный самолёт новое поколение разработать произвести компания зао гражданский самолёт сухой входить объединить авиастроительный корпорация alenia aermacchi . базовый версия лайнер иметь дальность километр модификация lr километр . самолёт способный перевозить пассажир . |ngramms sukhoi_superjet sukhoi_superjet агентство_отмечать ведомство_направить разработчик_superjet гражданский_самолёт_сухой гражданский_самолёт_сухой В_гсс подтвердить_наличие региональный_самолёт новое_поколение объединить_авиастроительный_корпорация базовый_версия лайнер_иметь самолёт_способный +1428 |text американский компания начать процедура банкротство год сократиться процент сравнение предыдущий год . свидетельствовать дать american bankruptcy institute abi . как указывать бизнес банкротство страна год упасть минимум год . банкротство сша включая личный снизиться процент . год процедура банкротство начать большой тысяча американский организация год показатель составить тысяча . банкротство сша снизиться миллион год миллион . В среднее год совокупный банкротство компания физический лицо страна составлять миллион год . резко вырасти год как экономика сша оказаться рецессия . |ngramms американский_компания процедура_банкротство процедура_банкротство предыдущий_год свидетельствовать_дать как_указывать В_среднее банкротство_компания физический_лицо +1429 |text правительство не_рассматривать возможность слияние аэрофлот конкурент . как сообщать интерфакс заявить . зампред правительство сообщить что не_видеть предложение укрупнение принадлежащий государство перевозчик . информация возможный укрупнение опровергнуть глава аэрофлот . О что кабинет министр обсуждать слияние аэрофлот конкурент сообщить газета ведомость . издание аэрофлот мочь поглотить ютэйр сибирь трансаэро . приоритетный вариант считаться объединение сибирь принадлежать группа контролировать процент перевозчик . очередь подконтрольный супруг . заявить газета что считать возможность объединение как шантаж сторона государство . источник издание уточнять что ситуация объединение аэрофлот проясниться продажа госдоля сибирь размер процент . аукцион быть назначить государство пытаться акция . что торг быть предложить низкий цена госпакет мочь передать управление госкомпания быть запустить процесс консолидация . В итог госдоля сибирь выкупить предложить актив миллиард рубль стартовый цена миллиард рубль . |ngramms как_сообщать вице_премьер _ _ зампред_правительство принадлежащий_государство информация_о_возможный сообщить_газета супруг_ __заявить что_считать возможность_объединение источник_издание аукцион_быть быть_предложить низкий_цена быть_запустить В_итог миллиард_рубль миллиард_рубль стартовый_цена +1430 |text сталелитейный компания сша обратиться министерство торговля страна просьба вернуть пошлина российский сталь сообщать . металлург обвинить конкурент россия наводнение рынок дешёвый прокат . жалоба подать компания nucor steel arcelor mittal usa . указать что договор давность ограничивать торговля российский сталь нея мешать демпинг . соглашение позволять российский сталелитейный компания избегать антидемпинговый пошлина горячекатаный прокат . вместо пошлина сша установить квота нижний предел цена . американский сталелитейный бизнес считать что минимальный цена соглашение являться американский рыночный цена год . В текущий год сторона российский производитель сыграть благоприятный ценовый конъюнктура сша . привлечь внимание низкозатратный российский сталевар смочь воспользоваться конкурентный преимущество несмотря дорогой логистика . цена горячекатаный прокат сша находиться уровень доллар тонна экспортный цена российский продукция порт чёрный море доллар тонна . соглашение быть отменить северсталь быть применяться пошлина размер процент . новолипецкий металлургический комбинат магнитогорский металлургический комбинат грозить вовсе запретительный пошлина уровень процент . |ngramms компания_сша министерство_торговля позволять_российский минимальный_цена рыночный_цена российский_производитель привлечь_внимание конкурентный_преимущество цена_на_российский чёрный_море быть_отменить металлургический_комбинат металлургический_комбинат +1431 |text американский санкция мочь привести перенос срок запуск спг завод предприятие производство сжидить природный газа новатэк роснефть . сообщить директор european gas analysis передавать . эксперт прибыль попасть санкция компания снизиться счёт подорожание кредит заёмный капитал . считать что санкция мочь сократить доход федеральный бюджет . В существующий налоговый льгота российский нефтегазовый компания мочь уменьшиться . оператор единственный рф действующий завод производство спг рамка проект сахалин являться компания sakhalin energy . проект ямал спг предусматривать строительство завод производство сжидить природный газа спг мощность миллион тонна спг год ресурсный база месторождение . доказать вероятный запас газа месторождение составлять миллиард кубометр . реализация проект предполагать создание транспортный инфраструктура включать морской порт аэропорт район посёлок полуостров ямал . проект реализовать оао ямал спг акционер настоящее время являться оао новатэк процент французский total процент китайский cnpc процент . роснефть заявить что денежный поток компания позволять продолжать реализация текущий проект . В компания подчеркнуть что финансовый положение позволять выполнить ключевой показатель стратегия дивидендный политика . В роснефть проводить юридический анализ санкция . роснефть реализовать проект дальневосточный спг . работа планироваться завершить конец год запуск год . планировать мощность линия завод составлять миллион тонна перспектива расширение . партнёр роснефть проект являться американский exxonmobil . |ngramms американский_санкция перенос_срок природный_газа природный_газа _ _ компания_снизиться санкция_мочь федеральный_бюджет налоговый_льгота нефтегазовый_компания завод_по_производство ямал_спг ямал_спг строительство_завод миллион_тонна миллион_тонна южно_тамбейский запас_газа месторождение_составлять миллиард_кубометр реализация_проект предполагать_создание транспортный_инфраструктура морской_порт северо_восток полуостров_ямал проект_реализовать являться_оао денежный_поток компания_позволять В_компания финансовый_положение ключевой_показатель проводить_юридический реализовать_проект дальневосточный_спг планироваться_завершить завод_составлять +1432 |text трудовой книжка россия нынешний вид неудобный работодатель гражданин пенсионный фонд . заявить президент сбербанк сообщать новость . слово тратиться время заполнение книжка потеря документ создавать трудность начисление пенсия . жить условие хаотический законодательство быть написать двадцать год прошлое век . И неудобно работодатель нести гигантский расход . неудобно человек носиться трудовой книжка не_дать бог потерять . неудобно пенсионный фонд вручную заносить рассчитывать . известный как сторонник инновационный подход финансовый сфера называть главное футуролог сбербанк . К пример год ход восточный экономический форум заявить что год традиционный банковский система быть полностью сломить . заметить что произойти автоматизация внедрение технология блокчейн . банкир считать что оборот наличный деньга продержаться десять год . |ngramms нынешний_вид пенсионный_фонд пенсионный_фонд президент_сбербанк _ _ сообщать_риа_новость прошлое_век известный_как К_пример экономический_форум банковский_система быть_полностью что_это_произойти что_оборот десять_год +1433 |text авиакомпания аэрофлот намерить обжаловать суд штраф полёт крым выписать госавиаслужба украина сумма миллион доллар миллион гривна . сообщать новость . В аэрофлот отмечать что издержка авиакомпания что перевозчик приходиться совершать рейс обход украинский территория составить миллион доллар год . кризис украина стать причина прекращение деятельность лоукостер доброгод дочерний компания аэрофлот материал компания . В госавиаслужба украина выписать российский авиакомпания штраф сумма миллион гривна миллион доллар полёт крым . помимо аэрофлот штраф наложить русджет тысяча гривна red wings тысяча гривна вим миллион гривна газпромавиа тысяча гривна уральский авиалиния тысяча гривна . росавиация что госавиаслужба украина вправе штрафовать российский авиакомпания поскольку осуществлять полёт воздушный пространство рф . крым войти состав российский федерация год референдум ход житель полуостров высказаться присоединение рф . власть крым попросить москва республика состав россия получить согласие . киев продолжать считать что крымский полуостров являться территория украина . |ngramms полёт_в_крым миллион_доллар миллион_доллар миллион_доллар миллион_гривна миллион_гривна миллион_гривна украинский_территория стать_причина прекращение_деятельность дочерний_компания российский_авиакомпания российский_авиакомпания тысяча_гривна тысяча_гривна тысяча_гривна тысяча_гривна уральский_авиалиния войти_в_состав российский_федерация житель_полуостров власть_крым продолжать_считать крымский_полуостров территория_украина +1434 |text процент руководитель крупный российский компания готовый часть актив . треть инвестор не_бояться вложиться новое проект . стать результат глобальный опрос барометр уверенность компания аудиторско консалтинговый группа ey передавать рбк . половина процент респондент пожелать актив связанный риск прекращение деятельность треть процент экономически неэффективный актив . главный угроза развитие бизнес руководитель назвать геополитический напряжённость . риска стать изменение торговый политика скачка валютный курс цифровой трансформация . первоочередной влияние политика уверенность бизнес подтверждать эксперт . основной риска находиться политический плоскость . внешний внутренний фактор порождать невозможность долгосрочный планирование уверенный оценка перспектива вложение заявить руководитель международный правовой департамент ipt group . исследование проводиться весной совпасть наложить крупный российский бизнес американский санкция . В опрос руководитель российский компания сектор экономика . В начало банк россия зафиксировать резкий рост вывод средство россия . отток капитал российский рынок быть обусловить наращивание санкционный давление противостояние москва вашингтон . инвестор видеть российский актив высокий риска выводить деньга . |ngramms крупный_российский_компания новое_проект прекращение_деятельность развитие_бизнес валютный_курс основной_риска заявить_руководитель _ крупный_российский американский_санкция В_опрос российский_компания сектор_экономика В_начало банк_россия резкий_рост вывод_средство быть_обусловить российский_актив +1435 |text британский нефтегазовый концерн bp инвестировать миллиард доллар разработка газовый месторождение хаззать khazzan султанат оман . опубликовать сообщение компания выпустить итог переговоры правительство оман . bp подписать султанат договор купля продажа газа соглашение раздел продукция . британский компания стать оператор проект добыча газа пласт низка проницаемость tight gas . строительный работа начаться год газовый поставка год . компания намерить следующий год пробурить скважина довести ежедневный уровень добыча месторождение миллион кубометр газа тысяча баррель газоконденсат . газовый запас блок где расположить месторождение хаззать оцениваться триллион кубометр . соглашение bp оман рассчитать год . сторона султанат войти проект выразить желание государственный компания oman oil company exploration production претендовать процентный доля месторождение . bp заключить соглашение оман развитие месторождение блок год . площадь блок составлять тысяча квадратный километр . bp вести геологоразведка иордания цель найти газовый месторождение . компания намерить добывать газ сланцевый месторождение игла форд сша рассматривать возможность добыча нетрадиционный вид газа индонезия алжир . чистый прибыль bp квартал год составить миллиард доллар итог девять месяц достигнуть миллиард доллар . |ngramms британский_нефтегазовый миллиард_доллар миллиард_доллар миллиард_доллар газовый_месторождение газовый_месторождение сообщение_компания продажа_газа британский_компания стать_оператор добыча_газа строительный_работа компания_намерить компания_намерить кубометр_газа тысяча_баррель триллион_кубометр государственный_компания тысяча_квадратный сланцевый_месторождение рассматривать_возможность чистый_прибыль год_составить девять_месяц +1436 |text продажа планшетный компьютер второе квартал год сократиться сравнение десять процент . сообщение сайт американский компания international corporation заниматься исследование рынок информационный технология . В сообщение отмечаться что очередь спад затронуть крупный производитель планшет . В продажа продукция apple сократиться миллион миллион экземпляр . период samsung миллион планшет миллион первое квартал продажа asus снизиться процент миллион планшет . мнение аналитик idc падение продолжиться третье квартал конец год рынок планшет начаться подъесть счёт выход ожидать устройство . В обновить версия ipad выпустить apple . В время компания lenovo напротив суметь впервые история миллион планшет квартал . компания устройство составить миллион экземпляр . место объём продажа второе квартал год расположиться компания acer реализовать миллион планшет . как lenovo тайваньский компания существенно улучшить показатель процент большой планшет первое квартал . квартал год быть миллион планшет миллион большой период прошлое год . idc продажа сравнение аналогичный период год вырасти ведущий компания . исключение стать apple реализовать миллион устройство маленький второе квартал год . доля рынок компания сравнение второе квартал год сократиться процент . |ngramms год_сократиться год_сократиться десять_процент американский_компания информационный_технология В_сообщение_отмечаться крупный_производитель продажа_продукция миллион_экземпляр миллион_экземпляр миллион_планшет миллион_планшет миллион_планшет миллион_планшет миллион_планшет третье_квартал обновить_версия В_то_же_время место_по_объём процент_большой первое_квартал период_прошлое_год год_вырасти ведущий_компания второе_квартал второе_квартал доля_рынок +1437 |text ресторан русский кухня dr . расположить отель националь центр москва стать оплата карта национальный платёжный система мир наличный отказаться приём карта visa mastercard . писать ведомость . информация отказ приём карта платёжный система исключение национальный подтвердить администратор заведение . поддерживать национальный . владелец ресторан интервью издание village что платёжный система мир главный российский финансовый продукт нуждаться поддержка . считать что финансовый продукт требовать достаточно активный поддержка решение ввести ресторан dr . оплата кредитный карта мир . образ хотеть привлечь человек система соответствовать задача стоить поддерживать российский продукт концепция ресторан . ресторан важный чёткий концепция любим когда довести максимум пояснить ресторатор . выразить уверенность что посетитель ресторан не_быть проблема оплата . предупреждать что определённый карта . мир можно прийти куда угодный услышать american express наоборот не_принимать american express . нормальный . К ресторан есть банкомат добавить . как отмечать ведомость карта visa mastercard не_принимать московский ресторан принадлежащий китайский грамота . ход карта american express china union pay наличный . как dr . заведение установленный банкомат позволять снять наличность возврат комиссия администрация ресторан . национальный система платёжный карта мир начало работать россия год . необходимость создание возникнуть летом год когда visa mastercard санкция сша рф прекратить обслуживать карта ряд российский банк смп банка инвесткапиталбанк банка россия собинбанка . |ngramms платёжный_система платёжный_система платёжный_система приём_карта приём_карта _ финансовый_продукт финансовый_продукт кредитный_карта поддерживать_российский _выразить посетитель_ресторан как_отмечать принадлежащий_ платёжный_карта работать_в_россия санкция_сша обслуживать_карта ряд_российский +1438 |text продовольственный сеть поставщик предупредить срыв доставка продукт отсутствие счётчик необходимый новый система взимание плата проезд грузовик масса тонна федеральный дорога . писать коммерсантъ . логистический компания информация издание начать уведомлять ретейлер производитель продовольствие неготовность работать система взимание плата стать отказываться поставка продовольствие . порядок процент транспортный компания не_получить счётчик необходимый работа система . В транспортный компания заниматься перевозка товар крупный ретейлер производитель продовольствие очередь сообщить что миллион большегрузный машина необходимый подключить время выпустить тысяча счётчик часть раздать перевозчик . ситуация как заявить компания привести простой часть грузовик отказ перевозка небольшой расстояние . информация риска перебой поставка продовольствие коммерсант подтвердить тд интерторг сеть семья spar . расчёт компания зона риска попадать примерно процент перевозка . аналогичный информация озвучить retail group пятёрочка перекрёсток карусель . что собственный автопарк подключить система . система сбор плата быть презентовать год . планироваться что владелец грузовой машина начать платить рубль километр проезд федеральный трасса снижение тариф рубль выступать минэкономразвития . часть средство собранный грузовик поступить региональный дорожный фонд . деньга направить развитие проект государственно частное партнерство . система разработать компания рт инвест транспортный система выступать оператор . россия подписать постановление снижать размер оплата путь рубль километр год . С год год километр путь быть стоить рубль . представитель транспортный отрасль считать послабление недостаточный . стать что регион россия водитель большегрузный автомобиль предупредительный массовый акция протест введение покилометровый оплата проезд дорога федеральный значение . припарковать машина вдоль трасса требовать отменить сбор . В случай требование не_быть услышать дальнобойщик обещать воскресение не_выйти работа . К акция присоединиться водитель владелец транспорт масса свыше тонна подмосковье новосибирский ульяновский волгоградский область красноярский краснодарский край республика карелия регион . |ngramms новый_система проезд_грузовик логистический_компания транспортный_компания транспортный_компания аналогичный_информация retail_group грузовой_машина снижение_тариф часть_средство дорожный_фонд направить_на_развитие частное_партнерство транспортный_система премьер_министр россия___подписать быть_стоить транспортный_отрасль регион_россия акция_протест федеральный_значение требовать_отменить В_случай краснодарский_край +1439 |text росавиация возобновить действие сертификат лётный годность sukhoi superjet ssj принадлежащий аэрофлот . сообщать интерфакс ссылка производитель авиалайнер компания гражданский самолёт сухой . росавиация возобновить действие сертификат самолёт . ведомство запретить ssj аэрофлот летать начало неделя . причина решение стать сбоить работа система выпуск шасси предкрылок . запрет полёт последовать публикация деловой что ssj прийтись процент инцидент связанный отказ авиационный техника крупный российский авиакомпания . гсс выпустить сообщаться что неисправность выявить устраняться . производитель пообещать компенсировать аэрофлот убыток простой ssj . В гсс обращать внимание что новый самолёт год периодически выявляться неисправность . |ngramms действие_сертификат действие_сертификат sukhoi_superjet пресс_служба гражданский_самолёт_сухой работа_система процент_инцидент авиационный_техника крупный_российский_авиакомпания пресс_релиз В_гсс обращать_внимание новый_самолёт +1440 |text итог год первое место продажа россия занять водка озеры выпускать омский предприятие алкогольный сибирский группа . писать газета коммерсантъ ссылка дать исследовательский группа nielsen . образ водка зелёный марка бывший бессменный лидер российский рынок крепкий алкоголь середина год уступить позиция . итог доля зелёный марка российский рынок составить процент . доля озеры составить процент . оценка nielsen место достаться беленький производить синергия процент рынок . В конец год зелёный марка оставаться лидер рынок . доля рынок составлять процент . У озеры беленький быть процент рынок соответственно . председатель правление синергия заявить издание что лидер российский рынок стать беленький занять доля процент . объесть продажа беленький озеры оценить уровень . В алкогольный сибирский группа оценка nielsen согласиться . водка зелёный марка выпускать группа русский алкоголь контролировать польский концерн cedc . компания принадлежать россия завод . популярный бренд группа являться журавль парламент . итог прошлое год cedc занять первое место россия объём выпуск водка составить миллион литр . синергия принадлежать семь завод . В прошлое год группа выпустить миллион литр водка . популярный бренд беленький являться белуга . алкогольный сибирский группа итог прошлое год занимать объём производство страна третье место выпустить миллион литр водка . |ngramms первое_место первое_место писать_газета российский_рынок российский_рынок процент_рынок процент_рынок В_конец лидер_рынок доля_рынок председатель_правление __заявить объесть_продажа компания_принадлежать прошлое_год прошлое_год миллион_литр миллион_литр миллион_литр В_прошлое_год группа_выпустить производство_в_страна третье_место +1441 |text госкорпорация ростёха получить процент акция крупный российский производитель вакцина объединение микроген релиз корпорация поступить лента . . согласно указ президент россия акционирование предприятие передача акция национальный иммунобиологический компания входить ростёха быть завершить месяц . нпо микроген быть образовать год результат слияние государственный унитарный предприятие производить иммунобиологический препарат вакцина сывороток прочее . предприятие выпускать наименование продукция являться крупный российский производитель вакцина национальный календарь прививка . приобретение вакцина список дюжина заболевание год бюджет быть выделить миллиард рубль . ростёха начать консолидировать актив выпускать иммунобиологический лекарственный препарат летом год база входящая корпорация национальный иммунобиологический компания . |ngramms процент_акция крупный_российский крупный_российский научно_производственный президент_россия__ акция_национальный быть_выделить миллиард_рубль год_на_база +1442 |text еврокомиссия ек оштрафовать производитель микрочип qualcomm миллион евро миллиард доллар злоупотребление доминировать положение рынок . соответствующий решение опубликовать сайт ек . регулятор расследовать деятельность qualcomm год . как выяснить ек компания платить корпорация apple основный клиент миллиард доллар не_использовать iphone ipad комплектовать производитель . неважно насколько хороший продукция qualcomm поведение компания лишать потребитель фирма выбор возможность инновация . противоречить антимонопольный правило евросоюз решение ек . В год apple подать qualcomm суд что производитель чип пытаться помешать корпорация найти поставщик . apple сообщать что qualcomm требовать высокий плата лицензия разработка . В конец год apple объявить что отказаться процессор qualcomm польза микрочип mediatek . qualcomm американский компания крупный мир производитель комплектовать мобильный устройство . В фирма выпускать процессор snapdragon использоваться смартфон планшет apple samsung nokia asus xiaomi . |ngramms оштрафовать_производитель миллион_евро миллиард_доллар миллиард_доллар соответствующий_решение опубликовать_на_сайт как_выяснить корпорация_apple год_apple что_qualcomm В_конец американский_компания мобильный_устройство +1443 |text контракт покупка самолёт boeing generation авиастроительный компания заключить госкорпорация ростёха перейти втб . писать деловой издание . впоследствии самолёт быть передать лизинг аэрофлот . информация газета ведомость причина уход ростех сделка стать отказ финансирование сторона американский eximbank . источник рассказать издание что банка поменяться стратегия работа организация предоставлять средство проверить компания . что касаться сделка покупка самолёт boeing сторона ростех быть осуществлять дочка госкорпорация авиакапитал сервис . как надёжный партнёр банка не_рассматривать . коммерсантъ ссылка неназванный источник сообщать что инициатор переговоры выступить госбанк хотеть самолёт лизинг аэрофлот передать структура . ростёха информация издание выходить сделка премия сумма не_раскрываться . газета отмечать что сделка втб мочь быть заключить конец . принципиальный договорённость передача контракт втб достигнуть деталь сделка обсуждаться . ростёха договориться покупка самолёт boeing generation год . сумма покупка составить миллиард доллар . сообщаться что самолёт аэрофлот начать получать год . |ngramms самолёт_boeing самолёт_boeing самолёт_boeing авиастроительный_компания быть_передать причина_уход стать_отказ рассказать_издание что_касаться газета_отмечать что_сделка мочь_быть деталь_сделка договориться_о_покупка сумма_покупка миллиард_доллар +1444 |text компания роснефть готовый продолжать работа скважина университетский карский мор exxonmobil . как сообщать ход круглый стол арктический победа шаг энергетический будущее россия заявить заместитель директор департамент экологический безопасность роснефть сочнеть . В следующий год быть анализ результат проанализировать совокупность дать . ожидать что работа быть продолжить сочнеть . как сообщаться exxonmobil свернуть совместный проект роснефть санкция ввести россия . заявить представитель компания джефферс . соглашение стратегический сотрудничество exxonmobil роснефть предусматривать реализация совместный проект включая разведка потенциальный добыча шельф чёрный море арктика западный сибирь . exxonmobil свернуть работа совместный проект установленный крайний срок джефферс . слово министерство финансы сша учитывать сложность скважина университетский карский мор чувствительный экологический положение регион предоставить exxonmobil большой время сворачивание работа дать участок . роснефть exxonmobil начать разведочный бурение северный скважина рф университетский помощь платформа west alpha год . год сша ввести новое санкция россия ситуация украина . попасть российский энергетический компания газпром газпром нефть лукойл сургутнефтегаз роснефть . имя запретить поставлять товар услуга технология необходимый добыча нефть глубоководный участок арктический шельф сланцевый пласт . В евросоюз поддержать американский санкция опубликовать список российский компания попасть новое ограничение . санкция затронуть нефтяной сектор компания роснефть транснефть газпром нефть оборонный уралвагонзавод оборонпром объединить авиастроительный корпорация . санкционный список остаться российский банк сбербанк втб газпромбанк внешэкономбанк россельхозбанк . резидент ес не_смочь предоставлять имя кредит проводить операция новый выпуск облигация ценный бумага срок обращение свыше . В предыдущий пакет санкция предусматриваться ограничение операция ценный бумага срок погашение . |ngramms готовый_продолжать заявить_заместитель директор_департамент экологический_безопасность следующий_год работа_быть как_сообщаться совместный_проект совместный_проект совместный_проект пресс_служба предусматривать_реализация чёрный_море министерство_финансы большой_время дать_участок exxonmobil_начать северный_скважина ввести_новое ситуация_на_украина энергетический_компания газпром_нефть газпром_нефть имя_запретить поставлять_товар добыча_нефть арктический_шельф евросоюз_поддержать американский_санкция опубликовать_список российский_компания новое_ограничение нефтяной_сектор объединить_авиастроительный_корпорация санкционный_список российский_банк не_смочь_предоставлять имя_кредит проводить_операция выпуск_облигация ценный_бумага ценный_бумага обращение_свыше В_предыдущий пакет_санкция срок_погашение +1445 |text объединить авиакосмический корпорация оак являться производитель sukhoi superjet ssj заявить подписание меморандум внешэкономбанк компания гражданский самолёт сухой рамка быть осуществляться организация финансирование поставка десять ssj мексиканский компания interjet . поставка финальный заказчик воздушный суд пройти кастомизация центр superjet international венеция . поступить редакция лента . . новость ссылка заявление директор департамент азия мид замир кабулов сообщать что россия иран рамка межправительственный комиссия осень рассмотреть возможность поставка sukhoi superjet иранский рынок тегеран заявить заинтересованность проект . чиновник что направление работать компания boeing airbus российский производитель качественный репутация глаз иранский партнёр западный конкурент . сотрудничество рамка проект мочь быть обсудить сторона рамка заседание межправительственный комиссия назначить осень . слово кабулов тегеран слово заинтересовать проект . заинтересованность подтверждаться конкретный контракт резюмировать дипломат . вэб осуществлять финансирование экспортный поставка воздушный судно sukhoi superjet год . внешэкономбанк состав консорциум международный банк быть достигнуть соглашение финансирование поставка двадцать воздушный судно мексиканский авиакомпания interjet страховой обеспечение экспортный кредитный агентство sace coface . банк агент сделка выступить natixis . текущий синдикат банк профинансировать поставка пятнадцать воздушный судно . что финансирование поставка остаться воздушный судно быть осуществить год . |ngramms являться_производитель sukhoi_superjet sukhoi_superjet sukhoi_superjet подписание_меморандум гражданский_самолёт_сухой финансирование_поставка финансирование_поставка финансирование_поставка мексиканский_компания воздушный_суд пресс_релиз поступить_в_редакция рассмотреть_возможность компания_boeing российский_производитель западный_конкурент мочь_быть экспортный_поставка воздушный_судно воздушный_судно воздушный_судно воздушный_судно международный_банк быть_достигнуть мексиканский_авиакомпания сделка_выступить быть_осуществить +1446 |text власть белоруссия объяснить перевод гендиректор уралкалий домашний арест завершение основный следственный действие отношение . сообщать новость ссылка глава следственный комитет белоруссия . учитывать ходатайство родственник быть решение добавить . интерфакс ссылка источник сообщать что изменение мера пресечение стать итог переговоры белорусский стороной генпрокурор рф чайка . президент белоруссия что мочь быть экстрадирован россия отношение быть произвести необходимый расследование рамка закон . год глава уралкалий арестовать месяц минск встреча пригласить белорусский . подозревать организация преступный схема цель якобы являться захват контроль сбыт калийный удобрение . В начало белоруссия объявить розыск основный акционер уралкалий . поздний появиться сообщение продажа акция уралкалий официально информация не_подтверждаться . |ngramms власть_белоруссия _ _ _ _ _ следственный_действие следственный_комитет добавить_ изменение_мера рф_ президент_белоруссия мочь_быть год_глава пригласить_белорусский премьер_министр сбыт_калийный основный_акционер +1447 |text дочерний компания роснефть самаранефтегаз выиграть аукцион право эксплуатация нефтеносный площадь самарский область . распространить сообщение роснедра . торг состояться . идти самарский берёзовый участок . право участок структура роснефть заплатить миллион рубль миллион рубль . как сообщать извлекать запас углеводородный сырьё самарский месторождение достигать миллион тонна категория . извлекать запас берёзовый участок категория составлять миллион тонна . самаранефтегаз являться величина нефтедобывающий актив роснефть уступать юганскнефтегаз ванкорнефть . роснефть купить самаранефтегаз ранний принадлежать юкос как быть признанный банкрот год . помимо приобрести участок самаранефтегаз владеть белозерско чубовский озеркинский месторождение . компания являться ведущий производитель нефть самарский область . состояние конец год доказать запас углеводород самаранефтегаз составлять миллион баррель нефтяной эквивалент . |ngramms дочерний_компания выиграть_аукцион миллион_рубль миллион_рубль как_сообщать миллион_тонна миллион_тонна быть_признанный западно_коммунарный южно_неприковский компания_являться запас_углеводород миллион_баррель +1448 |text французский медиагруппа lagard процент акция аэрокосмический концерн eads выпускать самолёт airbus заниматься производство вертолёт ракета истребитель спутник . сообщаться lagard . стоимость сделка составить миллиард евро миллиард доллар . группа миллион акция рамка частное размещение квалифицировать институциональный инвестор . бумага быть разместить нижний граница объявить диапазон евро бумага . компания рамка сделка оценить миллиард евро . lagard сообщить намерение избавиться доля eads год . группа объяснять решение намерение сконцентрироваться развитие медиактивовый . часть акция eads процент выкупить концерн . В целое оборонный компания планировать потратить выкуп акция миллиард евро ближний год полтора . акция eads отреагировать падение сообщение сделка торг парижский фондовый биржа состояние москва бумага подешеветь процент евро . половина год объявление lagard план доля eads акция концерн торговаться отметка евро штука . |ngramms процент_акция самолёт_airbus заниматься_производство пресс_релиз сделка_составить миллиард_евро миллиард_евро миллиард_евро миллиард_доллар миллион_акция быть_разместить В_целое компания_планировать выкуп_акция фондовый_биржа +1449 |text компания infowatch разработать решение защита организация утечка дать позволить компания перехватывать разговор сотрудник мобильный телефон время нахождение офис . коммерсант рассказать источник российский сотрудник федеральный сотовый оператор . как гендиректор zecurion комплекс представлять нечто вроде фемтосот оборудование усиление сигнал сотовый устанавливать территория заказчик подключать сеть мобильный оператор . проходить устройство голосовой трафик быть перехватывать переводить текст помощь система распознавание анализировать ключевой слово предмет передача конфиденциальный информация . подтвердить разработка прототип дать система . планироваться что аппаратный устройство установленный компания быть интегрировать ядро сеть сотовый оператор стать доверенный базовый станция оператор сотовый . базовый станция быть перехватывать голосовой трафик мобильный телефон находиться зона действие рассказать . слово производитель устройство являться сторонний организация раскрыть партнёр отказаться . заказчик пояснить быть рекомендовать работа устройство режим выборочный контроль исключительно корпоративный sim карта . В случай звонок остальной sim карта принадлежащий сотрудник приходящий офис компания клиент партнёр быть отбрасываться устройство переадресовываться стандартный базовый станция сотовый оператор . вопрос законно внедрение подобный система мнение разделиться . слово решение infowatch не_согласоваться статья конституция рф гарантировать право неприкосновенность частный жизнь тайна телефонный переговоры . настаивать что разработка infowatch тайна телефонный переговоры не_нарушить . |ngramms _ _ защита_организация разговор_сотрудник мобильный_телефон мобильный_телефон сотовый_оператор сотовый_оператор сотовый_оператор мобильный_оператор дать_система базовый_станция базовый_станция базовый_станция производитель_устройство раскрыть_партнёр быть_рекомендовать работа_устройство исключительно_корпоративный частный_жизнь телефонный_переговоры телефонный_переговоры +1450 |text инфицировать вирус птичий грипп продукция компания ростовский область быть реализовать предел регион . россельхознадзор обращать внимание руководитель орган исполнительный власть субъект федерация необходимость усилить контроль перемещение птица птицеводческий продукция . сообщать сайт ведомство . россельхозназдор конец кропоткинский краевой ветеринарный лаборатория краснодарский край ход исследование быть выявить генетический материал вирус грипп птица тип А . результат подтвердить специалист владимирский федеральный центр охрана здоровье животное вниизж . В сообщение ведомство отмечаться что партия инфицировать птицеводческий продукция компания поступить реализация краснодарский край соседний ростовский область . быть выявить сочи предприятие краснодарский продуктовый дом . В дальнейший заразить продукция быть отправить ветеринарный сопроводительный документ неизвестный направление . информация дать факт направить правоохранительный орган принятие мера розыск сообщение россельхознадзор . В конец текущий год птицефабрика район московский область пушкинский сергиево посадский щелковский быть зарегистрировать вспышка птичий грипп . предположительно источник скорее стать птицефабрика посёлок биокомбинат щелковский район . В результат больница госпитализировать сотрудник контактировать больной птица . источник правоохранительный орган сообщить что предприятие сергиево посадский район птичий грипп погибнуть тысяча кура . птицефабрика смена расположить сергиево посадский район быть забитый тысяча кура предприятие орловский щелковский район тысяча птица . В власть подмосковье запретить продажа продукция сельхозпредприятие где быть обнаружить птичий грипп призвать местный житель не_покупать мясо птица нестационарный торговый . |ngramms продукция_компания продукция_компания ростовский_область ростовский_область быть_реализовать обращать_внимание орган_исполнительный сайт_ведомство краснодарский_край краснодарский_край быть_выявить В_сообщение В_дальнейший быть_отправить В_конец московский_область быть_зарегистрировать В_результат правоохранительный_орган продажа_продукция быть_обнаружить местный_житель +1451 |text россия китай приступить разработка широкофюзеляжный дальнемагистральный самолёт ближний время . соответствующий соглашение объединить авиастроительный корпорация оак китайский компания comac быть подписать шанхай рамка официальный визит кнр . официальный сообщение российский авиастроительный концерн . слово президент оак проект являться крупномасштабный область авиастроение . планироваться что новый лайнер занять существенный доля рынок как россия кнр потеснить boeing airbus . экономический обоснование проект быть представить правительство страна летом . оак объединять крупный авиастроительный предприятие россия . компания выпускать гражданский самолёт sukhoi superjet . государственный корпорация comac быть основать год . находиться шанхай . соучредитель государственный индустриальный авиационный корпорация китай avic . comac заниматься сертификация ближнемагистральный самолёт проектирование среднемагистральный лайнер C . |ngramms объединить_авиастроительный_корпорация быть_подписать официальный_визит _ _ авиастроительный_концерн президент_оак новый_лайнер существенный_доля быть_представить правительство_страна объединять_крупный гражданский_самолёт sukhoi_superjet штаб_квартира +1452 |text официальный представитель кремль песок прокомментировать решение окружный суд гаага бывший акционер компания юкос . чиновник призвать не_политизировать ситуация сообщать корреспондент лента . . далёкий рамка судебный процесс намерить последовательно защищать интерес рф ... российский юрист быть представить достаточно аргументированный доказательство ... польза что не_ратифицировать энергетический хартия подчеркнуть . песок что прецедент мочь изменить отношение россия международный право . когда решение несправедливый приветствовать когда считать справедливый добавить глава государство . бывший глава нефтяной компания сторона заявить что постановление суд демонстрировать решение запад ослабить давление . продолжить противостояние написать twitter . стать что окружный суд гаага отменить решение арбитраж выплата россия миллиард доллар польза бывший акционер юкос . быть установить что рассмотрение иск подобный род не_входить компетенция дать инстанция . истец обязать уплатить польза москва тысяча евро качество компенсация судебный издержка . летом год третейский суд гаага признать россия виновный нарушение энергетический хартия . В москва обязать выплатить бывший акционер юкос миллиард доллар качество возмещение ущерб . опираться решение офшор представлять интерес бывший акционер подать разный страна ряд иск требование взыскать средство арестовать актив российский госкомпания . |ngramms официальный_представитель _песок прокомментировать_решение бывший_акционер бывший_акционер бывший_акционер бывший_акционер судебный_процесс быть_представить отношение_россия международный_право пресс_секретарь глава_государство бывший_глава нефтяной_компания _ постановление_суд отменить_решение миллиард_доллар миллиард_доллар быть_установить рассмотрение_иск дать_инстанция тысяча_евро судебный_издержка признать_россия нарушение_энергетический обязать_выплатить представлять_интерес подать_в_разный ряд_иск арестовать_актив российский_госкомпания +1453 |text У российский правительство нет законный основание ограничить государственный гигант роснефть госкомпания наметить год приватизация башнефть издание специальный акт . сообщать ссылка документ правительство . агентство вывод прийти министр экономический развитие доклад направить неделя . правительство специальный акт ограничивать роснефть приватизация башнефть пакет башкирский добытчик купить скорее лукойл что намеренный переплачивать указывать агентство . правительство отказаться ограничивать право госкомпания приватизация сильно увеличить шанс дальнейший расширение . информация подтверждать появиться сообщение что приватизационный конкурс башнефть содержимый юридический ограничение торг госкомпания . распространение запрет снятие риска возможный юридический претензия конкурсный процедура требоваться новое распоряжение правительство сообщить rambler service источник знакомый ход подготовка конкурс . мочь затруднить возможность конкурс роснефть рфпить татнефть . В rns ссылка минэкономразвития сообщить что решение целесообразность подготовка отдельный постановление недопуск приватизация башнефть компания госучастие процент выше быть правительство . агентство финальный версия отчёт организатор конкурс девять заявка . рфпить лукойл разрабатывать башнефть месторождение требс роснефть фонд энергия планировать привлечь сделка пул инвестор ннк русснефть татнефть татнефтегаз руководить антипинский нпз . В конец эксперт фк открытие аналитический обзор назвать назвать роснефть оптимальный покупатель госпакет башнефть . |ngramms российский_правительство специальный_акт специальный_акт министр_экономический_развитие _ _ _ _ _ премьер_министр распоряжение_правительство rambler_news_service ход_подготовка организатор_конкурс В_конец +1454 |text нафтогаз украина потребовать международный суд восстановление контроль актив крым шельф компания сообщить официальный сайт . предприятие намерить взыскать судебный порядок россия порядок миллиард доллар убыток . В утверждаться что ущерб нафтогаза прекращение деятельность крым год составить миллиард гривна миллион доллар стоимость утратить актив оцениваться миллиард гривна миллион доллар . В сообщение указываться что нафтогаз потерять крым шельф месторождение нефть газа перспективный площадь залежь нефть газа глебовский подземный газохранилище тысяча километр магистральный газопровод газораспределительный станция единица плавсредство плавучий буровая установка многие объект производственный инфраструктура . релиз указываться упустить возможность вести разработка месторождение запас составлять миллиард кубометр газа миллион тонна нефть миллион тонна газоконденсат . компания напоминать что европейский суд право человек рассматривать иск украина россия признание незаконный присоединение крым . В иск заявить нанести убыток тысяча субъект ведение хозяйственный деятельность черноморнафтогаз . срок подача пояснение иск продлить европейский суд текущий год . помимо указывать компания год генпрокуратура украина внести единый реестр досудебный расследование сведение противоправный завладение имущество черноморнафтогаз признак уголовный правонарушение . сообщаться что черноморнефтегаз сложный международный обстановка провести операция перестановка современный установка одесский газовый месторождение расположить шельф чёрный море километр берег крым российский территориальный вода . стоимость оборудование оцениваться миллиард рубль . черноморнефтегаз являться частью тэк украина . присоединение крым рф год функционировать как крымский республиканский предприятие снабжающий житель полуостров газ . эксплуатировать месторождение углеводород шельф чёрный акватория азовский море сухопутный часть крымский полуостров . |ngramms нафтогаз_украина официальный_сайт намерить_взыскать судебный_порядок миллиард_доллар что_ущерб прекращение_деятельность год_составить миллиард_гривна миллиард_гривна миллион_доллар миллион_доллар В_сообщение тысяча_километр разработка_месторождение миллиард_кубометр_газа миллион_тонна_нефть миллион_тонна европейский_суд европейский_суд право_человек рассматривать_иск срок_подача текущий_год единый_реестр _установка газовый_месторождение северо_западный чёрный_море миллиард_рубль являться_частью присоединение_крым житель_полуостров крымский_полуостров +1455 |text арбитражный суд севастополь удовлетворить иск украинский компания городской структура постановить вернуть имущество нефтебаза сообщаться материал суд . иск быть подать правительство севастополь городской департамент имущественный земельный отношение гуп городской автозаправочный комплекс . В сообщаться что купить имущество нефтебаза год зарегистрировать сделка установленный закон порядок . остаточный стоимость передать гуп год недвижимость нефтебаза составлять миллион рубль отмечаться материал . суд признать законный право не_увидеть противоречие что регистрация осуществляться украинский закон . довод правительство севастополь что подтверждение возникнуть соответствие законодательство украина право собственность необходимый иной регистрация право установленный законодательство рф порядок являться необоснованный решение суд . суд обязать правительство севастополь городской автозаправочный комплекс вернуть недвижимость нефтебаза заплатить госпошлина рассмотрение иск . решение мочь быть обжаловать апелляционный инстанция месяц . крым войти состав россия провести год референдум большинство житель регион поддержать решение . киев отказаться признать результат голосование . вхождение полуостров состав рф быть провести национализация ряд актив принадлежащий украинский олигарх коломойский . |ngramms арбитражный_суд удовлетворить_иск украинский_компания материал_суд быть_подать правительство_севастополь правительство_севастополь правительство_севастополь отмечаться_в_материал суд_признать украинский_закон законодательство_украина законодательство_рф решение_суд рассмотрение_иск мочь_быть апелляционный_инстанция войти_в_состав год_референдум большинство_житель отказаться_признать результат_голосование быть_провести ряд_актив принадлежащий_украинский +1456 |text газпром настоящее время вести подготовительный работа мелководье нитка газопровод турецкий поток . заявить официальный представитель холдинг передавать . слово начало укладка нитка можно быть когда трубоукладчик pioneering spirit дойти турецкий берег повернуть обратно . сделать тоннель берег кс русский протащить труба . не_возбудиться нитка . сообщить что газпром начать строительство нитка газопровод турецкий поток дно чёрный море . отмечаться что морской дно уложить километр трубопровод . укладка работать корабль трубоукладчик audacia принадлежащий швейцарский компания allseas выиграть тендер газпром прокладка труба . быть заявить что москва ожидать брюссель железобетонный гарантия реализация проект нитка турецкий поток не_повториться опыт южный поток . интерес проект проявлять многие европейский партнёр . В итальянский eni массимо мантовани сообщить что компания не_исключать возможность стать акционер турецкий поток . член комитет палата россия энергетический стратегия беседа национальный служба новость нсн что турецкий поток быть полезный многий страна как газотранспортный система украина ладан дышать ближний время мочь выйти строй . как уточнить собеседник агентство анкара проект выгодный отношение . турция следовать стратегия начало правление президент тайипа эрдогана стремиться стать ведущий международный посредник торговля углеводородный сырьём эксперт . |ngramms турецкий_поток турецкий_поток турецкий_поток турецкий_поток турецкий_поток официальный_представитель _ _ можно_быть турецкий_берег давным_давно начать_строительство чёрный_море швейцарский_компания выиграть_тендер реализация_проект южный_поток европейский_партнёр вице_президент что_компания стать_акционер член_комитет торгово_промышленный национальный_служба_новость многий_страна газотранспортный_система как_уточнить собеседник_агентство президент_ ведущий_международный +1457 |text газпром подать ходатайство апелляционный суд округа швеция решение стокгольмский арбитраж касаться контракт нафтогаз транзит топливо . сообщать ссылка заявление российский компания . В газпром пояснить что подать апелляция существенный процессуальный нарушение как считать компания быть допустить вынесение решение стокгольмский арбитраж . газпром намеренный оспорить добиться частичный отмена решение . стокгольмский арбитражный суд обязать российский компания выплатить украинский миллиард доллар недопоставка согласовать контракт объём газа транзит . В арбитраж вынести решение контракт поставка газа украина обязать российский сторона пересмотреть ценообразование топливо . газпром решение опротестовать суд округа . |ngramms апелляционный_суд округа_ округа_ стокгольмский_арбитраж российский_компания российский_компания как_считать быть_допустить арбитражный_суд российский_сторона +1458 |text впервые год существование компания собраться выпустить алкогольный напиток . писать газета financial times . В решение назвать исторический . новый продукт ориентировать расти рынок спиртное япония . компания планировать завоевать доля сегмент коктейль фруктовый вкус содержимый процент спирт . традиционно готовиться крепкий алкогольный напиток ароматизатор газировать вода пользоваться большой популярность женщина . рынок напиток год демонстрировать ежегодный рост процент . что мочь выпустить алкогольный продукция заявлять глава японский подразделение компания хорх гардуньо jorge gardu . производитель газировать безалкогольный напиток год столкнуться сокращение продажа мир снижение потребление продукция содержимый сахар отмечать издание . В заявить что итог год компания значительно снизить содержание сахара напиток мир . идти газировка sprite fanta schweppes напиток . |ngramms coca_cola coca_cola coca_cola coca_cola coca_cola coca_cola алкогольный_напиток алкогольный_напиток писать_газета новый_продукт компания_планировать большой_популярность алкогольный_продукция подразделение_компания сокращение_продажа снижение_потребление отмечать_издание что_по_итог значительно_снизить +1459 |text государственный компания роснефть заключить соглашение поставка нефть трубопровод дружба польша . как официальный компания сумма сделка составлять миллиард доллар текущий цена . контракт польский компания pkn orlen рассчитать год . условие ежегодно польша быть отправляться миллион тонна нефть . образ роснефть отправить польша миллион тонна нефть . В роснефть указываться что конец госкомпания заключить соглашение клиент дочерний предприятие total shell российский нефть нужный германия . контракт total заключить год shell конец год возможность пролонгация . польша крупный клиент роснефть европа . итог год компания экспортировать сложность миллион тонна нефть год экспорт достигать миллион тонна . миллион тонна прийтись страна европа миллион тонна страна снг . миллион тонна уйти страна азиатско тихоокеанский регион . |ngramms государственный_компания поставка_нефть пресс_релиз пресс_релиз сумма_сделка миллиард_доллар польский_компания миллион_тонна_нефть миллион_тонна_нефть миллион_тонна_нефть что_в_конец заключить_соглашение дочерний_предприятие российский_нефть год_экспорт миллион_тонна миллион_тонна миллион_тонна миллион_тонна страна_европа страна_снг +1460 |text россия дать украина скидка газ месяц поскольку есть риска дальнейший снижение нефтяной цена . как сообщать заявить глава газпром встреча президент рф . решение размер скидка газ украина следующий трехмесячный период быть привязка предельный уровень цена нефть сформироваться квартал сообщить . понимать что тенденция есть нефтяной рынок мочь резко поменяться . мочь большой усугубиться зрение снижение риска существовать . решение какой размер скидка мочь быть конечный итог быть привязка предельный уровень цена быть складываться квартал . слово противный случай есть риска что цена поставка газа украина быть цена спот значительно уровень цена сосед украина . подтвердить что газпром не_быть предъявлять штраф украина невыбор газа месяц . украина попросить не_предъявлять штраф правило брать платить pay месяц послать навстречу заявить глава газпром . напомнить что цена российский газ украина составлять доллар тысяча кубометр . россия продлить льготный режим поставка российский газа украина год . размер дисконт превышать доллар тысяча кубометр . стать что нафтогаз украина направить письмо газпром предложение продлить действие особый условие поставка конец следующий осенний зимний период . В киев подчеркнуть что инициатива исходить еврокомиссия . В первое квартал год стоимость газа украина учёт скидка составлять доллар . поставка производиться рамка зимний пакет согласовать москва киев евросоюз год . |ngramms дать_украина есть_риска есть_риска дальнейший_снижение нефтяной_цена заявить_глава заявить_глава _ рф__ размер_скидка размер_скидка цена_на_нефть нефтяной_рынок мочь_быть уровень_цена уровень_цена что_цена поставка_газа российский_газ тысяча_кубометр тысяча_кубометр премьер_министр россия__ российский_газа нафтогаз_украина направить_письмо особый_условие В_киев что_инициатива В_первое_квартал скидка_составлять поставка_производиться согласовать_москва +1461 |text сеть закусочный burger king выиграть суд российский предприниматель маковеево зарегистрировать доменный имя burgerking.su . сообщать новость . арбитражный суд москва запретить маковеево использовать словесный обозначение burgerking burger king как являться сходный степень смешение товарный знак корпорация burger king . предприниматель обязать выплатить компенсация размер тысяча рубль истец требовать тысяча рубль . сайт burgerking.su предлагать купить франшиза причём burgerking.su использоваться реклама франшиза некий сеть фуд мистер . заседание суд адвокат маковеево отмечать что ответчик не_размещать спорный сайт информация бренд зарегистрировать burger king . адвокат истец настаивать что нарушение право товарный знак присутствовать . burger king подать иск маковеево год . следующий суд обеспечительный мера иск запретить регистратор владелец спорный домен передавать кома быть . упоминаться российский как продавец псевдофраншиза . В приписывать создание двойник торговый марка zarazara zara арбат люкс арбат престиж евросвязь евросеть . |ngramms предприниматель_ арбитражный_суд_москва товарный_знак товарный_знак выплатить_компенсация тысяча_рубль тысяча_рубль истец_требовать предлагать_купить что_ответчик адвокат_истец мера_по_иск _ торговый_марка +1462 |text оао роснефть разрабатывать правовой стратегия борьба европейский суд санкция запад писать wall street journal ссылка источник знакомый ситуация . сообщаться что образец быть взять стратегия оспаривание санкция применить иранский банк mellat . С помощь лондонский юридический фирма zaiwalla крупный банк иран выиграть ряд иск верховный суд великобритания высокий апелляционный инстанция гражданский генеральный суд еврсоюз люксембург . судья согласиться что ес нет достаточный доказательство обвинить mellat помощь иранский ядерный программа . ес обжаловать решение люксембургский суд . британский правительство обжаловать решение верховный суд соединить королевство мочь как страна входить евросоюз власть применять действующий санкция mellat не_быть вынести окончательный судебный решение уровень ес . несмотря судебный победа многие реальный препятствие работа mellat не_быть устранить . стать как банка иран целое пропагандистский успех фон усиление глобальный изоляция отмечать издание . процесс усложнить усилие евросоюз применение полный мера политика санкция отношение иран открыть путь возможный предъявление претензия . решение великобритания польза mellat банк подать высокий суд лондон иск миллиард доллар британский правительство . международный компания желать вести бизнес иранский банк получить прочный правовой обоснование возможность . как сообщаться фирма zaiwalla помочь роснефть доказать что как банк mellat являться ненадлежащий объект западный санкция . газета отмечать что роснефть получить официальный комментарий вопрос не_удаться . евросоюз опубликовать список российский компания попасть новое ограничение . санкция затронуть нефтяной сектор компания роснефть транснефть газпром нефть . резидент ес не_смочь предоставлять имя кредит проводить операция новый выпуск облигация ценный бумага срок обращение свыше . санкция предусматривать ограничение доступ зарубежный финансирование . запрещаться поставка товар технология поддержка российский проект добыча нефть глубоководный участок арктический шельф сланцевый пласт . американский компания exxonmobil сообщить что выходить проект бурение карский мор участвовать совместно роснефть . |ngramms европейский_суд санкция_запад wall_street_journal быть_взять С_помощь юридический_фирма верховный_суд верховный_суд апелляционный_инстанция обжаловать_решение обжаловать_решение британский_правительство британский_правительство судебный_решение отмечать_издание высокий_суд миллиард_доллар международный_компания вести_бизнес как_сообщаться западный_санкция газета_отмечать пресс_служба официальный_комментарий опубликовать_список российский_компания новое_ограничение нефтяной_сектор газпром_нефть не_смочь_предоставлять имя_кредит проводить_операция выпуск_облигация ценный_бумага обращение_свыше предусматривать_ограничение зарубежный_финансирование поставка_товар добыча_нефть арктический_шельф американский_компания +1463 |text В крым перестать выпускать обслуживать карта платёжный система visa mastercard . единственный банк делать быть генбанк сосредоточиться выпуск карта российский система мир сообщать ссылка представитель кредитный организация . год закончиться процесс замена банковский карта платёжный система visa mastercard эмитировать ао генбанк карта платёжный система мир . карта система visa mastercard эмитировать ао генбанк не_произвести замена не_обслуживаться рассказать банка . генбанк продолжить обслуживать банкомат карта visa mastercard эмитировать банка не_работать крым боязнь санкция . генбанк сообщить что вынужденный перестать обслуживать выпустить карта международный платёжный система санкция сша ввести год . генбанк являться второе размер актив банк крым российский национальный коммерческий банка рнкб . кредитный организация сосредоточиться работа полуостров год как быть передать санация собинбанка входящий банковский группа россия . санкция сша евросоюз год послужить причина создание платёжный система мир . внутрибанковский операция обрабатываться отечественный процессинговый центр . |ngramms перестать_выпускать платёжный_система платёжный_система платёжный_система платёжный_система платёжный_система кредитный_организация кредитный_организация банковский_карта что_вынужденный перестать_обслуживать санкция_сша размер_актив российский_национальный быть_передать послужить_причина +1464 |text строительство турецкий поток занять большой время планироваться потратить строительство южный поток сообщить официальный представитель газпром эфир радиостанция коммерсантъ fm . реализация проект потребоваться большой время южный поток . что быть продвинуть стадия проектирование сообщить . слово работа ускориться когда быть согласовать выход турецкий берег . не_планироваться создавать инфраструктура приём газа турецкий поток территория евросоюз . слово газпром работать партнёр европа тема строительство инфраструктура приём газа турецкий поток делать не_быть . работать европейский партнёр труба быть сторона заниматься европейский территория не_быть . О проект турецкий поток президент рф заявить год . москва анкара договориться строительство газопровод дно чёрный море вместо южный поток россия отказаться строить разногласие евросоюз . |ngramms турецкий_поток турецкий_поток турецкий_поток турецкий_поток большой_время большой_время планироваться_потратить южный_поток южный_поток южный_поток официальный_представитель _ быть_согласовать турецкий_берег приём_газа приём_газа европейский_партнёр О_проект президент_рф __заявить строительство_газопровод чёрный_море россия_отказаться +1465 |text газпром завершить ликвидация совместный предприятие украинский бизнесмен фирташ швейцарский газовый трейдер rosukrenergo . сообщать rambler service ссылка материал российский компания . ликвидация rosukrenergo мнение участник рынок быть связать арест фирташа . В настоящее время газовый бизнес фирташа перевести компания ostchem holding . год суд вена отклонить запрос минюст сша экстрадиция фирташа . соединить штат обвинить взяточничество получение лицензия разработка титановый месторождение индия что позволить бизнесмен войти тройка крупный мировой производитель титан . защита отмечать что доказательство причастность коррупция американский сторона не_предоставить . год быть арестовать вена запрос фбр отпустить подписка невыезд внесение рекордный австрия залог миллион евро . основной капитал заработать благодаря компания rosukrenergo акция владеть . В период год структура выступать посредник газпром украинский нафтогаз . бизнесмен считаться богатый человек украина . |ngramms бизнесмен_ rambler_news_service российский_компания участник_рынок В_настоящее_время соединить_штат лицензия_на_разработка что_позволить тройка_крупный мировой_производитель американский_сторона _быть_арестовать миллион_евро богатый_человек +1466 |text американский автомобильный корпорация general motors не_планировать закрывать завод . как сообщать новость заявить губернатор северный столица . закрывать производство петербург компания не_планировать . завод проходить оптимизация производство учёт экономический ситуация изменение курс валюта сообщить . слово количество выпустить автомобиль завод петербург итог год оказаться год очередь снижение объём производство предприятие general motors . губернатор признать что петербургский автокластер столкнуться год определённый риска . есть как повод оптимизм повод беспокойство . В слово toyota nissan расширять производство мощность завод вырасти . В прогнозировать ситуация автопром не_взяться . курс рубль понизить себестоимость производство автомобиль россия петербург рентабельность завод . нельзя что риска предопределить . возможный . интерфакс сообщить ссылка источник что что general motors мочь закрыть завод петербург западный санкция . компания опровергнуть информация что завод работать штатный режим . стать что general motors решить приостановить поставка машина российский дилер . В компания что связать нестабильность курс рубль . производство российский завод компания продолжаться . |ngramms американский_автомобильный general_motors general_motors general_motors general_motors санкт_петербург сообщать_риа_новость заявить_губернатор северный_столица _ компания_не_планировать оптимизация_производство экономический_ситуация курс_валюта снижение_объём производство_на_предприятие что_петербургский есть_как курс_рубль курс_рубль автомобиль_в_россия западный_санкция что_завод решить_приостановить В_компания завод_компания +1467 |text каспийский нефтяной компания являться совместный предприятие роснефть газпром лукойл получить лицензия месторождение каспийский мор . соответствующий распоряжение подписать рф сайт правительство . компания получить право геологоразведка добыча месторождение быть открыто год . запас оцениваться миллион баррель нефть миллиард кубический фут газа . газпром контролировать процент акция каспийский нефтяной компания остальной доля равный степень распределить роснефть лукойл . предприятие владеть лицензия разработка одиннадцать перспективный месторождение север каспийский море . совокупный запас нефть мочь достигать миллион тонна нефть миллиард кубометр газа . сведение глава минприрода приводить интерфакс запас углеводород каспий достигать миллиард тонна условный топливо . донский что настоящее время государство выдать лицензия разработка каспийский шельф . |ngramms нефтяной_компания нефтяной_компания совместный_предприятие западно_ракушечный соответствующий_распоряжение премьер_министр рф__ компания_получить миллион_баррель процент_акция лицензия_на_разработка лицензия_на_разработка запас_нефть миллион_тонна_нефть миллиард_кубометр_газа _ запас_углеводород +1468 |text украинский госпредприятие завершить конкурс выбор народный название самолёт ан . результат машина быть решить не_называть имя лидер организация украинский националист бандёр сообщаться страница компания facebook . обнародование промежуточный результат голосование мирный ход народный конкурс вмешаться политика . борьба название стать повод международный политический баталия объяснить предприятие . В что мочь допустить использование собственный бренд политический противостояние новый транспортник оставаться международный классификация как ан . согласно результат конкурс наибольший количество голос получить вариант бандёр киборг . вариант предложить ход конкурс быть раскритиковать российский государственный деятель . курировать российский правительство вопрос сотрудничество оборонзаказ написать twitter что ответ бандрать отечественный истребитель перехватчик прийтись назвать смерш . полёт ан совершить год . новый транспортник способный перевозить тонна груз расстояние свыше километр тонна расстояние километр . сообщаться что украина договориться поставка машина саудовский аравия . |ngramms выбор_народный военно_транспортный самолёт_ан быть_решить лидер_организация украинский_националист результат_голосование стать_повод пресс_служба что_не_мочь допустить_использование собственный_бренд результат_конкурс наибольший_количество _ _ быть_раскритиковать российский_государственный вице_премьер российский_правительство военно_технический написать_в_twitter тонна_груз что_украина договориться_о_поставка +1469 |text российский авиакомпания мочь перевезти год рекордный миллион пассажир . заявить глава минтранс россия максим эфир телеканал россия . предполагать что конец год подойти рекордный планка миллион пассажир быть перевезти российский авиакомпания министр добавить что аэропорт перевезти большой наличие зарубежный компания . В прошлое год российский авиакомпания перевезти миллион человек . важный критерий существенный рост назвать обновление лётный инфраструктура появление безбагажный невозвратный тариф . министр пояснить что закон позволять авиакомпания продавать подобный билет направить снижение стоимость перевозка . В целое удаться снизить стоимость авиабилет авиаперелёт впервые долгий период время практически процент рапортовать . гендиректор турсервис biletix сизинец предположить что наоборот отмена обязательный норма бесплатный провоз багаж владелец невозвратный авиабилет привести подорожание перелёт поскольку авиакомпания скорее быть брать дать категория пассажир дополнительный плата транспортировка багаж . |ngramms российский_авиакомпания российский_авиакомпания российский_авиакомпания миллион_пассажир миллион_пассажир минтранс_россия максим_ зарубежный_компания В_прошлое_год миллион_человек существенный_рост _назвать снижение_стоимость В_целое снизить_стоимость период_время быть_брать дать_категория пассажир_дополнительный +1470 |text бюджетный средство выделяться компания курорт северный кавказ превышать объём достаточный деятельность организация . как сообщать интерфакс заявить аудитор счётный палата агапец . В реклама разработка концепция год быть потратить миллион рубль . шиковать заявить аудитор . слово компания международный экономический форум давоса год быть потратить миллион рубль . В кск арендовать автомобиль mercedes поездка гостиница место проведение форум . цель быть израсходовать тысяча швейцарский франк тысяча рубль . кск потратить тысяча рубль такси . агапец что расходование средство кск быть неэффективный многий статья . оплата перелёт сотрудник член совет директор год компания выделить миллион евро миллион рубль . время миллион рубль уйти представительский расход служебный командировка миллион рубль компенсация расход член совет директор миллион рубль содержание служебный автотранспорт жильё сотрудник расход аренда офисный помещение . слово аудитор излишний средство выделить бюджет кск зачислять депозит банка получить счёт доход размер миллион рубль год . агапец подчеркнуть что размещение средство не_являться нарушение поскольку форма оао допускать вид деятельность извлечение прибыть . как аудитор расход заявить цель не_соответствовать . счётный палата направить материал проверка правоохранительный орган решить вопрос целесообразность возбуждение уголовный . В кск идти проверка генпрокуратура фсб полиция предмет нецелевой использование бюджетный средство компания получать создание развитие туристический зона северный кавказ . В быть начать проверка не_сообщаться . В конец президент россия раскритиковать руководство кск задержка строительство трамплин русский горка олимпиада сочи . глава государство обратить внимание рост стоимость проект миллиард восемь миллиард рубль . председатель совет директор компания отправить отставка . |ngramms бюджетный_средство бюджетный_средство курорт_северный превышать_объём деятельность_организация как_сообщать палата_ быть_потратить миллион_рубль миллион_рубль миллион_рубль миллион_рубль миллион_рубль миллион_рубль миллион_рубль международный_экономический_форум год_быть автомобиль_mercedes место_проведение тысяча_рубль тысяча_рубль совет_директор совет_директор компания_выделить миллион_евро компенсация_расход вид_деятельность заявить_цель материал_проверка компания_получать быть_начать В_конец президент_россия__ глава_государство стоимость_проект миллиард_рубль председатель_совет_директор компания__ +1471 |text владелец авиакомпания british airways international airlines group стать корпорация заявить что независимость шотландия быть нея выгодный сообщать . слово гендиректор компания уилль уолш не_волноваться перспектива ba голосование . весьма вероятно что независимый шотландия отменить акциз авиапассажир что позволить компания увеличить прибыть выполнение рейс страна . слово уолш прозвучать выражение озабоченность повод референдум независимость шотландия сторона британский компания основное финансовый сектор . В беспокойство заявить страховщик standard life royal bank scotland . министр финансы великобритания осборн заявить что шотландия получить суверенитет не_смочь сохранить качество валюта британский фунт стерлинг как планировать . пресса сообщаться что получение независимость шотландский магазин мочь повыситься цена . референдум независимость шотландия состояться год . право голосовать немой получить гражданин великобритания британский содружество постоянно проживать шотландия . В случай положительный решение население страна быть объявить независимый год . international airlines group являться крупный авиапассажирский корпорация мир . холдинг объединять ведущий европейский перевозчик british airways iberia airlines . группа иметь доля британский flybe . |ngramms international_airlines international_airlines гендиректор_компания что_позволить компания_увеличить выполнение_рейс британский_компания финансовый_сектор министр_финансы _осборн фунт_стерлинг магазин_мочь право_голосовать В_случай положительный_решение население_страна быть_объявить являться_один_из_крупный +1472 |text генеральный директор компания силовой машина отправить отставка . решение совет директор сообщать интерфакс . отмечаться что полномочие прекратить досрочно расторгнуть трудовой договор . причина решение не_называться . не_указываться кто стать новый директор компания . сообщить возбуждение уголовный отношение гендиректор силовой машина . задержать подозрение покушение разглашение государственный тайна . немецкий siemens запустить производство газовый турбина петербург младший партнёр силовой машина . мера турбина перевезти крым что нарушать санкционный режим . санкция евросоюз ввести воссоединение полуостров россия весной год запрещать поставка регион энергетический технология . В siemens пообещать мера не_допустить использование оборудование незаконный путём . В год крым оказаться отрезать энергоресурсы украина . В президент россия пообещать что проблема энергообеспечение полуостров быть полностью решить конец . В год заявить что работа присоединение газотранспортный система регион российский магистральный газопровод завершить . |ngramms генеральный_директор_компания силовой_машина силовой_машина силовой_машина _ совет_директор стать_новый директор_компания санкт_петербург немецкий_siemens запустить_производство санкционный_режим В_siemens президент_россия__ полуостров_быть газотранспортный_система +1473 |text арбитражный суд лишить российский нефтяной компания возможность получать не_причитаться имя льгота разработка истощаться месторождение . номер писать газета ведомость . согласно норма законодательство год нефтяной компания мочь выплачивать снизить налог добыча полезный ископаемое ндпить осваивать месторождение выработать процент . большой истощённый участок выше скидка ндпить максимальный льгота составлять процент . разночтение касаться как применяться специальный формула расчёт ндпить как следовать определять изначальный запас месторождение . В налоговый служба минфин считать что надо учитывать запас начало разработка участок . В нефтяной компания полагать что надо отталкиваться запас месторождение состояние год . судебный практика находиться сторона нефтяник . как указывать газета федеральный арбитражный суд округа встать сторона налоговик калмпетрол постановить доначислить налог нефтяной компания . федеральный налоговый служба подсчитать что разночтение законодательство позволять нефтяник не_заплатить бюджет россия триллион рубль налог . |ngramms арбитражный_суд арбитражный_суд нефтяной_компания нефтяной_компания нефтяной_компания нефтяной_компания писать_газета максимальный_льгота как_следовать налоговый_служба налоговый_служба минфин_считать что_надо что_надо как_указывать северо_кавказский триллион_рубль +1474 |text втб месяц планировать достигнуть окончательный договорённость компания мечело реструктуризация долг банк подписать финальный документ . сообщать новость ссылка представитель банка . слово мечело погасить просрочить обязательство существовать заключение предварительный договор реструктуризация задолженность . сообщаться что мечело договориться втб газпромбанк реструктуризация долг . увеличиться порядок операционный прибыль позволить преодолеть кризис ликвидность достигнуть договорённость реструктуризация крупный кредитор газпромбанк втб . продолжать переговоры сбербанк намерить достигнуть компромисс отмечать гендиректор компания корж . улучшить финансовый положение мечело удаться счёт девальвация рубль что позволить увеличить выручка экспортный поставка продукция снизить долг долларовый эквивалент . В отчётность компания квартал опубликовать сообщаться рост показатель ebitda прибыль вычет процент налог износ амортизация прошлогодний показатель миллион доллар . мечело удаться сравнение квартал вдвое снизить чистый убыток составить миллион доллар . выручка компания упасть процент миллиард доллар . рентабельность ebitda составить процент процент год . чистый долг холдинг конец первое квартал уменьшиться процент составить миллиард доллар . долг газпромбанк составлять примерно миллиард доллар втб миллиард доллар сбербанк миллиард доллар . |ngramms пресс_служба реструктуризация_задолженность реструктуризация_долг операционный_прибыль достигнуть_договорённость крупный_кредитор гендиректор_компания_ финансовый_положение девальвация_рубль что_позволить экспортный_поставка отчётность_компания показатель_ebitda миллион_доллар миллион_доллар чистый_убыток выручка_компания миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар ebitda_составить чистый_долг первое_квартал составлять_примерно +1475 |text заместитель генеральный директор ростех скворцовый занять должность председатель совет директор автоваз . госкорпорация прислать редакция лента . . заместитель председатель совет директор автопроизводитель стать левота являться старший renault член управлять комитет компания . голосование предложить кандидатура быть провести следующий собрание акционер автоваз состояться тольятти . сообщаться что президент альянс renault nissan гон генеральный директор госкорпорация ростёха чемезов продолжить реализация стратегия развитие волжский автозавод . мор занять пост президент автоваз . должность генеральный директор renault румыния руководить коммерческий производственный деятельность компания . слово глава ростех чемезов ключевой задача новое президент стать увеличение доля рынок разработка эффективный процесс загрузка российский производство компонентный база создание высококонкурентный продукт . предыдущий президент автоваз бу андерссон написать заявление увольнение . сообщаться что шведский найти работа крупный частный компания . глава госкорпорация ростёха чемезов вменить вина бу андерссон чрезмерный увлечение закупка иностранный комплектовать отечественный машина что привести рекордный убыток миллиард рубль . бу андерссон возглавить автоваз год год быть президент группа газ . деятельность подвергаться критика жёсткий кадровый политика андерссон автоваз начаться массовый сокращение рабочий что спровоцировать акция протест тольятти . |ngramms генеральный_директор генеральный_директор генеральный_директор занять_должность председатель_совет_директор председатель_совет_директор пресс_релиз вице_президент быть_провести собрание_акционер альянс_renault стратегия_развитие _мор пост_президент деятельность_компания новое_президент доля_рынок российский_производство предыдущий_президент бу_андерссон бу_андерссон бу_андерссон топ_менеджер частный_компания глава_госкорпорация иностранный_комплектовать миллиард_рубль начаться_массовый сокращение_рабочий акция_протест +1476 |text изделие немецкий концерн siemens российский рынок мочь быть заместить продукция компания . заявить министр энергетика новак передавать новость . слово министр изделие мочь быть произвести отечественный компания . что поставлять siemens мочь поставлять компания . многое рамка импортозамещение научиться производить соответствующий оборудование новак . мнение siemens выгодно покидать российский рынок У нет риск . конкурентный рынок компания работать заявить министр . немецкий концерн объявить что получить достоверный информация модернизация перемещение крым турбина быть поставить летом год проект тамань краснодарский край . сделать быть говорят siemens нарушение контрактный обязательство . компания хотеть добиться возвращение оборудование тамань предотвратить новое поставка крым . концерн объявить разрыв лицензионный соглашение российский партнёр поставка оборудование электростанция . поставка турбина полуостров siemens мочь обвинить нарушение санкционный режим российский регион . |ngramms немецкий_концерн немецкий_концерн мочь_быть мочь_быть министр_энергетика передавать_риа_новость отечественный_компания российский_рынок компания_работать заявить_министр что_получить поставить_летом краснодарский_край добиться_возвращение поставка_в_крым соглашение_с_российский поставка_оборудование siemens_мочь обвинить_в_нарушение санкционный_режим российский_регион +1477 |text российский компания доставка груз стать чаща отдавать предпочтение автомобильный транспорт нежели перевозка помощь ржд . сообщать финмаркет ссылка опрос руководитель отечественный предприятие провести специалист институт экономический политика имя . В выборка войти предприятие одновременно пользоваться железнодорожный автомобильный транспорт . согласно опрос процент предприятие готовый увеличивать грузоперевозка автомагистраль снижение использование железный дорога . наращивать грузоперевозка помощь ржд ущерб автотранспорт готовый восемь процент компания . мнение эксперт опросить информагентство основный причина груз уходить железный дорога автомагистраль можно назвать высокий тариф ржд грузоперевозка большой срок доставка частый просрочка соблюдение . как считать специалист существующий тенденция не_измениться год железный дорога быть транспортироваться низкодоходный груз перевозка настоящее время основное убыточный . В конец руководитель федеральный антимонопольный служба фас раскритиковать тариф ржд слово достигнуть высокий мировой значение . что монополия постепенно становиться железнодорожный газпром как не_сотрудничать антимонопольщик . В ответ ржд сообщить что обеспечивать условие снижение расценка транспортировка практически вид груз . |ngramms российский_компания доставка_груз автомобильный_транспорт автомобильный_транспорт экономический_политика имя_ железный_дорога железный_дорога железный_дорога восемь_процент можно_назвать высокий_тариф срок_доставка как_считать федеральный_антимонопольный_служба _ тариф_ржд В_ответ что_обеспечивать +1478 |text российский миллиардер мочь создать китай компания продажа питьевой вода . заявить ход петербургский международный экономический форум сообщать . месторождение вода слово приобрести . В россия группа принадлежать производитель питьевой вода безалкогольный напиток акваник завод расположить нижегородский область . мощность предприятие составлять миллион литр год . В сша ввести санкция . китайский бизнесмен предлагать совместный инвестиция трубный бизнес газораспределительный сеть строительство терминал . миллиардер строительство мост туннель керченский пролив . К проект мочь быть привлечь инвестор кнр . долгий время быть известный как совладелец нефтетрейдер gunvor являться основный продавец российский нефть марка urals . С год резко сократить объесть закупка доля партнёр торбьернуть тернквист . актив включая строительный рыбный ряд управляться инвестиционный компания volga group . |ngramms миллиардер__ мочь_создать компания_по_продажа заявить_в_ход международный_экономический_форум В_россия мощность_предприятие миллион_литр сша_ввести строительство_терминал строительство_мост мочь_быть _ долгий_время известный_как являться_основный российский_нефть объесть_закупка инвестиционный_компания +1479 |text В компания центр заявить что не_нести ответственность аннулирование авиабилет быть приобрести портал eviterra.com . как официальный центр клиент пострадавший деятельность портал обращаться владелец сайт промсвязьбанк финансовый организация предоставлять eviterra услуга эквайринг . В центр добавить что не_аннулировать билет поступить деньга что компания выполнять обязательство партнёр . центр что компания не_иметь eviterra собственник никакой отношение . сайт eviterra появиться сообщение согласно центр аннулировать тысяча билет конфликт возникнуть компания . впоследствии сообщение быть заменить немой что билет вылет быть восстановить остальной компания вести переговоры . ассоциация туроператор россия заявить что клиент eviterra мочь не_получить никакой компенсация аннулировать билет как законодательство устроить образ что турагентство отличие туроператор мочь объявить кто угодный . eviterra специализироваться продажа авиабилет онлайн работать рынок год . В очередь центр закупать авиабилет компания реализовывать сервис год . база спарк интерфакс основный владелец центр принадлежать турагентство агентство билет онлайн ласт минута трэвести . |ngramms В_компания _центр _центр _центр _центр _центр _центр пресс_релиз финансовый_организация компания_не_иметь никакой_отношение появиться_сообщение быть_заменить вести_переговоры ассоциация_туроператор аннулировать_билет мочь_объявить специализироваться_на_продажа работать_на_рынок В_свой_очередь основный_владелец _ +1480 |text нафтогаз украина перечислить газпром миллион доллар качество предоплата мартовский поставка . сообщать новость ссылка представитель компания . знать что деньга транзитный счёт попасть расчётный счёт российский холдинг . расчёт нафтогаза украина существующий режим отбор сумма хватать семь . нафтогаз направить газпром сложность миллион доллар поставка . платёж осуществляться транш миллион доллар . быть перевести . оплата хватить включительно условие среднесуточный отбор миллион кубометр . киев время испытывать трудность сокращение золотовалютный резерв что уменьшить объём предоплата российский топливо . глава минэнерго украина демчишина начало заявить что страна нет критический потребность газа . министр энергетика россия новак сообщить что газпром поступить заявка киев подача трубопровод миллион кубометр топливо сутки . газпром поставлять газ украина называть зимний пакет действующий конец . москва предоставлять киев скидка базовый цена размер доллар тысяча кубометр . украина получать газ реверсный направление польша словакия венгрия . |ngramms нафтогаз_украина миллион_доллар миллион_доллар что_деньга российский_холдинг нафтогаза_украина быть_перевести миллион_кубометр миллион_кубометр испытывать_трудность глава_минэнерго украина_ министр_энергетика россия_ тысяча_кубометр +1481 |text чистый прибыль нк роснефть первое квартал год вырасти процент сравнение аналогичный показатель прошлое год составить миллиард рубль . сообщение компания . аналитика опросить агентство нефтяной информация ожидать показатель уровень миллиард рубль . выручка реализация составить триллион рубль . фон снижение мировой цена минус процент рублево выражение отношение первое квартал год эффективный распределение ресурс использование высокомаржинальный канал реализация позволить скомпенсировать снижение выручка составить процент отношение аналогичный период прошлое год сообщение роснефть . скорректировать прибыль уплата процент налог прибыль амортизация ebitda составить миллиард рубль маржа cкорректировать ebitd процент процент первое квартал год . положительный свободный денежный поток квартал год увеличиться миллиард рубль рост процент сравнение квартал прошлое год благодаря эффективный мера контроль оборачиваемость капитал что обеспечивать погашение финансовый обязательство компания установленный срок . роснефть продемонстрировать хороший удельный показатель свободный денежный поток конкурентный группа первое квартал год доллар баррель высокий удельный показатель свободный денежный поток месяц несмотря резкий снижение цена нефть процент . мнение партнёр компания greenwich capital лев сныкова сравнение остальной нефтяной сектор роснефть показать хороший результат суметь сохранить положительный свободный денежный поток . вполне что быть тяжёлый квартал год . можно что роснефть суметь сохранить финансовый стабильность несмотря плохой макроусловие . стабильность свободный денежный поток обеспечивать выплата дивиденд размер процент чистый прибыть . компания продолжать эффективно управлять затрата генерировать положительный свободный денежный поток председатель правление роснефть сечин . операционный рублёвый затрата добыча первое квартал год относительно квартал год сократиться процент рубль баррель нефтяной эквивалент фон рост цена промышленность период увеличиться процент . слово глава роснефть подтверждать правильность выбрать бизнес модель высокий устойчивость бизнес компания . |ngramms чистый_прибыль процент_по_сравнение_с_аналогичный прошлое_год прошлое_год миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль триллион_рубль мировой_цена первое_квартал аналогичный_период_прошлое_год уплата_процент свободный_денежный_поток свободный_денежный_поток свободный_денежный_поток свободный_денежный_поток свободный_денежный_поток свободный_денежный_поток что_обеспечивать финансовый_обязательство установленный_срок доллар_за_баррель резкий_снижение цена_на_нефть партнёр_компания нефтяной_сектор хороший_результат суметь_сохранить суметь_сохранить что_это_быть выплата_дивиденд чистый_прибыть компания_продолжать председатель_правление _сечин год_относительно баррель_нефтяной рост_цена бизнес_компания +1482 |text партия ядерный отход польский национальный центр ядерный исследование отправить россия утилизация сообщать польский культурный центр калининград . топливо использоваться экспериментальный ядерный реактор отвоцк сверка . отработать ядерный топливо транспортировать крупный транспортный самолёт мир ан . вылететь гданьск город озерск челябинский область специализировать предприятие утилизация . звено вывезти грузовик варшава откуда поезд самолёт быть переправить гданьск . как отмечаться сообщение партия сверка большой нет отработать ядерный топливо . предыдущий год россия польша быть вывезти тысяча звено ядерный топливо . В украина расплатиться росатом вывоз отработать ядерный топливо утилизация . основный поставщик ядерный топливо аэс украина являться российский твэл холдинг входящий состав росатом . утилизация отработать ядерный топливо заниматься структура госкорпорация . |ngramms центр_ядерный культурный_центр ядерный_топливо ядерный_топливо ядерный_топливо ядерный_топливо ядерный_топливо ядерный_топливо транспортный_самолёт отмечаться_в_сообщение большой_нет основный_поставщик являться_российский структура_госкорпорация +1483 |text давосский позорный премия public eye awards год достаться shell goldman sachs . сообщаться швейцарский отделение являться учредитель награда совместно ассоциация бернский декларация . shell наградить премия народный антипатия нефтяной компания набрать большой голос сайт public eye awards . сырьевой организация оказаться первое место результат голос . как отмечаться сообщение shell проект создавать угроза загрязнение окружающий . В эколог упрекать компания стремление добывать сырьевой ресурс арктика . гринпис указывать что разработка арктический месторождение стать возможный вследствие климатический изменение произойти вина shell . банк goldman sachs наградить имя жюри . результат зрительский голосование финорганизация оказаться второе место результат голос . премия достаться банка стремление получить прибыль состоятельный акционер использовать различный кризис . учредитель public eye award обвинять goldman sachs спекуляция греческий облигация способствовать ухудшение экономический ситуация страна . третье место результат голосование оказаться охранный фирма упрекать грубый нарушение гражданский право . В список номинант представить энергетический корпорация repower горнодобывающий coal india lonmin машиностроительный alcom . позорный премия вручаться давоса время экономический форум ежегодно год . учредитель награда пытаться образ напомнить компания экологический социальный ответственность . |ngramms год_достаться пресс_релиз учредитель_награда учредитель_награда нефтяной_компания первое_место отмечаться_в_сообщение создавать_угроза арктический_месторождение стать_возможный получить_прибыль экономический_ситуация результат_голосование В_список экономический_форум +1484 |text авиакомпания singapore airlines отменить авиамаршрут сингапур американский штат считаться длинный рейс мир . сообщать агентство bloomberg . полёт маршрут длина составлять тысяча километр состояться . пассажир прийтись делать пересадка . прибывать быть аэропорт имя входящий загрузить мир . слово пассажир регулярно летать рейс предпочесть как ранний прибывать аэропорт ньюарка штат как добираться простой . компания не_стать объяснять отмена рейс местный эксперт полагать что причина стать убыточность . слово полёт уходить внушительный объём топливо время как самолёт вылетать полупустой несмотря что рейс использоваться лайнер вместимость сто пассажир . причина компания отменить авиамаршрут сингапур тысяча километр считаться второе продолжительность . протяжённый авиамаршрут стать рейс австралийский авиакомпания qantas сидней даллас длина составлять тысяча километр . |ngramms американский_штат нью_джерси нью_джерси сообщать_агентство тысяча_километр тысяча_километр тысяча_километр франкфурте_на_майн имя__ нью_йорк нью_йорк эксперт_полагать причина_стать объём_топливо лос_анджелес австралийский_авиакомпания +1485 |text издание ридус сообщить появление спецназ московский отделение азиатско тихоокеанский банка . информация портал обыск пройти утром . причина вызов боец спецподразделение якобы стать отказ сотрудник банка пустить офис следственный группа желать ознакомиться некий документ . сотрудник финучреждение забаррикадироваться изнутри не_пускать правоохранитель приезд спецназ . поздний банка заявить что офис посещать следователь судебный пристав сотрудник финансовый учреждение вызвать правоохранитель спецназ проконтролировать законность действие . неофициальный источник сообщаться что возможный причина происходить банка стать претензия руководство финансовый учреждение подозревать незаконный обналичивание денежный средство финансирование несистемный оппозиция . напомнить стать что председатель правление азиатско тихоокеанский банка стать пост председатель совет директор занять . пост совмещать пост иностранный банка латвийский M . азиатско тихоокеанский банк создать год работать регион россия являться лидер обслуживание внешнеторговый операция дальний восток . банк осуществлять денежный перевод международный расчёт различный валюта сотрудничать финансовый кредитный организация европа сша китай корея монголия . |ngramms стать_отказ пресс_служба финансовый_учреждение финансовый_учреждение возможный_причина банка_стать банка_стать денежный_средство председатель_правление _ _ председатель_совет_директор иностранный_банка регион_россия дальний_восток кредитный_организация +1486 |text совет директор автопроизводитель tesla предложить лишить основатель гендиректор компания маска гарантировать вознаграждение работа . сообщаться сайт tesla . компания представить новый план рассчитать десять год маск быть получать транш размер процент акция tesla . выплата привязать капитализация операционный показатель компания достигнуть руководство маска . выплата основатель tesla нужно быть добиться капитализация компания миллиард доллар . получить транш маска прийтись довести рыночный стоимость производитель электрокар миллиард доллар . десятилетний план одобрить акционер tesla маск голосование не_быть . В год bloomberg включить маска руководить основать имя аэрокосмический spacex десятка высокооплачиваемый . агентство пост гендиректор tesla маск заработать год миллион доллар зарплата компания составить тысяча доллар остальной прийтись бонус . forbes оценивать состояние маска миллиард доллар . бизнесмен занимать место глобальный рейтинг миллиардер версия журнал список богатый американец . tesla конец год объявить убыток миллион доллар прибыть год . потеря связать проблема производство седан model . |ngramms совет_директор предложить_лишить гендиректор_компания_ представить_новый десять_год быть_получать операционный_показатель основатель_tesla нужно_быть капитализация_компания миллиард_доллар миллиард_доллар миллиард_доллар рыночный_стоимость акционер_tesla основать_имя топ_менеджер миллион_доллар миллион_доллар компания_составить тысяча_доллар forbes_оценивать рейтинг_миллиардер богатый_американец +1487 |text аэропорт внуково подать иск авиакомпания ютэйр задолжать миллион рубль сообщаться материал арбитражный суд москва . сумма иск составлять миллион рубль дата рассмотрение не_назначить . председатель совет директор внуково ванец что вопрос досрочный погашение долг ютэйр базовый аэропорт не_стоить . слово аэропорт ждать когда закончиться переговоры реструктуризация долг авиакомпания банка можно быть обсуждать реструктуризация долг аэропорт . банка суметь договориться реструктуризация появляться возможность получить деньга . выйти исходный договор как быть погасить кредиторский задолженность есть быть снимать режим предоплата заявить . внуково перевести ютэйр предоплатный система взаиморасчёт прошлое год . глава ютэйр заявить что авиакомпания планировать запросить правительство госгарантия сумма миллиард рубль . минимально необходимый объесть миллиард рубль . правительство рассматривать возможность предоставление гарантия размер процент финансовый долг . слово окончательный решение не_принять . авиакомпания ютэйр оказаться сложный финансовый положение фон падение спрос авиаперевозка . В середина лето год перевозчик заявить запуск программа снижение издержка предусматривать сокращение управленческий персонал оптимизация маршрутный сеть уменьшение время обслуживание пассажир . В настоящее время арбитражный суд рассматриваться ряд иск кредитор авиакомпания дочерний структура сумма миллиард рубль иск банкротство ютэйр . |ngramms аэропорт_внуково миллион_рубль миллион_рубль сообщаться_в_материал арбитражный_суд_москва сумма_иск председатель_совет_директор внуково_ погашение_долг реструктуризация_долг реструктуризация_долг можно_быть топ_менеджер прошлое_год __заявить авиакомпания_планировать миллиард_рубль миллиард_рубль миллиард_рубль рассматривать_возможность окончательный_решение финансовый_положение В_середина запуск_программа снижение_издержка маршрутный_сеть обслуживание_пассажир В_настоящее_время ряд_иск дочерний_структура иск_о_банкротство +1488 |text финляндия попросить евросоюз финансовый поддержка что корпорация microsoft планировать сокращение персонал страна . сообщить минэкономики финляндия . ведомство начало осень намерить обратиться соответствующий заявка европейский фонд помощь адаптация глобализация . финский министр экономика рен заявить что знание высококлассный специалист уволить microsoft максимально найти применение . поддержка ес помочь сложиться положение уверенный чиновник . агентство отмечать что рассмотрение заявление финансовый помощь евросоюз как правило уходить полгода . В microsoft объявить намерение уволить большой тысяча сотрудник мобильный подразделение . рабочий место что планироваться сократить находиться финский филиал microsoft mobile oy офис компания расположить тампере эспоо . microsoft бизнес производство кнопочный телефон nokia компания fih mobile дочка китайский foxconn завод производиться смартфон iphone популярный потребительский электроника . В рамка соглашение собственность переходить фабрика microsoft ханой . тысяча сотрудник американский корпорация ответственный производство телефон nokia предложить перейти foxconn . В год microsoft уволить тысяча сотрудник финляндия закрыть центр исследование разработка город сало оула . |ngramms финансовый_поддержка что_корпорация сокращение_персонал экономика_ агентство_отмечать финансовый_помощь как_правило объявить_о_намерение тысяча_сотрудник тысяча_сотрудник тысяча_сотрудник рабочий_место офис_компания смартфон_iphone В_рамка американский_корпорация центр_исследование +1489 |text государство выделить федеральный бюджет миллиард рубль текущий год поддержка автопроизводитель рамка антикризисный план . заявить президент россия передавать . безусловно продолжить оказывать поддержка отрасль оказаться зона риска добавить . В миллиард рубль получить качество помощь государство сектор транспортный сельскохозяйственный машиностроение . глава государство добавить что российский власть рассматривать машиностроение как драйвер отечественный экономика . отрасль огромный экспортный потенциал мочь стать символ национальный успех технологический лидерство россия . продажа автомобиль россия падать год подряд . фон автозавод сокращать рабочий смена объём выпуск собираться страна иностранный бренд представить внутренний рынок модельный ряд . месяц год ассоциация европейский бизнес продажа легковой лёгкое коммерческий автомобиль упасть процент тысяча штука . В сообщаться что половина новый автомобиль процент реализовать начало год быть приобрести помощь государственный программа стимулирование спрос . согласно минпромторг помощь программа льготный кредитование быть приобрести тысяча автомобиль программа обновление парк тысяча машина . единица коммерческий техника быть взять льготный лизинг . В конец прошлое год министр промышленность торговля россия мантур заявить что правительство решение продолжение программа поддержка спрос автомобильный рынок первое полугодие год . |ngramms федеральный_бюджет миллиард_рубль миллиард_рубль президент_россия__ оказывать_поддержка зона_риска получить_в_качество глава_государство российский_власть отечественный_экономика экспортный_потенциал мочь_стать продажа_автомобиль объём_выпуск внутренний_рынок ассоциация_европейский_бизнес лёгкое_коммерческий тысяча_штука новый_автомобиль быть_приобрести быть_приобрести государственный_программа тысяча_автомобиль тысяча_машина быть_взять В_конец прошлое_год промышленность_и_торговля россия_ мантур_заявить что_правительство программа_поддержка автомобильный_рынок +1490 |text маск искать кандидат должность рыцарь сторожевой башня начало строить компания boring company . маск сообщить twitter . boring company строить сторожевой башня грязный кирпич нужный рыцарь французский акцент быть громко оскорблять человек написать . сайт компания числиться вакансия сторожить . указываться что дать позиция быть доступный . неизвестно пошутить предприниматель правда . маск любитель неординарный заявление twitter . сообщить банкротство компания tesla продажа пасхальный яйцо . маск опубликовать твит обещать выкупить акция компания доллар штука сделать непубличный . заявление вылиться разбирательство комиссия ценный бумага сша sec уход маска пост совет директор . boring company инфраструктурный туннельный строительный компания основать маск год . |ngramms _маск лос_анджелес лос_анджелес что_дать быть_доступный банкротство_компания доллар_за_штука ценный_бумага строительный_компания +1491 |text роснефть итог год обогнать компания новатэк объём добыча газа . заявить глава роснефть сечин встреча президент писать коммерсантъ . образ нефтгазовый компания стать второе крупный производитель газа россия газпром . роснефть прошлое год добыть миллиард кубометр газа что процент большой позапрошлогодний . новатэк предварительный добыть прошлое год миллиард кубометр . издание отмечать что отличие нефть где показатель существенно повлиять покупка башнефть рост добыча газа полностью органический . поскольку нынешний год новатэк планировать дальнейший снижение добыча роснефть наверняка удержать текущий позиция . В середина крупный банка повысить прогноз цена акция глобальный депозитарный расписка гдр роснефть . В аналитика bank america merrill lynch повысить целевой стоимость гдр компания процент доллар . В банка прогнозировать что роснефть итог год опередить нефтегазовый компания темп рост добыча новый месторождение достигнуть миллион тонна рекордный процент . ближний конкурент лукойл обогнать вдвое . |ngramms добыча_газа добыча_газа _сечин президент__ стать_второе крупный_производитель газа_в_россия миллиард_кубометр_газа процент_большой миллиард_кубометр издание_отмечать дальнейший_снижение В_середина крупный_банка В_банка темп_рост новый_месторождение миллион_тонна ближний_конкурент +1492 |text пиво оболонь одноимённый украинский предприятие быть выпускаться завод московский пивоваренный компания . сообщать интерфакс . подписать лицензионный контракт производство пиво торговый марка оболонь сообщить московский пивоваренный компания . запрет поставка продукция украинский предприятие доля объём импорт пиво россия составлять процент . роспотребнадзор приостановить ввоз территория россия спиртное напиток пиво украинский производитель оболонь сан инбеть украина украинский дистрибуционный компания . В надзорный ведомство пояснить решение что исследование водка пиво пивная напиток производство украина выявить неоднократный нарушение закон область защита право потребитель пиво оболонь не_соответствовать требование энергетический ценность органолептический показатель . московский пивоваренный компания создать год объединять пивоваренный завод подмосковный мытищи мощность миллион гектолитр год планироваться увеличить миллион дистрибьюторский логистический центр . входить состав международный холдинг oasis принадлежать белорусский производитель сок старый крепость компания оазис казахстан althaus германия . В год oasis основный бенефициар являться кашпереть приобрести украинский пивкомбинат радомышль спустя год купить компания перш приватный броварня ппб . В год ппб начало розлив пиво мощность московский пивоваренный компания . |ngramms украинский_предприятие украинский_предприятие пивоваренный_компания пивоваренный_компания пивоваренный_компания пивоваренный_компания производство_пиво торговый_марка пресс_служба поставка_продукция украинский_производитель ведомство_пояснить нарушение_закон защита_право входить_в_состав производитель_сок спустя_год +1493 |text роснефть оценивать прирост потребление нефть мир год минимум миллион баррель сутки . заявить глава компания сечин выступать евразийский форум верона передавать корреспондент лента . . слово год человечество не_достигнуть теоретически предсказать пик энергопотребление . как глава роснефть несмотря сохраняться ценовый волатильность оставаться дисбаланс рынок нефть фундаментальный зрение нефтяной рынок демонстрировать рост . заявить что спрос предложение продолжать увеличиваться рост мировой экономика . вычесть объём сланцевый нефть оптимистично оценить эксперт миллион баррель сутки прибавить естественный снижение добыча месторождение выйти зрелый стадия получаться прирост свыше миллион баррель сутки заключить глава роснефть . |ngramms нефть_в_мир миллион_баррель миллион_баррель миллион_баррель глава_компания _сечин передавать_корреспондент нефтяной_рынок демонстрировать_рост что_спрос мировой_экономика сланцевый_нефть +1494 |text бывший гендиректор автоваз стать председатель совет директор компания гражданский самолёт сухой гсс сообщать интерфакс . совет гсс возглавлять год занимать пост президент объединить авиастроительный корпорация назначение должность слюсарь остаться корпорация должность генконструктор . год работать советник президент оак включить состав совет директор гсс . С год трудиться должность гендиректор центральный аэрогидродинамический институт имя жуковский . В год быть гендиректор автоваз год руководитель федеральный агентство промышленность . компания гражданский самолёт сухой входить оак основать год реализация проект область гражданский авиационный техника выпускать российский пассажирский самолёт sukhoi superjet . самолёт способный перевозить пассажир расстояние километр . производственный мощность предприятие оак позволять выпускать ssj год . полёт лайнер совершить год . сегодняшний осуществить заказ superjet экземпляр передать заказчик . крупный покупатель являться аэрофлот . |ngramms бывший_гендиректор _ _ председатель_совет_директор гражданский_самолёт_сухой гражданский_самолёт_сухой занимать_пост объединить_авиастроительный_корпорация год_работать президент_оак совет_директор должность_гендиректор институт_имя год_быть федеральный_агентство авиационный_техника выпускать_российский пассажирский_самолёт sukhoi_superjet самолёт_способный производственный_мощность лайнер_совершить крупный_покупатель +1495 |text корпорация мсп предоставить сельхозпредприятие гарантия поручительство сумма миллиард рубль . рассказать глава корпорация V всероссийский съезд сельскохозяйственный кооператив . слово позволить субъект малое среднее предпринимательство мсп привлечь кредитный ресурс объём миллиард рубль осуществление строительный работа приобретение земельный участок оборудование автотранспорт спецтехник пополнение оборотный средство рефинансирование заёмный обязательство . поддержка проект сфера сельхозкооперация сегодняшний являться приоритетный направление работа корпорация . В объём поддержка сельхозредприятие сельхозкооператив предоставить гарантия поручительство корпорация сумма миллион рубль что позволить предприятие привлечь заёмный финансирование объём миллиард рубль . корпорация мсп месяц год относительно аналогичный период год объесть гарантийный поддержка сельхозкооператив увеличить миллион рубль . глава корпорация сообщить специальный кредитный продукт субъект мсп работать сфера сельхозкооперация . прямая гарантия сельхозкооператив размер процент размер кредит продукт прямая гарантия лизинг размер обеспечение составлять процент стоимость предмет лизинг специальный финансовый продукт предэкспортный финансирование субъект мсп . ряд специальный кредитный продукт сельхозкооператив субъект мсп дополнять программа минсельхоз россия льготный кредитование предлагать мсп банк . В рамка реализация мера расширение доступ субъект мсп закупка крупный заказчик субъект мсп сельскохозяйственный кооператив крупный заказчик заключить договор сумма миллион рубль . лидер объём закупка год стать оао ирбитский молочный завод свердловский область оао башспирт республика башкортостан ао транснефть сибирь тюменский область ао гск хмао югра пао ростелеком город . В рамка деловой программа съезд представитель корпорация мсп провести презентация сервис портал бизнес навигатор мсп . ресурс полезный как владелец бизнес кто планировать открыть . С помощь портал бизнес навигатор мсп можно определить оптимальный вид бизнес хороший местоположение рассчитать бизнес план узнать конкурент получить информация кредитный продукт малое среднее бизнес мера государственный поддержка закупка крупный заказчик государственный . В настоящее время портал бизнес навигатор мсп охватывать город российский федерация численность население тысяча человек столица отдельный субъект российский федерация . период год год портал бизнес навигатор мсп зарегистрироваться пользователь субъект мсп . |ngramms корпорация_мсп корпорация_мсп корпорация_мсп миллиард_рубль миллиард_рубль миллиард_рубль глава_корпорация глава_корпорация _ среднее_предпринимательство кредитный_ресурс строительный_работа проект_в_сфера работа_корпорация миллион_рубль миллион_рубль миллион_рубль что_позволить год_относительно аналогичный_период год_объесть специальный_кредитный специальный_кредитный субъект_мсп субъект_мсп субъект_мсп субъект_мсп субъект_мсп субъект_мсп работать_в_сфера прямая_гарантия прямая_гарантия В_рамка В_рамка расширение_доступ крупный_заказчик крупный_заказчик крупный_заказчик лидер_по_объём год_стать молочный_завод свердловский_область республика_башкортостан санкт_петербург деловой_программа портал_бизнес портал_бизнес портал_бизнес портал_бизнес планировать_открыть С_помощь вид_бизнес рассчитать_бизнес среднее_бизнес государственный_поддержка В_настоящее_время российский_федерация российский_федерация тысяча_человек +1496 |text союз российский срп выступить инициатива ужесточить правило продажа вино водка запретить реализация девять девять . пиво предлагаться сохранить действующий ограничение одиннадцать часы восемь . предложение срп сформулировать законопроект сообщать коммерсантъ . издание отмечать что идти поправка закон О госрегулирование производство оборот алкогольный продукция подготовить срп . документ планироваться рассмотреть заседание рабочий группа минэконмразвитие повышение эффективность госрегулирование конкуренция алкогольный рынок . вариант законопроект срп подготовить рамка идея создание раздельный регулирование пиво остальной спиртное . концепция разработать специалист высокий школа экономика год предусматривать увеличение время розничный продажа пиво возврат напиток рынок спортивный объект . возобновление торговля пиво ларёк киоск решить быть отказаться . неделя стать что минфин поддержать поправка сенатор орденовый отмена действующий год запрет продажа алкогольный продукция автозаправочный станция азс . документ согласовать минюст минэкономразвития минпромторг росалкогольрегулирование . В противник мвд роспотребнадзор . согласно предложение сенатор следовать разрешить продавать азс алкогольный продукция содержание этиловый спирт процент объём . В категория входить сухой вино пиво алкогольный энергетика . |ngramms союз_российский сохранить_действующий издание_отмечать алкогольный_продукция алкогольный_продукция алкогольный_продукция рабочий_группа повышение_эффективность идея_создание школа_экономика розничный_продажа что_минфин запрет_на_продажа +1497 |text журнал forbes назвать фиаско год финансовый проблема миллиардер микаил шишхановый вызвать санация бинбанка . журнал отмечать что фон сложиться ситуация шишхан мочь потерять банка промышленный актив . forbes не_исключать что предприниматель будущее мочь покинуть список богатый бизнесмен страна . В находиться строчка рейтинг богатый бизнесмен россия . О санация банка принадлежащий дядя стать . цб сообщить что принудительный оздоровление попасть рост банк бинбанк диджиталый уралприватбанк . В очередь шишхан интервью принадлежащий семья газета ведомость заявить что считать виноватый дядя ситуация бинбанка . итог санация сохранить процентный доля капиталь кредитный учреждение как предусматривать механизм оздоровление фонд консолидация банковский сектор намеренный передать . источник издание выразить недовольство множиться проблема бинбанка начать сокращать доля шишхановый семейный бизнес . шишхан выйти совет директор нпф сафмара русснефть состав бенефициар нпф доверие входить сафмара . сообщить что забрать шишхановый доля компания оставить небольшой пакет русснефть процент акция строительный холдинг сохранить компания контроль . принадлежащий акция русснефть находиться баланс рост банка целиком принадлежать бизнесмен . санация капитал кредитный учреждение быть отрицательный стоимость доля шишхановый составить символический рубль есть лишиться банка акция русснефть пояснять издание . состояние капитал банка быть минус миллиард рубль . шишхан начать работать начало . бинбанк быть зарегистрировать год шишхановый назначить банкир . стать единственный владелец кредитный учреждение спустя год . В год группа бин переименовать группа сафмара нефтяной направление курировать лично недвижимость заниматься брат сало финансовый сектор быть . ситуация измениться год войти капитал бинбанка сало микаил шишхан получить доля нефтяной актив группа русский угол . |ngramms журнал_forbes финансовый_проблема что_на_фон сложиться_ситуация мочь_покинуть богатый_бизнесмен богатый_бизнесмен строчка_рейтинг _ _ _ В_свой_очередь принадлежащий_семья что_считать кредитный_учреждение кредитный_учреждение кредитный_учреждение банковский_сектор источник_издание выразить_недовольство совет_директор _сообщить небольшой_пакет процент_акция принадлежащий_ пояснять_издание миллиард_рубль начать_работать быть_зарегистрировать стать_единственный год_группа брат_ финансовый_сектор нефтяной_актив +1498 |text китайский торговый площадка aliexpress быть доставлять товар россия максимум . сообщать коммерсантъ . ускоренный доставка начать логистический компания cainiao входить группа alibaba . посылка быть собирать склад китай соответственно заказ российский получатель выслать продавец торговый площадка . образ aliexpress проконтролировать процесс доставка отправка товар миля . запуск чартерный программа помочь значительно сократить время доставка заявить директор развитие бизнес cainiao россия страна снг . слово настоящее время заключить соглашение партнерство крупный грузовой перевозчик . почта россия крупный российский грузовой авиакомпания airbridgecargo . вестись переговоры расширение пул чартерный партнёр добавить . как отмечаться новый модель решить использовать пилотный проект россия товар местный склад отправлять tmall . торговый площадка начало работа территория страна . В конец aliexpress запустить россия доставка товар находиться склад территория страна . новый формат распространить продукция бренд как apple samsung asus philips российский поставщик . В результат стандарт доставка day стать доступный крупный город включая москва . В первое полугодие год россия войти тройка страна лидер объём покупка aliexpress . площадка aliexpress alibaba taobao кинокомпания alibaba pictures платформа электронный платёж alipay входить состав alibaba group крупный китайский компания область . доля корпорация приходиться процент оборот электронный рынок китай . |ngramms торговый_площадка торговый_площадка торговый_площадка логистический_компания входить_в_группа значительно_сократить заявить_директор страна_снг _ почта_россия крупный_российский вестись_переговоры добавить_ как_отмечаться новый_модель проект_в_россия начало_работа В_конец новый_формат В_результат стать_доступный крупный_город санкт_петербург В_первое_полугодие лидер_по_объём электронный_платёж входить_в_состав alibaba_group китайский_компания интернетом_торговля процент_оборот +1499 |text ржд процент сократить доля аэроэкспресс осуществлять перевозка пассажир маршрут город аэропорт . сообщение железнодорожный монополия . покупатель назвать компания инвест входить трансгруппа ас . принадлежать процент акция аэроэкспресс . В качество причина продажа доля аэроэкспресс ржд назвать желание получить инвестиционный доход . сумма сделка сообщение ржд не_указать отмечаться что основать рекомендация независимый оценщик носить рыночный характер . сведение агентство сослаться анонимный источник монополия расстаться доля аэроэкспресс миллион рубль . большой ржд заплатить процент акция компания год . половина аэроэкспресс оцениваться миллион рубль . образ четверть предприятие стоить миллион рубль . помимо ржд инвест акционер аэроэкспресс являться бизнесмен контролировать процент акция . принадлежать процент доля компания . аэроэкспресс быть создать год . В акционерный капитал предприятие войти трансгруппа ас аэропорт шереметьево . В год ржд стать собственник процент акция компания купить доля трансгруппа ас пакет аэропорт . поезд аэроэкспресс действовать москва казань сочи владивосток . В год чистый прибыль компания достигнуть миллион рубль . |ngramms перевозка_пассажир железнодорожный_монополия дельта_транс дельта_транс процент_акция процент_акция В_качество причина_продажа назвать_желание сумма_сделка миллион_рубль миллион_рубль миллион_рубль миллион_рубль процент_акция_компания процент_акция_компания бизнесмен__ доля_в_компания акционерный_капитал год_ржд стать_собственник купить_доля чистый_прибыль компания_достигнуть +1500 |text В ближний год завод воронеж быть выпустить порядок триста лёгкое турбовинтовой самолёт . передавать выступать торжественный мероприятие честь воздушный флот россия воронежский акционерный самолётостроительный общество заявить глава объединить авиастроительный корпорация оак слюсарь . Я думать что порядок машина класс ан ан летать министерство оборона примерно количество находиться гражданский авиация . машина горизонт семь восемь год быть списать . рынок рынок закрытый рынок защитить . машина минимум восполнить . слово слюсарь пройти совещание реализация проект . ближний время самолёт поднять краткий срок завершить программа испытание начать поставка интерес министерство оборона . присутствующий заверить что подготовительный работа испытание самолёт практически завершить . стоять порог завершение необходимый работа связанный будущий испытание самолёт самолёт лёгкое класс самолёт заменить уходить парк антоновский самолёт . новый лёгкий турбовинтовой самолёт прийти смена ан ан подняться воздух год . запуск серия планироваться год . К выпуск самолёт планироваться модификация гражданский авиация авиация . военный намерить заказать машина . давно разрабатывать проект лёгкое максимальный нагрузка тонна транспортный самолёт . проект продвигаться труд неритмичный финансирование проблема двигатель не_развивать установленный мощность . минобороны отказываться финансировать доводка закупать самолёт год работа машина быть возобновить . слюсарь заявлять что самолёт быть производиться темп единица год . |ngramms В_ближний быть_выпустить воздушный_флот заявить_глава объединить_авиастроительный_корпорация что_порядок министерство_оборона министерство_оборона гражданский_авиация гражданский_авиация год_быть вице_премьер _ военно_транспортный военно_транспортный транспортный_самолёт установленный_мощность быть_возобновить быть_производиться +1501 |text китай впервые пустить рынок мобильный частное компания . как сообщать bloomberg разрешение быть выдать одиннадцать компания . получить лицензия позволять частное предприятие арендовать часть мощность государственный сотовый оператор china mobile china unicorn china telecom . министерство промышленность информационный технология китай сообщить что проконтролировать действие государственный компания мобильный взаимодействие частник . компания получить разрешение оказаться . cn подразделение онлайн магазин alibaba group . ресурс что лицензия получить конкурент alibaba group jingdong century trading . разрешение быть выдать крупный продавец мобильный телефон dixin tong . раздача лицензия частное компания являться частью пробный двухлетний программа китай повышение конкуренция рынок мобильный улучшение качество услуга . доля частное оператор год мочь возрастить десять процент рынок прогнозировать агентство . ежегодный оборот рынок мобильный китай bloomberg оценить миллиард доллар . китай насчитываться миллиард пользователь сотовый . государственный china mobile считаться крупный компания мобильный мир . состояние квартал год клиент china mobile быть свыше миллион человек . чистый прибыль оператор квартал год достигать миллиард доллар . |ngramms частное_компания как_сообщать быть_выдать быть_выдать получить_лицензия сотовый_оператор china_mobile china_mobile china_mobile информационный_технология государственный_компания alibaba_group alibaba_group мобильный_телефон компания_являться качество_услуга частное_оператор процент_рынок миллиард_доллар миллиард_доллар крупный_компания миллион_человек чистый_прибыль год_достигать +1502 |text немецкий концерн basf последующий год планировать инвестировать совместный проект газпром миллиард евро . сообщать интерфакс ссылка заявление глава basf бок . basf являться основный партнёр газпром реализация проект северный поток . что еврокомиссар вопрос климат энергетика мигель каньета выступать член европарламент страсбург заявить что проект газопровод северный поток не_соответствовать стратегия евросоюз диверсификация источник маршрут поставка газа . каньета что газопровод быть построить увеличить зависимость европа поставщик увеличить зависимость европа маршрут . процент экспорт газа рф быть завершение строительство поставляться германия . очередь привести доминировать положение газпром рынок . соглашение акционер строительство нитка газопровод северный поток проект северный поток быть подписать начало рамка восточный экономический форум владивосток . В состав новое консорциум войти газпром E . shell basf wintershall omv engie . процент российский концерн engie процент остальной процент . новое нитка годовой мощность миллиард кубометр пройти российский побережье дно балтийский море германия . действующий газопровод северный поток включать нитка протяжённость километр пропускной способность миллиард кубометр год . проходить дно балтийский море соединять энергосистема евросоюз крупный месторождение природный газа западный сибирь . |ngramms немецкий_концерн совместный_проект миллиард_евро заявление_глава пресс_конференция основный_партнёр реализация_проект северный_поток северный_поток северный_поток северный_поток северный_поток проект_газопровод поставка_газа быть_построить увеличить_зависимость увеличить_зависимость экспорт_газа рф_быть соглашение_акционер нитка_газопровод быть_подписать экономический_форум В_состав консорциум_войти миллиард_кубометр миллиард_кубометр действующий_газопровод западный_сибирь +1503 |text крупный россия угольный шахта распадский возобновить работа . официальный владелец предприятие оао распадский . В сообщение уточняться что междуреченский городской суд разрешить проведение горный работа шахта начаться смена часы . распадский провести мероприятие направить обеспечение безопасный условие труд . В середина сообщаться что работа шахта мочь восстановиться . остановить распадский быть как обследование пласт быть обнаружить превышение содержание окись углерод проба воздух . оао распадский объединять угольный шахта кемеровский область обогатительный фабрика инфраструктурный предприятие . контролировать компания evraz group . В текущий год шахта распадский добыть миллион тонна уголь . В год распадский произойти взрыв результат погибнуть человек . причина авария как выяснить ростехнадзор стать неустойчивость электроснабжение нарушение пылевой режим шахта неисполнение мероприятие предотвращение нагревание уголь . ущерб взрыв быть оценить миллиард рубль . |ngramms крупный_в_россия угольный_шахта угольный_шахта пресс_релиз владелец_предприятие В_сообщение городской_суд обеспечение_безопасный условие_труд В_середина что_работа быть_обнаружить текущий_год миллион_тонна как_выяснить быть_оценить миллиард_рубль +1504 |text южнокорейский группа компания samsung принести извинение болезнь смерть сотрудник пострадавший вредный производство сообщать press . кина генеральный директор компания признать что не_удаться создать условие быть безопасный здоровье сотрудник . десятилетие работа производство стать причина серьёзный болезнь как лейкемия опухоль головной мозг . приносить искренний извинение работник семья пострадать болезнь заявить . несмотря признание samsung просчёт стандарт безопасность рабочий место полностью возложить вина болезнь сотрудник условие труд компания отказаться . В год водитель такси хван работа завод samsung скончаться дочь ми . попытка выяснить причина смерть дочь привлечь компания ответственность привести широкий общественный резонанс . никакой извинение недостаточно учитывать обман унижение столкнуться год болезнь боль потеря близкие заявить хван . извинение как обещание сделать рабочий место безопасный . соглашение samsung выплатить компенсация сотрудник год заболеть производство жидкокристаллический дисплей . компенсация распространяться выкидыш врождённый болезнь как детский рак . В год южнокорейский newdaily biz просьба руководство samsung снять публикация материал фильм обещание promise рассказывать история ми . |ngramms группа_компания принести_извинение сообщать_associated_press генеральный_директор_компания что_не_удаться стать_причина головной_мозг заявить_ стандарт_безопасность рабочий_место рабочий_место компания_отказаться работа_на_завод дочь_ причина_смерть выплатить_компенсация интернетом_издание рассказывать_история +1505 |text большинство предприниматель московский регион высоко оценить эффективность портал бизнес навигатор предназначить малое среднее бизнес . мнение ход интерактивный голосование высказать процент присутствовать встреча мэр москва генеральный директор корпорация мсп представитель бизнес сообщество следовать сообщение корпорация . как рассказать период деятельность корпорация субъект мсп столичный регион предоставить гарантия поручительство сумма миллиард рубль . финансовый поддержка позволить компания реализовать проект сфера сельский хозяйство строительство производство услуга привлечь кредитный ресурс сумма миллиард рубль . объесть закупка субъект мсп зарегистрировать территория регион составить миллиард рубль отмечаться сообщение корпорация . открыть бизнес навигатор корпорация мсп сделать важный шаг путь формирование единый информационный московский предприниматель заявить встреча . слово следующий шагом стать интеграция бизнес навигатор база дать городской портал . позволить предприниматель получать необходимый информация совершать реальный бизнес операция городской торг инвестирование средство конкретный проект столичный градоначальник . В перспективный направление сотрудничество можно назвать поддержка инновационный предприятие расширение рынок сбыт малое средний компания продолжение работа расширение доступ субъект мсп кредитный ресурс создание благоприятный условие дальнейший рост бизнес активность регион счёт популяризация институт предпринимательство население использование удобный инструмент бизнес навигация . москва возглавлять десятка регион лидер динамика посещение портал бизнес навигатор мсп доля процент . основный часть пользователь процент составлять владелец компания относиться сегмент микробизнес сфера оптовый розничный торговля строительство разработка компьютерный программный обеспечение отмечаться сообщение корпорация . |ngramms московский_регион оценить_эффективность среднее_бизнес мэр_москва генеральный_директор корпорация_мсп корпорация_мсп _ _ _ _ сообщение_корпорация как_рассказать субъект_мсп субъект_мсп субъект_мсп столичный_регион миллиард_рубль миллиард_рубль миллиард_рубль финансовый_поддержка реализовать_проект кредитный_ресурс кредитный_ресурс отмечаться_в_сообщение отмечаться_в_сообщение единый_информационный база_дать необходимый_информация перспективный_направление можно_назвать инновационный_предприятие рынок_сбыт средний_компания расширение_доступ основный_часть розничный_торговля программный_обеспечение +1506 |text руководство роснефть готовый раскрыть информация доход наравне госкомпания сообщить представитель нефтяной компания агентство интерфакс . готовый опубликовать дать доход участник рынок кто не_создавать односторонний конкурентный преимущество заявить собеседник агентство уточнить что идти госкомпания обязать предоставлять подобный сведение . газета ведомость написать что глава роснефть сечин отказаться публиковать доход ссылаться что президентский указ раскрытие доход руководитель госкомпания компания не_распространяться . сведение доход имущество обязательство имущественный характер руководство публиковаться соответствие требование указ президент рф год вопрос противодействие коррупция . прошлое год постановление обязать отчитываться доход расход обязательство имущественный характер руководитель компания учреждение заместитель . сведение быть представить аппарат правительство срок компания публиковать не_собираться . получить телеграмма руководитель аппарат правительство ряд компания опубликовать дать доход руководитель . раскрытый сведение доход россеть оао фск еэс транснефть зарубежнефть некоторый . не_обнародовать дать газпром ржд роснефть . сведение доход руководитель публиковать госкорпорация как внешэкономбанк росатом роснано . |ngramms сообщить_представитель нефтяной_компания топ_менеджер топ_менеджер участник_рынок конкурентный_преимущество собеседник_агентство обязать_предоставлять _сечин отказаться_публиковать доход_руководитель доход_руководитель доход_руководитель указ_президент рф__ премьер_министр _ _ аппарат_правительство аппарат_правительство ряд_компания +1507 |text компания мтс altimo крупный акционер вымпелком заключить соглашение урегулирование споровый связанный киргизский мобильный оператор битело приобрести мтс год . сообщаться сотовый компания . В соответствие соглашение сторона отказываться взаимный претензия . судебный спорый включая процесс остров мэн лондон люксембург сейшельский остров прекращаться . мтс получить платёж миллион доллар качество компенсация миллион компания получить . В отчётность квартал год мтс планировать восстановить произвести битело списание размер миллион доллар добавить компания . российский сотовый оператор подать суд altimo год требовать возместить ущерб потеря битело . мтс купить компания год приобрести контрольный пакет казахстанский фонд альянс капитал . год киргизский спецназ взять штурм офис битело . захват произойти интерес российский фирма мтс считать аффилировать следовательно altimo управлять телекоммуникационный актив группа . В год киргизский компания структура скай мобайл принадлежать altimo . |ngramms компания_мтс крупный_акционер мобильный_оператор пресс_релиз сотовый_компания получить_платёж миллион_доллар миллион_доллар В_отчётность сотовый_оператор контрольный_пакет российский_фирма альфа_группа актив_группа +1508 |text китайский корпорация china railway group экспо харбин подписать российский стороной меморандум строительство скоростной железнодорожный ветка челябинск екатеринбург писать china . инвестиция проект предварительный оценка составить миллиард доллар . издание отмечать что компания намерить построить высокоскоростной железнодорожный магистраль всм соединять величина транспортный узел страна находиться екатеринбург челябинский . проект строительство всм предусматривать что поезд смочь двигаться скорость километр час путь челябинск екатеринбург быть занимать большой час . железнодорожный ветка создаваться рамка концепция экономический пояс шёлковый путь включать создание транспортный коридор москва пекин . частью концепция являться высокоскоростной железный дорога москва казань быть строиться финансовый технический поддержка кнр . стоимость оцениваться триллион рубль . протяжённость маршрут всм москва казань составить километр максимальный скорость движение километр час . движение планироваться открыть год . |ngramms китайский_корпорация инвестиция_в_проект миллиард_доллар издание_отмечать что_компания_намерить проект_строительство что_поезд километр_в_час километр_в_час быть_занимать транспортный_коридор железный_дорога триллион_рубль максимальный_скорость +1509 |text московский аэропорт шереметьево основный акционер являться государство планировать построить новый терминал место существующий терминал В старый шереметьево . рассказать генеральный директор аэропорт передавать . слово стоимость сооружение новое терминал В тоннель оцениваться миллион доллар . аэропорт выбирать инвестор . гендиректор шереметьево что проект терминал тоннель пройти полоса соединить северный южный зона аэропорт есть претендент отказаться назвать . что реализовываться проект быть как государственно частное партнерство . пропускной способность новое терминал составить свыше десять миллион пассажир год быть обслуживать внутренний маршрут . счёт новое терминал пассажиропоток шереметьево мочь вырастить миллион человек год . сравнение год аэропорт обслужить миллион человек процент большой год . как передавать интерфакс добавить что часть старое терминал демонтировать быть использовать сооружение новое . что проект быть завершить год когда планироваться ввести эксплуатация впп . основный акционер шереметьево являться государство владеть процент акция аэропорт . процент ценный бумага принадлежать совместно авиакомпания аэрофлот банка втб госкорпорация вэб . |ngramms московский_аэропорт основный_акционер основный_акционер планировать_построить терминал_В генеральный_директор _ стоимость_сооружение новое_терминал новое_терминал новое_терминал миллион_доллар взлетно_посадочный проект_быть частное_партнерство свыше_десять миллион_пассажир миллион_человек процент_большой как_передавать _добавить что_часть быть_использовать сооружение_новое быть_завершить ввести_в_эксплуатация являться_государство процент_акция ценный_бумага госкорпорация_вэб +1510 |text подать ходатайство арбитражный суд челябинский область возвращение иск корпорация уралвагонзавод увз нижний тагил связанный предприятие взыскание миллиард рубль миллион доллар . сообщать новость ссылка дать суд . иск банка поступить арбитраж . банк обращаться иск арбитраж москва девять арбитражный апелляционный суд заявление ответчик технопарк тракторозаводский постановить передать подсудность челябинский арбитраж . апелляционный суд согласиться довод заявитель что спорый обращение взыскание заложить недвижимый имущество рассматриваться исключительно место нахождение имущество несмотря арбитражный оговорка договор сторона договорный подсудность споровый . соответчик иск наряду увз технопарк выступать чтз уралтрак . предварительный слушание состояться сторона сообщить что основание иск являться обязательство ответчик кредитный договор срок погашение год . банк потребовать вернуть деньга досрочно нарушение обязательство обслуживание кредит . В половина год финансовый положение увз негативно повлиять санкция компания прийтись приостановить сотрудничество американский caterpillar совместный выпуск локомотив падение спрос грузовой вагон план выпуск уменьшить тысяча штука . В начало отмечаться что увз потерять главный канал сбыт вагон вырасти долг аффилировать железнодорожный оператор увз логистика перестать закупать . В сообщать что сумма задолженность предприятие группа увз банк составлять миллиард рубль миллион доллар сумма просрочить задолженность миллиард рубль . В месяц уралвагонзавод запросить государственный гарантия сумма миллиард рубль . министр промышленность торговля мантур что министерство предварительно одобрить гарантия сумма миллиард рубль . госгарантия быть быть выдать процедура затянуться . увз попросить государство докапитализация миллиард рубль . нпк уралвагонзавод заниматься разработка производство военный техника грузовой вагон коммунальный машина . процент акция корпорация принадлежать государство . |ngramms альфа_банк альфа_банк альфа_банк подать_ходатайство научно_производственный миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллион_доллар миллион_доллар девять_арбитражный апелляционный_суд апелляционный_суд что_спорый предварительный_слушание срок_погашение вернуть_деньга обслуживание_кредит финансовый_положение компания_прийтись грузовой_вагон грузовой_вагон тысяча_штука В_начало канал_сбыт железнодорожный_оператор задолженность_предприятие государственный_гарантия промышленность_и_торговля _мантур что_министерство быть_выдать заниматься_разработка военный_техника дорожно_строительный процент_акция принадлежать_государство +1511 |text российский лавка удаться iphone предустановленный игра flappy bird . номер писать газета ведомость ссылка партнёр компания оушн партнерс управлять магазин . компания время собрать предварительный заказ оплатить . стоимость смартфон предустановленный игра превышать официальный цена apple тысяча рубль . В iphone объём память гигабайт лавка стоить тысяча рубль гигабайт тысяча рубль гигабайт тысяча рубль . В масса объявление продажа iphone предустановленный flappy bird появиться онлайн ресурс ebay . В отдельный случай цена устройство достигать десяток тысяча доллар . заключаться цена сделка неизвестно . создатель flappy bird нгуйный донг удалить игра app store google play . объяснить поступок что flappy bird вызывать игрок зависимость . донг рассказать что стать испытывать чувство вина страдать бессонница . разработчик придумать множество клон flappy bird доступный скачивание пользователь устройство база android некоторый содержимый вирус . владелец iphone мочь установить сторонний приложение взлом телефон . |ngramms интернет_магазин писать_газета партнёр_компания _ предварительный_заказ тысяча_рубль тысяча_рубль тысяча_рубль тысяча_рубль тысяча_доллар стать_испытывать +1512 |text торговый компания северный терминал маневровый тепловоз тгк счёт погашение крупный задолженность местный банк . официальный управление федеральный служба судебный пристав фссп петербург . название банка не_сообщаться . В управление фссп что транспортный средство год выпуск находиться состояние технический износ отсутствовать колесо . В ближний время тепловоз быть оценить счёт погашение долг . служба пристав задолженность северный терминал банк превысить десять миллион рубль . представитель финансовый организация обратиться помощь пристав . В исполнительный документ что тепловоз быть миллион рубль . |ngramms торговый_компания северный_терминал северный_терминал санкт_петербург счёт_погашение пресс_релиз управление_федеральный служба_судебный транспортный_средство год_выпуск находиться_в_состояние В_ближний_время быть_оценить погашение_долг превысить_десять миллион_рубль миллион_рубль финансовый_организация +1513 |text бывший акционер юкос потребовать арестовать имущество россия германия миллиард доллар сообщать der spiegel . соответствующий иск подать апелляционный суд берлин . как отмечать издание случай положительный решение суд недвижимость россия германия мочь быть арестовать доход российский энергетический компания включая газпром получить результат сделка немецкий стороной . образ бывший акционер намерить добиться исполнение решение третейский суд гаага год признать что россия нарушать энергетический хартия фактически конфисковать актив юкос . обязать россия выплатить group menatep limited представлять интерес бывший акционер компания миллиард доллар качество возмещение ущерб . В немецкий компания высказывать опасение что удовлетворение иск поставить угроза бизнес россия поскольку мочь повлечь ответный действие сторона москва . В середина суд бельгия франция наложить арест российский актив . решение постоянный палата третейский суд гаага иск компания hulley enterprises yukos universal limited veteran petroleum представлять интерес бывший акционер юкос . впоследствии часть счёт бельгия быть разблокировать москва официально выразить протест заявить намерение обжаловать арест российский собственность судебный порядок . |ngramms бывший_акционер бывший_акционер бывший_акционер бывший_акционер арестовать_имущество россия_в_германия миллиард_доллар миллиард_доллар апелляционный_суд как_отмечать_издание решение_суд мочь_быть энергетический_компания получить_в_результат намерить_добиться исполнение_решение что_россия представлять_интерес представлять_интерес немецкий_компания бизнес_в_россия В_середина наложить_арест впоследствии_часть заявить_о_намерение судебный_порядок +1514 |text президент объединить авиастроительный корпорация оак слюсарь войти совет директор аэрофлот сообщаться релиз корпорация поступить лента . . новый состав совет избранный годовой собрание акционер национальный авиаперевозчик . слюсарь что аэрофлот являться стратегический партнёр оак крупный эксплуатант самолёт sukhoi superjet основный заказчик создаваться самолёт мс . рассчитывать что работа совет директор аэрофлот быть содействовать развитие сотрудничество национальный перевозчик национальный производитель самолёт пойти польза компания российский авиационный отрасль целое приводиться сообщение слово слюсарь . слюсарь возглавлять оак год работать должность заместитель министр промышленность торговля курировать авиапром . состав совет директор аэрофлот входить помимо слюсарь человек включая гендиректор авиакомпания глава госкорпорация ростёха чемезов . аэрофлот крупный российский перевозчик совокупный маршрутный сеть насчитывать пункт страна . В год перевезти миллион человек учёт авиакомпания группа аэрофлот россия победа оренбургский авиалиния миллион . |ngramms объединить_авиастроительный_корпорация совет_директор совет_директор совет_директор сообщаться_в_релиз состав_совет собрание_акционер национальный_авиаперевозчик стратегический_партнёр эксплуатант_самолёт sukhoi_superjet основный_заказчик самолёт_мс национальный_перевозчик производитель_самолёт авиационный_отрасль заместитель_министр промышленность_и_торговля гендиректор_авиакомпания глава_госкорпорация крупный_российский маршрутный_сеть год_перевезти миллион_человек авиакомпания_группа +1515 |text К аудиторский компания pricewaterhousecoopers pwc подать иск миллиард доллар крупный история . сообщать financial times . иск подать имя доверенный лицо обанкротиться ипотечный компания taylor bean whitaker tbw . pwc обвинять что результат аудиторский проверка colonial bancgroup проводиться компания год не_быть выявить многомиллиардный заговор основатель tbw фаркас руководитель дочка colonial bancgroup colonial bank . сообщаться что ход проверка pwc не_найти нарушение год сolonial bancgroup обанкротиться . коллапс стать величина история банковский отрасль сша . доверенный лицо tbw что аудиторский проверка подтвердить наличие colonial bank актив миллиард доллар не_быть . слово адвокат pwc компания не_проводить аудит taylor bean whitaker не_иметь доступ документ . обращать внимание что компания deloitte touche проводить аудит tbw семь год банкротство никакой нарушение не_обнаружить . слово ведущий судебный адвокат pwc бэт аудит мочь не_обнаружить мошенничество особенно когда есть заговор происходить фабрикация документ . суд выслушать аргумент сторона . что разбирательство продлиться неделя . банкротство colonial обойтись федеральный корпорация страхование вклад fdic сша примерно миллиард доллар . В настоящее время федеральный суд алабама ожидать рассмотрение иск fdic конкурсный управлять имущество colonial pwc . фаркас год быть приговорить тюремный заключение . |ngramms подать_иск миллиард_доллар миллиард_доллар миллиард_доллар иск_подать что_в_результат банковский_отрасль подтвердить_наличие обращать_внимание что_компания семь_год что_разбирательство федеральный_корпорация страхование_вклад В_настоящее_время рассмотрение_иск год_быть +1516 |text окончательный решение предоставление средство фонд национальный благосостояние проект роснефть быть . заявление сделать кулуар петербургский экономический форум сообщать новость . подчеркнуть что мнение проект роснефть заслуживать финансирование сторона фнб . газета ведомость сообщать что роснефть просить выделить нацфонд миллиард рубль проект стоимость превышать триллион рубль . В очередь помощник президент белоус что финансирование проект дальневосточный верфь звезда разработка пятилетний план заказ . белоус заявить что приватизация роснефть существующий экономический конъюнктура нецелесообразный . итог состояться собрание акционер роснефть белоус возглавить совет директор . роснефть просить предоставить фнб триллион рубль проект есть как новое проект бурение зрелый месторождение . минэнерго минэкономразвития поддержать проект инвестиция исключая проект звезда оцениваться компания триллион рубль включая миллиард рубль фнб . |ngramms фонд_национальный _ _ вице_премьер экономический_форум сообщать_риа_новость _подчеркнуть миллиард_рубль миллиард_рубль триллион_рубль триллион_рубль триллион_рубль В_свой_очередь президент_ что_финансирование собрание_акционер совет_директор просить_предоставить есть_как +1517 |text международный рейтинговый агентство moody понизить корпоративный рейтинг российский металлургический компания мечело ступень . прогноз рейтинг оставаться негативный . соответствующий информация содержаться сообщение moody . В агентство отмечать что ухудшение финансовый профиль мечело обостряться слабость рынок уголь большой долг предприятие . перспектива восстановление компания год ограниченный считать moody . мечело испытывать сложность обслуживание долг состояние год составлять миллиард доллар . основный кредитор крупный российский банка газпромбанк миллиард доллар втб миллиард доллар сбербанк миллиард доллар . кредит предоставить unicredit миллион доллар ing миллион доллар fortis миллион доллар raiffeisen миллион доллар . втб предложить решить проблема конвертация долг акция компания . В время руководство мечело выступить решение . как сообщить лента . гендиректор мечело корж компания считать что план финансовый оздоровление являться оптимальный компромиссный вариант сторона . втб подать арбитражный суд москва иск мечело взыскание долг сумма миллиард рубль . слово глава втб мечело не_обслуживать кредит банка вынужденный суд требовать возмещение просрочить задолженность . глава сбербанк поддержать позиция . помощник президент россия белоус заявить что руководство мечело как близко нахождение компромисс кредитор иск банка втб компания носить технический характер отстаивание интерес банка . |ngramms рейтинг_российский металлургический_компания информация_содержаться агентство_отмечать ухудшение_финансовый долг_предприятие обслуживание_долг год_составлять миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар основный_кредитор крупный_российский миллион_доллар миллион_доллар миллион_доллар миллион_доллар решить_проблема акция_компания В_то_же_время как_сообщить арбитражный_суд_москва миллиард_рубль глава_втб _ _ глава_сбербанк президент_россия_ что_руководство банка_втб технический_характер +1518 |text В ростелеком выразить готовность обеспечить высокоскоростной доступ интернет больница поликлиника поступить соответствующий распоряжение . сообщать новость ссылка оператор . ростелеком готовый выполнить задача быть предложить сделать . У компания есть успешный опыт выполнение подобный проект заявить компания . компания отреагировать требование президент год подключить больница интернет прозвучать время ежегодный послание федеральный собрание . мнение глава государство позволить врач получать консультация пользоваться возможность телемедицина отдалённый район страна . президент что минсвязи задача считать абсолютно реалистичный исполнимый . В настоящее время ростелеком реализовать масштабный госпроект устранение цифровой неравенство уцн рамка провести интернет тысяча населить пункт где проживать человек . планироваться построить тысяча километр волоконный оптический линия волс . сообщаться что недофинансирование федеральный бюджет срок проект мочь сдвинуться . В год ростелеком недополучить миллиард рубль проект . |ngramms выразить_готовность соответствующий_распоряжение сообщать_риа_новость пресс_служба компания_есть подобный_проект пресс_секретарь компания__ президент__ федеральный_собрание глава_государство В_настоящее_время где_проживать планироваться_построить тысяча_километр федеральный_бюджет проект_мочь В_это_год миллиард_рубль +1519 |text инвестиционный компания blackstone принадлежащий гостиничный холдинг hilton ipo состояться предположительно следующий весной . сообщать york times . компания нанять банка deutsche bank goldman sachs bank america merrill lynch morgan stanley реализация задача . многие инвесткомпание активно расставаться актив подорожать время продавать напрямую использовать механизм ipo . blackstone реализовать актив результат что смочь второе квартал текущий год утроить прибыль . В blackstone акция консалтинговый группа nielsen развлекательный комплекс seaworld entertainment . компания планировать продажа гостиничный сеть la quinta . В время hilton стать крупный актив год быть фонд прямая инвестиция . сеть hilton являться ведущий гостиничный холдинг мир . контроль находиться отель континент . быть основать год техас хилтон . В год приобрести blackstone миллиард доллар причём финансирование сделка использоваться основное заёмный средство . обвал рынок год инвесткомпание понести значительный убыток сеть приобрести пик стоимость . группа blackstone владеть актив сумма миллиард доллар . управление находиться актив миллиард доллар . прибыль инвесткомпание год составить миллион . |ngramms инвестиционный_компания что_смочь текущий_год компания_планировать В_то_же_время стать_один_из_крупный прямая_инвестиция являться_ведущий миллиард_доллар миллиард_доллар миллиард_доллар значительный_убыток владеть_актив год_составить +1520 |text mail.ru group limited объявить продажа процент акция headhunter консорциум инвестор руководство эльбрус капитал миллиард рубль . сообщение mail.ru поступить редакция лента . . сделка быть завершить год . сообщаться что сумма быть выплатить транш размер миллиард рубль получить миллиард рубль быть получить год . транш являться безусловный есть не_требовать выполнение дополнительный условие . О что mail.ru group заключить соглашение продажа процент headhunter консорциум миллиард рубль стать год . завершение сделка первое квартал год . mail.ru group владеть headhunter протяжение семь год . ресурс являться лидер россия украина казахстан белоруссия азербайджан . В год выручка headhunter снизиться процент миллиард рубль показатель ebitda сократиться процент миллиард рубль сравнение результат год . . group принадлежать почта . социальный сеть одноклассник мир вконтакте сервис мгновенный сообщение icq . агент . mail.ru group принадлежать миноритарный доля ряд россия украина израиль пакет акция qiwi процент . основный акционер . group являться структура предприниматель южноафриканский холдинг naspers китайский tencent . |ngramms объявить_о_продажа процент_акция консорциум_инвестор миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль поступить_в_редакция сделка_быть быть_выплатить быть_получить соглашение_о_продажа завершение_сделка семь_год являться_лидер интернетом_рекрутмента год_выручка показатель_ebitda интернетом_ресурс социальный_сеть group_принадлежать интернет_компания пакет_акция основный_акционер _ +1521 |text спикер совет федерация остаться недовольный ярмарка российский товар центр москва передавать интерфакс . слово спикер некоторый продукция стыдно показывать иностранец Я воскресение быть каток гум проходить мимо ярмарка матрёшка невозможно . выставка ладья выставка ярмарка народный художественный промысл прима . лента . идти мимо намалевать ручной работа примитивно . спикер совет федерация подчеркнуть что помимо матрёшка россия региональный бренд . слово собираться поручить сенатор регистрация продвижение торговый марка регион сообщать . Я дать поручение сенатор год зарегистрировать региональный бренд как двое сенатор регион прима . лента . бренд регион . возмутиться что многие известный российский бренд оставаться незарегистрированный . привести пример кубачинский серебро палехский шкатулка дымковский игрушка . сенатор зарегистрировать наименование россия появиться бренд . глава департамент торговля услуга москва что ярмарка гум частный ведомство готовый оказать содействие наполнение качественный товар сообщить вечерний москва . совет вопрос интеллектуальный собственность год рекомендовать региональный власть создать система продвижение территориальный бренд напомнить . количество заявка регистрация региональный торговый марка год вырасти процент сравнение треть регион год не_поступить заявка . оценка привести спикер совфеда товар зарегистрировать наименование место происхождение принести регион миллиард рубль ближний восемь год . |ngramms совет_федерация совет_федерация _ _ российский_товар что_помимо региональный_бренд региональный_бренд торговый_марка торговый_марка что_многие известный_российский департамент_торговля готовый_оказать региональный_власть напомнить_ год_вырасти миллиард_рубль восемь_год +1522 |text федеральный антимонопольный служба фас получить заявка роснефть увеличение доля башнефть сто процент . заявить замглавы ведомство голомолзин передавать новость . слово заявка поступить быть рассмотреть ориентировочно месяц . У фас есть необходимый информация чиновник . не_думать что есть необходимость дополнительный проведение анализ . официальный представитель роснефть очередь пояснить что компания обратиться фас разрешение выкуп сто процент акция башнефть поскольку автоматически давать право выкуп доля компания . глава фас что служба рассмотрение ходатайство роснефть рамка покупка башнефть скорее сформулировать предписание продажа азс башкирия татарстан . роснефть закрыть сделка приобретение госпакет акция башнефть . правительство россия направить роснефть директива покупка процент акция башнефть цена выше миллиард рубль . конец год состояться приватизация госпакет акция роснефть . продажа процент ценный бумага государство рассчитывать выручить миллиард рубль . |ngramms федеральный_антимонопольный_служба сто_процент ведомство_ передавать_риа_новость заявка_поступить быть_рассмотреть что_есть официальный_представитель что_компания процент_акция процент_акция доля_в_компания глава_фас госпакет_акция госпакет_акция правительство_россия миллиард_рубль миллиард_рубль ценный_бумага рассчитывать_выручить +1523 |text компания cisco работать сфера информационный технология заявить грядущий сокращение сотрудник . как передавать presse быть сократить тысяча рабочий место есть процент . руководство компания объяснить решение что экономика восстанавливаться спад медленный предполагаться особенно развивающийся рынок возлагаться особый надежда . В cisco предпринять попытка сбалансировать персонал обслуживание наиболее перспективный направление . В заявление компания что часть уволить сотрудник быть вновь нанять должность . сообщение грядущий увольнение привести падение акция cisco процент доллар штука . afp отмечать что компания решиться сокращение несмотря рост прибыть процент . cisco проводить крупный сокращение штат рабочий место место год . В первое случай решение объясняться глобальный реструктуризация компания второе неопределённость мировой экономика . |ngramms работать_в_сфера информационный_технология как_передавать быть_сократить рабочий_место рабочий_место руководство_компания перспективный_направление В_заявление что_часть доллар_за_штука что_компания сокращение_штат В_первое случай_решение глобальный_реструктуризация мировой_экономика +1524 |text единственный год владелец банка агросоюз шляховой выйти состав акционер кредитный организация . лента . сообщить источник близкий агросоюз . слово де факто шляховой давно не_принимать никакой управление банк сосредоточиться развитие собственный проект европа . В как сообщать год приобрести vtb banka дочка втб сербия . представитель шляховый подчёркивать что интеграция бизнес агросоюз не_быть . как источник лента . подготовка сделка выход шляховый капитал агросоюз осуществляться протяжение месяц . есть покупать vtb banka планировать что расстаться агросоюз . источник высказать опасение что определённый сложность завершение сделка мочь представлять санкция минфин сша быть ввести отношение агросоюз начало осуществление финансовый операция интерес клиент северный корея . слово санкция не_повлиять операционный деятельность банка . как отмечать специалист северокорейский операция проходить россия быть номинировать рубль . непонятно как дать мочь попасть распоряжение американский власть . доступ информация иметь сотрудник надзорный блок цб . иначе утверждение источник лента . новый собственник не_счесть препятствие завершение сделка подробность не_раскрываться . слово банка работать новый менеджмент . банк агросоюз занимать место банковский система россия иметь офис работать москва казань уфа оренбург ряд город . агросоюз участник система страхование вклад частное клиент помимо депозитный программа предлагаться кредит кредитный карта услуга проведение платёж банковский перевод . В год агросоюз войти состав попечительский совет конкурс регион устойчивый развитие проводить сбербанк участник инвестиционный проект государственный поддержка . В банка действовать собственный программа комплексный сопровождение подготовка проект финансирование помогать клиент получить государственный поддержка федеральный региональный уровень . |ngramms состав_акционер кредитный_организация сообщить_источник собственный_проект как_сообщать завершение_сделка завершение_сделка минфин_сша финансовый_операция операционный_деятельность как_отмечать быть_номинировать американский_власть новый_собственник банковский_система работать_в_москва санкт_петербург страхование_вклад кредитный_карта войти_в_состав инвестиционный_проект государственный_поддержка государственный_поддержка В_банка подготовка_проект региональный_уровень +1525 |text автоваз возобновить поставка автомобиль венгрия . сообщить президент компания бу андерссон передавать новость . что заручиться поддержка правительство россия обещать стимулировать экспортный продажа продукция автозавод . представитель предприятие уточнить что соглашение начало экспорт автомобиль венгрия быть подписать начало автоваз договориться дилер страна . объесть планировать поставка предприятие не_раскрывать . В начало что правительство россия готовый поддержать экспорт продукция автоваз . причём как готовый автомобиль машинокомплект сборка рубеж . уточнять что обсуждаться финансовый мера возможность снижение тариф перевозка продукция порт . В очередь андерссон заявлять что автомобиль lada планироваться продавать страна мир . стратегический цель слово являться поставка граница тысяча машина ежегодно . продвижение lada зарубежный рынок способствовать девальвация рубль . В автоваз подписать соглашение компания бипэк авто дистрибуция lada рынок монголия киргизия узбекистан таджикистан туркмения . В настоящее время автопроизводитель реформировать дистрибуторский сеть экспортный рынок вводить единый стандарт клиентский сервис . позитивный опыт работа партнёр россия казахстан позволять рассчитывать успешный возвращение рынок где позиция автоваз быть традиционно сильный подчёркивать андерссон . В президент автоваз отмечать что завод мочь удвоить экспортный продажа год довести тысяча машина . признать что заявить цель не_удаться достигнуть падение продажа казахстан приходиться процент экспорт . итог год продажа рубеж снизиться треть тысяча машина . продажа lada российский рынок снижаться фон падение спрос автомобиль . ассоциация европейский бизнес аеб месяц год сократиться треть тысяча машина . |ngramms президент_компания бу_андерссон передавать_риа_новость правительство_россия правительство_россия продажа_продукция предприятие_уточнить быть_подписать В_начало вице_премьер готовый_поддержать экспорт_продукция причём_как В_свой_очередь андерссон_заявлять автомобиль_lada страна_мир тысяча_машина тысяча_машина тысяча_машина тысяча_машина девальвация_рубль В_настоящее_время экспортный_рынок опыт_работа что_завод экспортный_продажа топ_менеджер заявить_цель падение_продажа процент_экспорт год_продажа продажа_lada ассоциация_европейский_бизнес +1526 |text трансаэро аэрофлот ограничить продажа билет украина колебание курс гривна сообщать интерфакс ссылка авиакомпания . В случай трансаэро идти ограничение продажа украинский агент перевозка связанный перелёт россия украина . аэрофлот ввести сбор продажа билет украина пункт начало перевозка предел страна . аэрофлот подчеркнуть что введение сбор не_связать политический ситуация страна исключительно резкий изменение валютный курс . курс гривна начало беспорядок киев существенно снизиться перевалить отметка гривна доллар что являться пятилетний минимум . частично падение быть вызвать снижение курс валюта развивающийся страна месяц . эскалация конфликт украина привести резкий повышение стоимость кредитный дефолтный своп страна . своп вырасти базовый пункт пункт образ инвестор считать что вероятность дефолт украина превышать процент . беспорядок киев возобновиться перерыв неделя . массовый акция протест стартовать что быть связать отказ правительство страна подписывать соглашение ассоциация ес . разрешить политический кризис страна не_удаться . |ngramms билет_на_украина курс_гривна курс_гривна пресс_служба В_случай россия_и_украина продажа_билет что_введение ситуация_в_страна резкий_изменение валютный_курс что_являться курс_валюта украина_превышать акция_протест правительство_страна политический_кризис +1527 |text компания ютэйр опровергнуть слух отмена десяток рейс москва петербург город . появиться информация отмена авиакомпания рейс направление не_соответствовать действительность . сообщать ссылка авиаперевозчик . как пояснить ютэйр авиакомпания отозвать выдать допуск неиспользуемый направление иной причина не_выполнять полёт не_осуществлять продажа билет . В авиакомпания назвать подобный процедура стандартный нормативный практика . существующий утвердить программа полёт ютэйр оставаться изменение выполняться полный объём сообщить компания . ссылка дать федеральный агентство воздушный транспорт сообщить что авиакомпания ютэйр отказаться допуск рейс маршрут разный город россия . В авиакомпания испытывать значительный финансовый трудность попросить правительство миллиард рубль госгарантия . ютэйр объём перевозка авиакомпания россия конец год допустить дефолт облигация столкнуться многочисленный иск кредитор контрагент . долг перевозчик учёт лизинговый платёж составлять миллиард рубль . |ngramms опровергнуть_слух десяток_рейс информация_о_отмена пресс_служба пресс_служба утвердить_программа сообщить_в_компания федеральный_агентство воздушный_транспорт город_россия финансовый_трудность миллиард_рубль миллиард_рубль год_допустить долг_перевозчик лизинговый_платёж +1528 |text федеральный суд сша восстановить иск бывший раб похитить мали кот ивуар бесплатный работа какао плантация американский филиал швейцарский производитель продукт питание напиток nestle sa компания cargill . сообщать агентство bloomberg . В материал суд истец выступать африканец что попасть рабство компания детский возраст . слово похититель заставлять работать часы какао плантация не_выплачивать зарплата . отмечаться что компания быть осведомить что детский рабский труд широко использоваться кот ивуаре . nestle cargill вероятно закрывать глаз практика получать выгода низкий цена писать агентство . истец подать иск суд компания год . В прошлое год иск быть отклонить недостаток доказательство . поздний быть обнаружить новое факт сотрудник американский офис одобрить выплата внеконтрактный платёж фермер ради обеспечение низкий цена возможный использование детский труд . В nestle заявить разработка политика борьба глобальный социальный проблема . cargill отклонить обвинение . В фонд walk free foundation представить новый выпуск глобальный индекс рабство . мир миллион человек находиться современный форма рабство . миллион подверженный насильственный труд миллион быть принудить супружество . процент жертва составлять женщина девочка . |ngramms федеральный_суд иск_бывший продукт_питание агентство_bloomberg В_материал истец_выступать что_компания низкий_цена низкий_цена писать_агентство подать_иск В_прошлое_год иск_быть быть_обнаружить сотрудник_американский социальный_проблема представить_новый миллион_человек +1529 |text российский государственный нефтяной компания роснефть купить процент акция группа доля группа бишкекский нефтяной компания процент осоо интэк топливный оператор аэропорт манас город ош сообщаться компания . сумма сделка не_разглашаться . закрытие произойти одобрение регулятор . С покупка киргизский структура роснефть достаться сеть азс столица страна ряд инфраструктурный актив . слово сечин образ компания заняться продвижение бренд рынок страна . позволить максимизировать доходность поставка нефтепродукт . что касаться совместный предприятие топливный оператор манас партнёр планировать сосредоточить усилие приведение процедура технология хранение контроль качество заправка топливо соответствие международный стандарт международный ассоциация воздушный транспорт iata . аэропорт город ош являться филиал международный аэропорт манас бишкек . пассажиропоток аэропорт год прогноз составить миллион человек бишкекский нефтяной компания создать год . владеть азс бишкек крупный страна нефтебаза чуйский область километр столица . |ngramms российский_государственный нефтяной_компания нефтяной_компания нефтяной_компания процент_акция пресс_релиз сеть_азс компания_заняться что_касаться совместный_предприятие партнёр_планировать контроль_качество международный_стандарт международный_ассоциация воздушный_транспорт аэропорт_город международный_аэропорт пассажиропоток_аэропорт миллион_человек +1530 |text игорный зона азов сити быть закрытый весной год . писать газета ведомость . информация издание арендатор получить письмо министр стратегический развитие краснодарский край уведомлять необходимость ликвидировать зона . процедура ликвидация предшествовать выход специальный постановление российский правительство прекратить действие лицензия инвестор право организация игорный деятельность . представитель минфин подтвердить что соответствующий документ готовиться . азов сити являться реально действующий игорный зона территория россия . состоять часть . В щербиновский район краснодарский край граница ростовский область казино работать анапа строительство не_начаться . помимо нея рф год работать игорный зона сибирский монета алтай . поправка правительство основание ликвидироваться азов сити расширить список регион иметь право размещать игорный бизнес краснодарский край алтай приморье калининградский область добавиться крым . В время появиться оговорка что кубань игорный зона мочь размещаться участок выделить строительство олимпийский объект федеральный значение . соответственно быть создать новый игорный зона территория олимпийский объект сочи . предварительный разместиться курорт горка город принадлежать нао красный поляна роза хутор . затрата закрытие зона прийтись нести краснодарский край . расход транспортный инженерный инфраструктура выплата инвестор судебный издержка обойтись оценка минфин миллиард рубль . |ngramms быть_закрытый писать_газета письмо_министр стратегический_развитие краснодарский_край краснодарский_край краснодарский_край краснодарский_край _ российский_правительство действие_лицензия соответствующий_документ ростовский_область помимо_нея год_работать иметь_право калининградский_область В_то_же_время олимпийский_объект олимпийский_объект федеральный_значение быть_создать судебный_издержка миллиард_рубль +1531 |text русский медный компания рмк планировать подписать соглашение сотрудничество реабилитация ликвидация объект накопить прошлое век вред окружающий территория карабашский городской округа челябинский область . журналист ход международный промышленный выставка иннопром сообщить экологический промышленный безопасность рмк . слово помимо компания сторона соглашение выступить министерство природный ресурс экология россия федеральный служба надзор сфера природопользование росприроднадзор правительство челябинский область . документ мочь быть подписать конец год . согласно проект документ площадь подлежащее восстановление составить гектар . В рмк профинансировать проектный работа рекультивация хвостохранилище бывший обогатительный фабрика карабашский медеплавильный комбинат площадь гектар территория пойма река сак элга карабаш . предполагаться что рекультивация быть выполнить привлечение бюджетный средство рамка федеральный целевой программа чистый страна . инициировать внесение указанный участок федеральный реестр объект накопить экологический вред . программа направить восстановление природа карабаш рассчитать год . объесть необходимый инвестиция оцениваться миллиард рубль . планировать что территория быть выравниваться покрываться водонепроницаемый экран . почва быть покрываться потенциально плодородный слой засеиваться трава кустарник прокомментировать новость . задача помочь природа далёкий восстанавливать . реализация проект восстановление нарушить территория карабашский городской округа стать возможный благодаря масштабный модернизация предприятие рмк медеплавильный завод карабашмедь . С вхождение завод состав рмк год компания направить модернизация предприятие повышение экологический безопасность производство миллиард рубль . позволить сократить объесть выброс завод уровень год . В год компания инициировать счёт собственный средство проект рекультивация хвостохранилище бывший обогатительный фабрика карабашский медеплавильный комбинат работать протяжение год . проект пройти федеральный экологический экспертиза . В год рмк приступить реализация технический этап рекультивация . В год быть начать биологический этап рекультивация место бывший хвостохранилище появиться благоустроенный сквер растительность малое архитектурный форма . установка новый механизировать линия розлив медь монтаж новый конвертер газоплотный напыльник новый система газоочистка предприятие карабашмедь реализация проект рекультивация бесхозный хвостохранилище время карабашский медеплавильный комбинат входить программа мероприятие предусмотренный соглашение завод карабашмедь минприрода росприроднадзор челябинский область . документ быть подписать конец год предполагать инвестиция объём миллиард рубль год . как сообщить рмк предприятие полный мера исполнять обязательство . позволить реализовать запланировать мероприятие точно срок . В среднее ежегодно рмк направлять природоохранный проект программа рациональный использование ресурс регион присутствие миллиард рубль . помимо мероприятие направить повышение экологический безопасность производство входить инициатива восстановление лесной угодье зарыбление водоём . |ngramms городской_округа городской_округа вице_президент _ _ _ сторона_соглашение природный_ресурс федеральный_служба мочь_быть_подписать согласно_проект инженерно_изыскательский быть_выполнить бюджетный_средство объесть_необходимый миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль прокомментировать_новость реализация_проект реализация_проект стать_возможный модернизация_предприятие экологический_безопасность экологический_безопасность сократить_объесть собственный_средство В_это_год год_быть новый_система быть_подписать как_сообщить В_среднее +1532 |text компания овергаз являться конец год основный поставщик российский газа рынок болгария подать суд дочерний структура газпром передавать софийский информагентство novinite . гендиректор компания овергаз пояснить что газпром экспорт год перестать продавать газ вопреки долгосрочный договор действующий год . В болгарский холдинг вынужденный приобретать топливо госкомпания болгаргаз невыгодный условие . подчеркнуть что компания есть разногласие лежать сфера повседневный отношение субъект рынок . О причина газпром решить расторгнуть контракт не_сообщить . компания овергаз создать газпром группа болгарский предприниматель паритетный начало являться основный импортёр российский газа конец год . компания посредник поставлять порядок миллиард кубометр топливо ежегодно . конец год газпром подписать контракт государственный болгаргаз начать поставка топливо напрямую . договор позволять российский компания экспортировать миллиард кубометр энергоноситель ежегодно . С начало поставка овергаз стать минимальный . А конец прошлое год болгарский пресса появиться информация что газпром намеренный выйти состав акционер овергаза . российский мид распространить релиз уверять что болгарский потребитель российский газа не_остаться . поставка российский природный газа болгария продолжаться бесперебойно линия государственный компания болгаргаз объём миллиард кубометр соответствующий годовой потребность страна сообщение . В немой подчёркиваться что овергаз болгария поступать процент энергоноситель . мид сообщать что сторона продолжать переговоры урегулирование накопиться год коммерческий вопрос . |ngramms основный_поставщик российский_газа российский_газа российский_газа дочерний_структура гендиректор_компания __пояснить газпром_экспорт год_перестать _подчеркнуть компания_есть О_причина являться_основный миллиард_кубометр миллиард_кубометр миллиард_кубометр топливо_ежегодно поставка_топливо российский_компания С_начало состав_акционер российский_мид поставка_российский государственный_компания потребность_страна В_немой продолжать_переговоры коммерческий_вопрос +1533 |text президент макдоналдс mcdonald уйти отставка заменить должность главный бренд директор компания . сообщаться сайт американский корпорация . проработать компания год заявить тяжело прощаться время . Я твёрдо уверенный что когда передать бразда правление продолжить успешно продвигать бренд . мнение аналитик руководство макдоналдс ухудшение продажа образ хотеть показать инвестор стремление серьёзно изменить улучшить ситуация . как стать основной результат деятельность компания макдоналдс год оказаться худой показатель год . снизиться продажа выручка прибыль . В годовой продажа мировой лидер фастфуд падать год . негативный влияние результат деятельность компания оказать ряд фактор стать пристальный внимание проверять орган работа российский подразделение сеть . внеплановый проверка ресторан быстрый питание макдоналдс россия начаться год . результат десятка ресторан быть найти различный нарушение требование санитарный законодательство . ряд заведение быть вынужденный временно прекратить работа большой европа макдоналдс расположить москва пушкинский площадь . сеть ресторан быстрый питание макдоналдс включать тысяча заведение страна . количество ресторан сеть уступать американский компания subway . макдоналдс ежедневно обслуживать миллион человек . российский сеть насчитывать ресторан обслуживать свыше миллион человек сто город страна . |ngramms _ _ должность_главный директор_компания вице_президент американский_корпорация мак_семья хотеть_показать деятельность_компания деятельность_компания годовой_продажа мировой_лидер ряд_фактор российский_подразделение быстрый_питание быстрый_питание быть_найти нарушение_требование быть_вынужденный расположить_в_москва сеть_ресторан американский_компания миллион_человек миллион_человек российский_сеть город_страна +1534 |text В год процент выручка biocad быть получать экспорт лекарство . быть заявить ход международный фармацевтический выставка cphi worldwide проходить год мадрид передавать корреспондент лента . . В рамка выставка biocad подписать новое партнерский соглашение представитель фарминдустрия греция оаэ мексика . С греческий компания winmedica заключить договор поставка биоаналог адалимумаб лечение ряд аутоиммунный заболевание вскоре быть одобрить россия готовиться подача регистрация евросоюз год . предварительно год начаться клинический исследование территория европейский страна . В греция кипр biocad планировать поставить тысяча . упаковка год продажа . cphi быть подписать соглашение крупный ближний восток фармацевтический производитель julphar поставка российский противоопухолевый препарат объединить арабский эмират . С мексиканский компания psicofarma S . A . de C . V . biocad заключить договор технологический трансфер препарат основа моноклонольный антитело биоаналог трастузумаб ритуксимаб бевазумаб . компания планировать что год объесть продажа евросоюз составить миллион доллар страна азия латинский америка менать миллион доллар . год продажа biocad предел россия вырасти процент . В настоящее время ядро экспорт формироваться африка индия азия рассказывать генеральный директор biocad . скорый получение регистрационный удостоверение страна латинский америка аргентина колумбия страна менать египет лидерство перейти регион . рассчитывать высокий продажа завершение регистрационный процедура страна евросоюз япония китай . С год компания вестись активный работа локализация производство biocad финский город турку . В год планироваться завершение проектирование завод работа организация сеть внешний лаборатория анализ начать проведение клинический исследование территория страна евросоюз заказ материал работа устройство чистый помещение здание завод поставка площадка оборудование система . продажа финляндия запланировать год . В развитие экспортный потенциал компания biocad оказывать поддержка минпромторг минэкономразвития рф . слово развитие индустрия сторона разработка продвижение инновационный продукт компания как biocad жизненно важный выходить международный рынок глобальный продажа смочь обеспечить уровень ресурс необходимый доклинический клинический разработка лекарственный средство новое поколение . |ngramms процент_выручка быть_получать заявить_в_ход передавать_корреспондент В_рамка подписать_новое греческий_компания договор_о_поставка быть_одобрить европейский_страна год_продажа год_продажа быть_подписать мексиканский_компания компания_планировать миллион_доллар миллион_доллар юго_восточный юго_восточный В_настоящее_время генеральный_директор _ высокий_продажа год_планироваться здание_завод экспортный_потенциал компания_biocad оказывать_поддержка новое_поколение +1535 |text российский компания абрау дюрсо рассматривать возможность налаживание производство шампанский китай . заявить совладелец компания передавать rambler service . выстраивать отношение китай партнёр хотеть наладить производство поставка товар производство место быстрый напиток charmat метод производство игристый вино резервуар . слово компания есть план расширение бизнес рубеж реализоваться непросто . внутри страна происходить экспансия вовне стоять лондон стоять штат есть партнёр вывозить вино поставлять штат рассказать . компания поставлять продукция израиль европа . процент поставка приходиться россия . абрау дюрсо российский компания заниматься производство шампанский игристый вино . расположить посёлок абрау дюрсо краснодарский край . владелец являться возглавлять предприниматель российский бизнес омбудсмен компания svl . |ngramms российский_компания российский_компания рассматривать_возможность производство_шампанский компания__ rambler_news_service компания_есть заниматься_производство краснодарский_край владелец_являться российский_бизнес _ +1536 |text газпром перенаправить не_сварить труба предназначаться строительство южный коридор служить подача газа турецкий поток расширение северный газопровод газ быть поставляться новое нитка северный поток . уложить труба сумма миллиард рубль компания использовать не_удаться . писать ведомость ссылка источник близкий трубный компания . слово неиспользованный остаться километр труба предназначаться восточный маршрут южный коридор . предполагаться что переброска площадка строительство газопровод ухта торжок начаться конец год завершиться конец квартал год . собеседник газета уточнять что идти переброска тысяча тонна труба . В середина газпром сообщить что запуск газопровод турецкий поток откладываться поздний срок . В сообщаться что российский холдинг поручить подрядчик южный коридор служить подача газа черноморский магистраль завершить начать работа не_начинать работа новый объект . газпром отменить новое тендер направление миллиард рубль разорвать контракт нанять строительство нитка морской газопровод итальянский saipem . газпром намереваться транспортировать турецкий поток топливо страна европа . предполагаться что турецкий греческий граница быть создать газовый хаб страна ес быть самостоятельно строить инфраструктура приём газа территория . |ngramms южный_коридор южный_коридор южный_коридор турецкий_поток турецкий_поток турецкий_поток быть_поставляться новое_нитка северный_поток миллиард_рубль миллиард_рубль ссылка_на_источник километр_труба восточный_маршрут строительство_газопровод собеседник_газета тысяча_тонна В_середина что_запуск российский_холдинг начать_работа работа_на_новый морской_газопровод топливо_в_страна юго_восточный греческий_граница быть_создать страна_ес самостоятельно_строить приём_газа +1537 |text норникель вскоре запустить криптовалюта обеспечить металл . заявление сделать президент компания интервью коммерсант . норникель вскоре запустить stablecoin . попытка предложить рынок криптоактив волатильность известный криптовалюта очевидный реальный ценность . гмк важный зрение получение дешёвый финансирование . слово stablecoin дешёвый финансирование причём помощь инструмент компания выйти новый круг инвестор совокупный капитал . рассказать причина интерес цифровой проект . кто отрезать кусок пирог направление год быть выглядеть выгодный перспективный кто остаться старый мир . традиционный компания владеть бизнесмен стать крупный средний . Я представлять как удвоить производство норникель амбициозный план . А как занять большой полтора процент ввп цифровой экономика вполне представлять подчеркнуть президент норникель . слово важный условие реализация цифровой план являться создание благоприятный условие страна очередь область законодательство . недавно возглавить рабочий группа рсппа координация работа улучшение законодательство регуляторный система цифровой проект . рассказать план относительно акция норникель . интеррос вести скупка акция норникель рынок собрать процент сообщить . компания неоднократно заявлять намерение увеличить доля норникель как считать что хорошеть инвестиция . лично не_видеть куда мочь вложить средство эффективность . логичный реинвестировать деньга получить качество дивиденд кстати довольно высокий норникель считать . мнение готовность основный акционер управлять право увеличивать пакет компания являться хороший сигнал как рынок остальной акционер норникель . означать что ключевой собственник верить компания быть стараться работать хороший . В интервью рассказать что быстринский гок мочь повторить история полюс золото стать голуба фишка . выделение быстринский гока норникель следующий этап вероятно быть обсуждаться проведение ipo комбинат . считать логичный дать акционер норникель прямая доступ акция быстринский гока . акционер компания spin гока смысл повторять история выделение полюс золото рынок появляться компания профиль никель палладий чётко ориентировать сбыт китай президент норникель . слово вестись подготовка проведение ipo гока . публичный размещение большой доля вероятность состояться осень год когда быстринский гок выйти проектный мощность . |ngramms вскоре_запустить вскоре_запустить компания__ дешёвый_финансирование дешёвый_финансирование горно_металлургический цифровой_проект цифровой_проект год_быть занять_большой полтора_процент цифровой_экономика подчеркнуть_президент являться_создание _возглавить рабочий_группа относительно_акция неоднократно_заявлять вложить_средство основный_акционер остальной_акционер В_интервью следующий_этап быть_обсуждаться _ акционер_компания проведение_ipo публичный_размещение большой_доля проектный_мощность +1538 |text сервис купон groupon сменить название frendi . сообщение компания . отмечаться что новое имя быть выбрать десяток тысяча вариант прислать пользователь ход специальный конкурс . frendi стать фаворит благодаря точность лаконичность ясность пояснить сервис . компания что старое название ассоциироваться основное купон стать тесный что хотеть . индустрия услуга развиваться сервис провести отразить произойти изменение сообщение . В сервис появиться новый стратегия . купон скидка остаться цель услуга быть подбор наиболее интересный предложение . В начало сообщаться что американский groupon российский подразделение групон русый . приобрести фонд совладелец являться пасынок поэт вознесенский . groupon создать год работать мир предоставлять скидочный купон различный услуга . В год компания привлечь миллион доллар фонд accel partners enterprise associates миллион digital sky technologies нынешний название . group dst global фонд battery ventures . рыночный капитализация компания составлять миллиард доллар . В состав совладелец фонд holdings входить baring vostok capital partners ufg . доля яндекс ozon . инвестфонд ii принадлежать контрольный пакет рекламный агентство icontext разработчик видеопортал ivi.ru компания digital access . |ngramms что_новое быть_выбрать десяток_тысяча появиться_новый В_начало интернет_компания российский_подразделение _ _ поэт_ компания_привлечь миллион_доллар рыночный_капитализация миллиард_доллар В_состав capital_partners контрольный_пакет рекламный_агентство +1539 |text минфин россия рассматривать возможный приватизация роснефть год как источник замещение дополнительный расход резервный фонд . заявить министр финансы силуановый передавать новость . чиновник пояснить что пополнение бюджет счёт продажа акция нефтедобывающий компания мочь понадобиться случай снижение доход будущее год . агентство ссылка источник сообщить что правительство россия согласовать приватизация процентный пакет акция роснефть цена первичный публичный размещение ipo год . министр экономический развитие отвечать вопрос журналист допускать продажа год принадлежащий государство пакет акция нефтяной компания . чиновник знакомый ход подготовка план приватизация пояснить рбк что компания получить разрешение не_обязать продавать пакет немедленно . согласно процедура отчуждение акция формировать пакет предложение продажа поступать росимущество минэкономразвития . очередь направлять предложение правительство кабинет министр выпускать соответствующий директива . сообщать что росимущество готовый ускорить приватизация роснефть аэрофлот русгидро быть дать соответствующий поручение президент . основный акционер роснефть являться государственный роснефтегаз владеть процент акция . приватизация процент роснефть значиться государственный план период год включительно . согласно подписать прошлое год распоряжение премьера акция роснефть быть цена первичный публичный размещение год составить доллар рубль курс год ценный бумага . ход ipo компания миллиард акция сумма миллиард доллар . В год президент роснефть сечин что процент компания мочь быть приватизировать цена доллар акция . |ngramms россия_рассматривать дополнительный_расход министр_финансы передавать_риа_новость продажа_акция компания_мочь правительство_россия пакет_акция пакет_акция публичный_размещение публичный_размещение министр_экономический_развитие _ _ принадлежащий_государство нефтяной_компания ход_подготовка план_приватизация пояснить_рбк что_компания получить_разрешение что_росимущество дать_соответствующий президент__ основный_акционер являться_государственный процент_акция прошлое_год распоряжение_премьера ценный_бумага ipo_компания миллиард_доллар _сечин компания_мочь_быть +1540 |text министр транспорт максим допустить что протокол авиабезопасность египет быть подписать . С соответствующий заявление глава ведомство выступить кулуар сочинский инвестиционный форум передавать новость . подписание документ стать возможный возобновление авиасообщение страна . как египетский сторона официальный порядок заявить готовность подписать соответствующий протокол минтранс россия смочь реализовать полномочие предоставить правительство заявить максим . слово соответствующий решение мочь быть ближний месяц . эфир телеканал россия министр что ближний время вряд удаться возобновить авиасообщение египет . осень год самолёт борт находиться человек основное россиянин разбиться синайский полуостров . причина катастрофа стать теракт . москва приостановить авиасообщение страна потребовать усилить мера безопасность аэропорт арабский республика . В год эксперт россия побывать египет проверка местный аэропорт . В год сообщить возможный возобновление рейс египет конец зима . правительство рф одобрить протокол сотрудничество египет сфера обеспечение авиабезопасность . В сообщение кабинет министр отмечаться что срок возобновление полёт страна зависеть выполнение египетский стороной требование мера авиационный безопасность . |ngramms министр_транспорт максим_ максим_ быть_подписать соответствующий_заявление глава_ведомство инвестиционный_форум передавать_риа_новость стать_возможный подписать_соответствующий минтранс_россия соответствующий_решение мочь_быть ближний_месяц причина_катастрофа мера_безопасность местный_аэропорт сообщить_о_возможный правительство_рф В_сообщение пресс_служба срок_возобновление авиационный_безопасность +1541 |text аэрофлот отменить коммерческий рейс новое самолёт boeing отсутствие разрешение росавиация . сообщаться авиакомпания . росавиация не_разрешить начать эксплуатация авиалайнер что boeing время не_получить сертификат авиационный регистр межгосударственный авиационный комитет ар мак . причина задерживаться выдача сертификат известный . аэрофлот получить boeing . коммерческий рейс новое авиалайнер быть запланировать маршрут москва бангкок . вместо рейс выполнить boeing airbus полёт перенести дата . авиакомпания собираться взыскать ущерб кто не_уточняться . boeing являться версия самолёт повышенный дальность er extended range . В год аэрофлот договориться покупка самолёт . В каталожный цена сумма контракт составить миллиард доллар поздний перевозчик сообщать что самолёт обойтись миллиард доллар . В россия сертифицировать авиалайнер boeing . количество самолёт обладать основной конкурент аэрофлот трансаэро крупный акционер являться супруга сын невестка глава мак анодина . |ngramms коммерческий_рейс коммерческий_рейс самолёт_boeing отсутствие_разрешение пресс_релиз эксплуатация_авиалайнер авиационный_комитет выдача_сертификат авиалайнер_быть договориться_о_покупка контракт_составить миллиард_доллар миллиард_доллар поздний_перевозчик В_россия авиалайнер_boeing основной_конкурент крупный_акционер супруга_ +1542 |text председатель совет директор китайский национальный нефтегазовый корпорация cnpc ван илинь подтвердить намерение компания участвовать приватизация роснефть заявить заинтересованность управление российский госкомпания . заявление сделать эфир телеканал россия . когда быть сформировать предложение роснефть приватизация акция детально рассмотреть как партнерство компания нести стратегический характер являться значимый элемент сотрудничество страна илинь . В намерение участвовать приватизация роснефть cnpc ван . слово деталь быть обсуждаться уровень глава россия кнр . В настоящее время cnpc владеть процент акция роснефть приобрести год ход первичный размещение ценный бумага российский компания фондовый биржа ipo . правительство россия планировать приватизировать процент акция роснефть . замминистра финансы заявлять что продажа часть ценный бумага госкомпания мочь принести бюджет миллиард рубль . |ngramms председатель_совет_директор китайский_национальный нефтегазовый_корпорация подтвердить_намерение участвовать_в_приватизация участвовать_в_приватизация российский_госкомпания быть_сформировать вице_президент быть_обсуждаться В_настоящее_время процент_акция процент_акция первичный_размещение ценный_бумага ценный_бумага российский_компания фондовый_биржа правительство_россия _ что_продажа мочь_принести миллиард_рубль +1543 |text канадский производитель мобильный устройство blackberry отказаться план продажа актив . как сообщать вместо компания попытаться поправить положение помощь смена руководитель вливание капитал . действующий президент главный исполнительный директор blackberry торстен хейнс отправиться отставка . денежный средство размер примерно миллиард доллар компания рассчитывать получить помощь продажа конвертировать облигация . В покупатель облигация называть крупный акционер blackberry инвестиционный консорциум fairfax financial holdings как вложить облигация миллион доллар . консорциум fairfax владеть десять процент акция blackberry быть объявить будущий покупатель остальной актив компания сумма предполагать сделка оцениваться миллиард доллар . впоследствии fairfax возникнуть затруднение финансирование покупка blackberry вступить переговоры возможный покупатель google cisco systems sap . О возможность продажа blackberry стать год . К компания год входить лидер рынок смартфон потерять позиция конкурентный борьба apple samsung акция подешеветь доллар штука . предполагаться что покупка компания fairfax заплатить акция девять доллар . новое падение котировка blackberry последовать отмена покупка составить примерно процент . |ngramms мобильный_устройство как_сообщать действующий_президент исполнительный_директор денежный_средство миллиард_доллар миллиард_доллар рассчитывать_получить крупный_акционер миллион_доллар процент_акция актив_компания финансирование_покупка возможный_покупатель О_возможность продажа_blackberry рынок_смартфон доллар_за_штука составить_примерно +1544 |text сеть ресторан быстрый питание макдоналдс открыть пакистанский город кветта население симпатия террористический группировка талибан запретить россия . сообщать телеканал nbc . меню заведение халяльный . блюдо как бутерброд яйцо котлета присутствовать вместо немой использоваться мясо курица . В среднее набор входить гамбургер сандвич лепёшка говяжий котлета картошка фри напиток стоить доллар выяснить корреспондент телеканал . Я знать что макдоналдс открыться не_быть есть . не_рассматривать еда как пища . жить суровый горный местность нуждаться энергия борьба враг nbc полевой командир талибан эхсан . слово боевик группировка предпочитать баранина рис . талиб добавить что однажды пробовать еда макдоналдс быть дорого безвкусно . эхсан признать что быстрый еда приемлемый спешка когда нет хорошеть пища . кветта столица пакистанский провинция белуджистан . В влияние талиб город быть сильный . считаться что население кветта пора симпатизировать движение . В год газета independent включить кветта десятка город мир где вероятный мочь произойти террористический атака . новый макдоналдс как сообщать телеканал расположиться центральный район город где полиция вести усиленный патрулирование . предложение снять дом кветта появиться сервис поиск жильё путешественник airbnb . |ngramms сеть_ресторан быстрый_питание сообщать_телеканал вместо_ В_среднее Я_знать город_мир мочь_произойти как_сообщать район_город появиться_на_сервис +1545 |text проект антикризисный план правительство россия предусматривать замораживание тариф проезд тяжёлый грузовик федеральный трасса уровень рубль километр писать ведомость . С планироваться поднять вдвое рубль . какой срок кабмина намеренный сохранить действующий расценка документ не_указываться . тимаковый сообщить издание что план быть рассмотреть совещание . представитель минэкономразвития отвечать подготовка план профильный аркадия комментарий отказаться . слово источник минтранс сохранение тариф прежний уровень нарушить план росавтодор регион строительство дорога использование частное инвестиция как быть финансироваться счёт сбор фура . В начало год росавтодор предварительно изучить заявка семь регион стоимость миллиард рубль . мост обь новосибирск чусовая пермь шексон череповец автодорога обход ижевск хабаровск . В конец арбитражный суд москва обязать представить текст концессионный соглашение росавтодор оператор система взимание плата тяжёлый грузовик компания . иск оспариваться законность введение плата дальнобойщик быть подать оппозиционер навальный . В начало президент россия поручить правительство год разработать предложение отмена транспортный налог тяжёлый грузовик уплачивать сбор система . правительство выступить предложить взамен ввести налоговый вычет . система взимание плата проезд грузовик масса тонна федеральный трасса заработать год . В неделя пользователь фиксировать многочисленный сбоить работа . оператор разработчик система взимание плата назвать являться рт инвест транспортный система принадлежать сын бизнесмен аркадия структура ростех . собранный грузовик средство направляться федеральный дорожный фонд . С начало работа собрать владелец грузовик миллиард рубль . год работа фонд поступить миллиард рубль тариф рубль километр . введение новое дорожный сбор большегрузный транспорт вызвать массовый протест дальнобойщик страна требовать отменить . |ngramms правительство_россия тяжёлый_грузовик тяжёлый_грузовик какой_срок сохранить_действующий пресс_секретарь премьер_министр _ сообщить_издание быть_рассмотреть подготовка_план вице_премьер аркадия_ прежний_уровень В_начало В_начало миллиард_рубль миллиард_рубль миллиард_рубль В_конец арбитражный_суд_москва оператор_система быть_подать президент_россия__ поручить_правительство ввести_налоговый проезд_грузовик транспортный_система бизнесмен_аркадия дорожный_фонд С_начало массовый_протест +1546 |text акционер автоваз планировать получать дивиденд выплата завод долг срок погашение истекать год . номер писать газета ведомость ссылка неназванный представитель ростех . О намерить компания погасить долг досрочно ничто . В время источник издание отмечать что решение выплата дивиденд быть обсуждаться заседание совет директор . как уточнять издание год акционер renault nissan ростёха договориться что получить прибыль помимо выплата долг быть направляться инвестпрограмма . долг автоваз госкорпорация состояние год составлять миллиард рубль срок кредит истекать год . изначально ростёха выдать автозавод миллиард рубль вид беспроцентный заём корпорация получить государство . часть кредит тольяттинский предприятие погасить непрофильный актив остаться долг быть реструктуризировать год . итог половина год автоваз впервые год стать убыточный . международный стандарт финансовый отчётность компания получить убыток миллиард рубль . аналогичный период год завод заработать миллиард рубль . убыток объяснять замедление рост экономика как следствие спад спрос автомобиль . компания пострадать банковский кризис кипр результат автоваз потерять миллион рубль финорганизация остров . отмечать что предыдущий год прибыль быть бумажный объясняться получение беспроцентный кредит ростех . автоваз платить дивиденд год . компания выплатить акционер процент чистый прибыть что составить миллион рубль . |ngramms срок_погашение писать_газета погасить_долг В_то_же_время источник_издание выплата_дивиденд быть_обсуждаться совет_директор как_уточнять получить_прибыль долг_быть долг_быть миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль часть_кредит год_стать международный_стандарт финансовый_отчётность компания_получить аналогичный_период как_следствие миллион_рубль миллион_рубль предыдущий_год прибыль_быть компания_выплатить чистый_прибыть +1547 |text концерн пообещать предоставить скидка журналист захотеть обзавестись травматический оружие . сообщаться релиз сайт . В онлайн магазин есть наличие надёжный мощный огнестрельный оружие ограниченный поражение mp . концерн готовый предоставить процентный скидка сотрудник предъявление журналистский удостоверение отмечаться заявление . В компания добавить что готовый провести семинар юридический практический аспект применение травматический оружие организовать мастер класс вопрос безопасность . концерн выступать ответственный владение оружие поддерживать законный право гражданин защищать подчёркиваться релиз . ажиотаж вопрос обеспечение безопасность журналист возникнуть нападение ведущий эхо москва фельгенгауэр . мужчина ворваться редакция ранить нож шея что пострадать доставить реанимация . единственный версия следствие являться нестабильный психика обвинять нападение грица . задержать охранник радиостанция . поздний злоумышленник предъявить обвинение покушение убийство суд арестовать грица месяц . нападение фельгенгауэр главред новый газета заявить что намеренный вооружить сотрудник издание . |ngramms В_онлайн готовый_предоставить процентный_скидка отмечаться_в_заявление В_компания что_готовый право_гражданин обеспечение_безопасность версия_следствие суд_арестовать __заявить что_намеренный +1548 |text специалист группа компания ase инжиниринговый дивизион росатом создать уникальный цифровой система управление проект multi D ростовский аэс . разработка признать хороший номинация международный конкурс ceti компания прислать редакция лента . . организатор конкурс традиционно выступать наиболее авторитетный мир промышленный объединение fiatech год разработать дорожный карта roadtech map система управление жизненный цикл будущее . конкурсный проект рассматривать международный жюри достоинство оценить российский разработка . цифровой платформа multi D создать специалист группа ase позволять эффективно управлять этап жизненный цикл аэс проектирование вывод эксплуатация . система интегрировать информация проект помогать управлять поставка срок объём ресурс качество . решение база тиражироваться объект портфель заказ ase . доступный реализация вид сложный капитальный проект . победа российский технология номинация свидетельствовать что стратегия развитие система управление жизненный цикл атомный отрасль россия формировать мировой тенденция сфера . признание multi D подтверждать ведущий позиция росатом рынок проектирование строительство аэс подчеркнуть президент группа компания ase . церемония награждение победитель ceti состояться американский орландо рамка технологический конференция выставка fiatech . |ngramms группа_компания группа_компания создать_уникальный система_управление система_управление система_управление признать_хороший мега_проект мега_проект международный_конкурс пресс_релиз организатор_конкурс дорожный_карта создать_специалист портфель_заказ победа_российский стратегия_развитие отрасль_россия ведущий_позиция строительство_аэс подчеркнуть_президент _ +1549 |text В год колбина являться миноритарный акционер сырьевой трейдер gunvor не_быть стратегический полностью прекратить . сообщение gunvor . образ компания прокомментировать расследование телеканал дождь колбина называться детство президент россия бывший владелец акция крупный энергетический трейдер . В сообщение отмечаться что колбина капиталь компания продолжаться год . gunvor что работа трейдер никак не_вовлечь десять год информация что колбина быть компания год недостоверный . В сообщение отмечаться что год выручка стоимость gunvor не_находиться уровень миллиард доллар как сообщать . С создание компания финансовый отчётность аудировать pricewaterhousecoopers kpmg . днём песок заявить что обвинение незаконный обогащение коррупция звучащий адрес приблизить президент россия не_подкрепить реальный факт часто граничить спекуляция . комментировать расследование деятельность бизнесмен колбина журналист называть приятель песок заявить что не_встречать фамилия глава государство . В телеканал дождь показать расследование следовать что бизнесмен колбина занимать место рейтинг богатый россиянин версия forbes детство быть знак . |ngramms миноритарный_акционер президент_россия президент_россия бывший_владелец В_сообщение_отмечаться В_сообщение_отмечаться компания_продолжаться что_в_работа десять_год миллиард_доллар как_сообщать создание_компания финансовый_отчётность пресс_секретарь _ _ _песок бизнесмен_ бизнесмен_ песок_заявить глава_государство место_в_рейтинг богатый_россиянин +1550 |text компания тойота мотор российский представительство японский toyota объявить отзыв российский рынок автомобиль модель toyota camry сообщаться сайт росстандарт . отзыв коснуться машина реализовать период год . отмечаться что причина кампания отзыв заключаться что как выясниться установка опора поворотный кулак завод поставщик установочный оборудование мочь быть повредить резиновый пыльник опора . владелец автомобиль подпадать отзыв уведомить путём рассылка информационный письмо телефон необходимость предоставить автомобиль ближний дилерский центр проведение сервисный ремонтный работа . сервис дилер партнёр toyota проверить состояние пыльник опора необходимость заменить новый . работа быть осуществляться бесплатно владелец . автомобиль toyota camry выпускать завод компания год . О предыдущий отзыв автомобиль марка toyota российский рынок быть объявить год . сообщаться что быть отозвать кроссовер highlander . нынешний отзыв camry стать массовый отзыв машина дать японский марка российский рынок . |ngramms российский_представительство японский_toyota автомобиль_модель сообщаться_на_сайт что_причина как_выясниться _опора _опора _опора мочь_быть владелец_автомобиль предоставить_автомобиль быть_осуществляться автомобиль_toyota санкт_петербург автомобиль_марка быть_объявить быть_отозвать отзыв_машина +1551 |text рынок нефть стоить порог большой передел . мнение высказать глава роснефть сечин интервью австрийский издание die presse . К слово привести кризисный ситуация . ряд предприятие не_выдержать низка цена нефть . кризис привести перераспределение рынок . И нетрадиционный добыча сша стоять порог большой передел заявить сечин что роснефть устраивать цена доллар баррель . ожидать что падение цена доллар первое полугодие точнее конец первое полугодие . Я что роснефть являться достаточно гибкий нея есть запас . некоторый дорогостоящий проект вынудить быть отложить пояснить . потенциал россия сокращение добыча низка цена нефть быть составлять тысяча баррель сутки . что существующий отраслевой структура как международный энергетический агентство секретариат энергетический хартия не_выполнять функция . заменить международный совет рынок . перспектива иметь картельный организация создание совет рынок быть включить как производитель нефть потребитель нефть представитель регулятор подчеркнуть глава роснефть . слово потолок добыча сланцевый нефть быть достигнуть год . объём добыча быть снижаться ввиду ресурсный база степень известный сегодняшний . В настоящее время добыча нефть сша ускорять падение цена нефть будущее снижаться добыча привести расти цена уточнить сечин . глава роснефть прокомментировать санкция запад россия сфера добыча нефть газа . слово делаться вытеснить российский компания азиатско тихоокеанский регион атр где повышаться уровень потребление . кто санкция большой влиять ? германия тысяча рабочий место привязать производство оборудование импортировать россия . перенос санкция политический уровень уровень предприятие являться большой ошибка . как наполеон ошибка худой преступление . ошибка необходимый исправить . контрпродуктивный продолжать бессмысленный санкция . необходимый сесть стол переговоры политика договориться добавить сечин . опека оставить квота добыча нефть изменение уровень миллион баррель сутки что соответствовать решение год . как сообщить генсек картель салем опека мочь рассмотреть вопрос квота полгода . отказ опека сократить квота добыча чёрный золото привести что стоимость нефть сорт brent торг лондонский биржа ice опуститься доллар баррель впервые год . двенадцать страна опека обеспечивать процент поставка нефть мировой рынок регулировать объём механизм квота . С стоимость баррель сорт brent обвалиться процент . |ngramms рынок_нефть _сечин ряд_предприятие цена_на_нефть цена_на_нефть цена_на_нефть доллар_за_баррель доллар_за_баррель падение_цена первое_полугодие первое_полугодие быть_отложить тысяча_баррель энергетический_агентство совет_рынок совет_рынок производитель_нефть потребитель_нефть подчеркнуть_глава сланцевый_нефть быть_достигнуть объём_добыча В_настоящее_время добыча_нефть добыча_нефть добыча_нефть санкция_запад российский_компания рабочий_место миллион_баррель что_соответствовать как_сообщить что_стоимость лондонский_биржа поставка_нефть мировой_рынок стоимость_баррель +1552 |text китайский huawei увеличить выручка миллиард юань миллиард доллар первое полугодие год . процент большой аналогичный период прошлое год . сообщение компания . согласно расчёт компания маржа операционный прибыть месяц год составить процент . мэн cathy meng финансовый директор huawei фактор рост инвестиция lte сеть высокий продажа смартфон мир . традиционно компания huawei производить телекоммуникационный оборудование параллельно развивать продажа смартфон . исследовательский компания idc первое квартал год занять третье место мир поставка умный телефон миллион штука . В год китайский фирма выпустить флагманский модель ascend тонкий конкурировать устройство . отмечать что рост быть достигнуть фон претензия компания сторона сша . В год компания быть обвинить государственный военный структура китай что мнение американский сторона ставить угроза безопасность передаваемый дать телекоммуникационный оборудование . huawei ответ заявить что компания процент принадлежать акционер рабочий государственный капитал . китай очередь потребовать объяснение сторона сша . |ngramms увеличить_выручка миллиард_доллар процент_большой аналогичный_период_прошлое_год согласно_расчёт операционный_прибыть год_составить финансовый_директор продажа_смартфон продажа_смартфон телекоммуникационный_оборудование телекоммуникационный_оборудование третье_место миллион_штука В_это_год что_рост быть_достигнуть год_компания_быть сторона_ставить что_компания процент_принадлежать +1553 |text президент россия наградить корпорация уралвагонзавод увз грамота верховный главнокомандующий вооружённый сила передавать . предприятие заслуга укрепление обороноспособность государство разработка создание современный вооружение военный техника . согласно положение грамота награждаться объединение соединение воинский часть корабль организация учреждение вооружённый сила россия войско воинский формирование орган предприятие организация учреждение независимо форма собственность выполнять государственный оборонный заказ заслуга исполнение воинский долг обеспечение безопасность государство укрепление обороноспособность . В начало сообщаться что год увз рамка гособоронзаказ поставить министерство оборона россия тысяча единица различный вооружение военный специальный техника . увз крупный производитель танк мир доля приходиться процент выпустить машина . предприятие корпорация выпускать спецтехник железнодорожный вагон . чистый прибыль восемь месяц год превысить восемь миллиард рубль . |ngramms президент_россия__ научно_производственный вооружённый_сила вооружённый_сила военный_техника обеспечение_безопасность В_начало министерство_оборона тысяча_единица выпустить_машина железнодорожный_вагон чистый_прибыль восемь_месяц год_превысить миллиард_рубль +1554 |text турция выдать разрешение инженерный изыскание морской участок турецкий поток . газпром поступить лента . . документ предусматривать проведение исследование нитка газопровод исключительный экономический зона территориальный вод турция . морской участок турецкий поток быть состоять нитка мощность миллиард кубометр . газопровод пройти километр старый коридор закрытый проект южный поток километр новый коридор направление европейский часть турция . предполагаться что поставка газа нитка газопровод быть целиком предназначить удовлетворение потребность турецкий рынок . турецкий сторона подтвердить что результат оценка воздействие окружающий получить турецкий морской участок газопровод южный поток мочь быть использовать строительство новый газотранспортный магистраль . В сообщаться что укладка газопровод турецкий поток мелководье начаться декада . труба приобрести проект южный поток быть использовать турецкий поток . предварительный подсчёт газпром нитка турецкий поток быть стоить миллиард евро . глава корпорация заявлять что трубопровод планироваться запустить год . слово посол турция москва умит ярдым начать работать год . В год россия отказаться строительство газопровод южный поток обход украина сопротивление еврокомиссия . ход визит турция президент москва анкара договориться прокладка дно чёрный море газопровод пропускной способность миллиард кубометр газа год . В глава мид греция сербия македония венгрия турция подтвердить намерение участвовать строительство газопровод новый маршрут . турецкий поток протяжённость километр быть состоять нитка . газпром намеренный транспортировать топливо страна европа . предполагаться что турецкий греческий граница быть создать газовый хаб страна евросоюз быть самостоятельно строить инфраструктура приём топливо территория . |ngramms турция_выдать морской_участок морской_участок морской_участок турецкий_поток турецкий_поток турецкий_поток турецкий_поток турецкий_поток турецкий_поток пресс_релиз документ_предусматривать проведение_исследование нитка_газопровод нитка_газопровод экономический_зона миллиард_кубометр миллиард_кубометр газопровод_пройти старый_коридор закрытый_проект южный_поток южный_поток южный_поток южный_поток километр_в_новый европейский_часть поставка_газа турецкий_рынок мочь_быть_использовать строительство_новый быть_использовать быть_стоить миллиард_евро глава_корпорация _ планироваться_запустить строительство_газопровод строительство_газопровод президент__ чёрный_море газа_в_год глава_мид подтвердить_намерение новый_маршрут километр_быть топливо_в_страна юго_восточный греческий_граница быть_создать страна_евросоюз самостоятельно_строить приём_топливо +1555 |text молочный завод вгмох имя владеть бренд вологодский масло быть стратегический российский инвестор релиз сайт росимущество . отмечаться что ведомство поручение правительство россия отменить намечаться приватизация предприятие . проведение продажа процентный пакет акция принадлежащий государство быть выбрать инвестиционный консультант определить ключевой условие структура намечаться сделка . консалтинговый компания быть сформулировать условие приватизация не_допустить перепрофилирование предприятие отмечаться сообщение росимущество . учебный опытный молочный завод вологодский государственный молочнохозяйственный академия вгмох имя выставить торг середина стартовый цена миллиард рубль . согласно аукционный документация шаг торг быть составить миллион рубль . тендер быть отменный росимущество . торг отменять . изначально актив планироваться частное рука прошлое год . коммерсант продажа завод отменить поручение аркадия . издание сообщать что открытый торг продажа производитель вологодский масло решить отказаться . продажа предприятие частное инвестор выступать местный житель село молочный где находиться завод . С просьба отменить торг передать часть акция комбинат собственность регион обращаться президент губернатор вологодский область кувшинник указывать риск приход недобросовестный собственник . учебный опытный молочный завод вгмох имя выпускать молоко сливочный масло молочный продукция . мощность предприятие составлять тысяча тонна сухой молочный продукт тысяча тонна масло . |ngramms молочный_завод молочный_завод молочный_завод имя_ имя_ имя_ владеть_бренд российский_инвестор правительство_россия приватизация_предприятие пакет_акция принадлежащий_государство быть_выбрать ключевой_условие условие_приватизация отмечаться_в_сообщение выставить_на_торг стартовый_цена миллиард_рубль миллион_рубль быть_отменный частное_рука прошлое_год продажа_завод вице_премьер аркадия_ открытый_торг де_факто решить_отказаться частное_инвестор местный_житель С_просьба отменить_торг часть_акция президент__ область_ молочный_продукция мощность_предприятие тысяча_тонна тысяча_тонна молочный_продукт +1556 |text акция оружейный компания сша продемонстрировать значительный рост . стать реакция биржевой игрок новость где местный житель открыть стрельба автомат музыкальный фестиваль сообщать новость . торг официальный открытие биржа акция оружейный гигант как sturm ruger american outdoor brands бывший smith wesson вырасти процент . мнение аналитик свидетельствовать что трейдер прогнозировать рост спрос стрелковый оружие не_верить дальнейший ужесточение оружейный законодательство сша . сообщаться что воскресение вечером житель пэддок stephen paddock находиться номер этаж гостиница mandalay bay открыть огонь автоматический оружие участник музыкальный фестиваль . В результат человек быть убитый свыше раненый . крупный жертва случай массовый убийство стрельба сша . шериф город сообщить журналист что пэддок покончить жизнь самоубийство . В гостиничный номер где проживать быть найти десятка единица оружие . полиция разыскивать женщина имя мэрил дэнли marilou danley жить пэддок . |ngramms компания_сша значительный_рост стать_реакция лас_вегас лас_вегас местный_житель сообщать_риа_новость официальный_открытие прогнозировать_рост находиться_в_номер музыкальный_фестиваль В_результат человек_быть массовый_убийство __сообщить жизнь_самоубийство быть_найти единица_оружие +1557 |text украинский правительство определить условие приватизация одесский припортовый завод опз сообщаться сайт фонд госимущество украина . стартовый цена аукцион ход планироваться процент акция предприятие составить миллиард гривна миллион доллар . В конкурс компания иностранный . российский компания конкурс не_быть допустить . дискуссия приватизация одесский припортовый завод год вылиться стычка министр внутренний украина авакова губернатор одесский область . заседание национальный совет реформа поинтересоваться почему вопрос приватизация опз общаться русский олигарх уралхий поздний опровергнуть факт переговоры прима . лента . . В ответ как поздний описывать ситуация страница facebook сорваться истерика начать орать что не_иметь право разговаривать . губернатор назвать министр коррумпировать . В ответ глава украинский мвд плеснуть вода . невинный вопрос вызвать истерика оскорбление . вор загореться шапка ? писать . мнение опз нужно продавать открыто западный компания имя офшорка русский олигарх шушукаться чиновник прикрываться громкий фраза . В год заявить что окружение яценюк причастный хищение государственный средство . глава одесский область рассказать злоупотребление опз . одесский припортовый завод считаться крупный химический предприятие украина . первоначально правительство страна объявить продажа опз год протяжение последующий год всякий приватизация откладываться . |ngramms украинский_правительство условие_приватизация сообщаться_на_сайт стартовый_цена процент_акция миллиард_гривна миллион_доллар российский_компания не_быть_допустить украина_ область__ национальный_совет опровергнуть_факт В_ответ не_иметь_право глава_украинский западный_компания _заявить премьер_министр государственный_средство считаться_один_из_крупный предприятие_украина правительство_страна объявить_о_продажа +1558 |text правительство великобритания решить дополнительно защитить шотландский висок подделка . как сообщать власть запустить система spirit drinks verification scheme sdvs . sdvs предусматривать создание реестр производитель висок . компания выпускать напиток быть обязательный порядок стать участник sdvs хотеть продавать продукция территория ес . производитель как указывать economic voice приветствовать инициатива правительство . шотландский висок стать напиток получить дополнительный защита . поздний мера защита предполагаться распространить напиток висок северный ирландия яблочный бренди графство сомерсет . шотландия ирландия являться традиционный производитель висок . напиток производить сша канада япония австралия ряд государство . рынок шотландский висок оцениваться примерно миллиард фунт стерлинг миллиард доллар . В шотландия производство напиток занятый десять тысяча человек . |ngramms шотландский_висок шотландский_висок шотландский_висок как_сообщать предусматривать_создание производитель_висок производитель_висок обязательный_порядок стать_участник как_указывать инициатива_правительство получить_дополнительный фунт_стерлинг миллиард_доллар тысяча_человек +1559 |text время чемпионат мир футбол россия злоумышленник мочь установить город проведение матч фальшивый банкомат . писать газета коммерсантъ . цб опубликовать россиянин банк рекомендация часть мера предосторожность время проведение чемпионат мир футбол год . учитывать риска указывать собеседник издание правоохранительный орган . слово проблема мочь стать установка фиктивный банкомат время массовый наплыв турист незнакомый местный банка . житель как правило пользоваться атм вряд стать пытаться снять деньга подозрительный незнакомый устройство . приезжий отличить фальшивый банкомат сложно отмечать . фальшивый банкомат собираться бывший употребление . стоимость составлять тысяча рубль . фиктивный устройство мочь мимикрировать банкомат известный банка . как клиент вставлять банкомат карта вводить снять деньга экран появляться уведомление отказ обслуживание мошенник получать дать карта . цб рекомендовать использовать банкомат установленный безопасный место государственный учреждение подразделение банк крупный торговый комплекс гостиница аэропорт отмечать издание . не_давать полный гарантия безопасность . вернуть похитить помощь фальшивый банкомат средство практически невозможно . чемпионат мир футбол пройти россия матч состояться москва нижний новгород калининград казань екатеринбург саранск самар волгоград сочи . |ngramms мочь_установить писать_газета собеседник_издание мочь_стать как_правило пытаться_снять тысяча_рубль пин_код снять_деньга государственный_учреждение торговый_комплекс отмечать_издание гарантия_безопасность практически_невозможно санкт_петербург нижний_новгород ростов_на_дону +1560 |text втб предоставить миллиард доллар индийский группа essar energy limited проведение реструктуризация долг essar global fund limited . сообщаться прислать редакция лента . . быть необходимый реализация сделка продажа дочерний компания essar oil limited . предоставить втб средство позволить финализировать сделка результат нк роснефть trafigura beheer bv united capital partners приобретать процент essar oil vadinar port vadinar power миллиард доллар уточняться сообщение . сделка быть закрытый выполнение ряд условие как согласование регулятор старший кредитор . сторона рассчитывать что необходимый согласование быть получить первое квартал будущее год . глава втб уточнить что стоимость порт город вадинар составить миллиард доллар нефтеперерабатывающий завод миллиард доллар передавать интерфакс . дать транзакция стать крупный сделка рынок акционерный капитал индия быть осуществить иностранный банк индийский компания . мощность переработка нпз вадинар настоящее время составлять миллион тонна год . |ngramms миллиард_доллар миллиард_доллар миллиард_доллар реструктуризация_долг пресс_релиз сделка_по_продажа дочерний_компания capital_partners быть_закрытый старший_кредитор сторона_рассчитывать быть_получить будущее_год глава_втб _ что_стоимость нефтеперерабатывающий_завод стать_один_из_крупный акционерный_капитал индийский_компания мощность_переработка миллион_тонна +1561 |text совет директор мегафон одобрить заявление глава компания досрочный прекращение полномочие . сообщаться сайт сотовый оператор . должность исполнять обязанность генеральный директор назначить кандидатура быть утвердить годовой собрание акционер состояться . руководить компания год уход занять должность председатель совет директор оператор . пост занять стрешинский гендиректор компания usm advisors управлять актив холдинг партнёр usm holdings . покинуть должность сообщение мегафон . планировать сосредоточиться развитие текущий новый бизнес проект работа совет директор usm holdings партнёр . ведомость сообщать что являться деловой партнёр уйти пост руководитель мегафон конец . слово источник издание быть заниматься что интересно большой развивать медийный направление холдинг . В газета сообщать что поставить вопрос отставка пожелать отойти операционный руководство . мегафон российский оператор мобильный . процент плюс акция компания контролироваться usm holdigns . процент акция владеть скандинавский teliasonera group процент дочка оператор megafon investments процент anfimako . |ngramms совет_директор совет_директор глава_компания _ _ сообщаться_на_сайт сотовый_оператор исполнять_обязанность генеральный_директор утвердить_годовой собрание_акционер _руководить занять_должность председатель_совет_директор занять_ гендиректор_компания актив_холдинг usm_holdings usm_holdings _покинуть новый_бизнес деловой_партнёр пост_руководитель источник_издание российский_оператор процент_плюс акция_компания процент_акция +1562 |text газпром начать строительство амурский газоперерабатывающий завод гпз свободненский район амурский область . компания поступить лента . . амурский предприятие газпром стать крупный россия мир проектный мощность составить миллиард кубометр газа год . В состав гпз войти крупный мир производство гелий миллион кубометр . создание завод быть использовать технология немецкий компания linde . амурский гпз являться важный звено технологический цепочка поставка природный газа китай газопровод сила сибирь восточный маршрут . завод быть поступать многокомпонентный газ якутский иркутский центр газодобыча газпром создавать рамка восточный газовый программа . предприятие газа быть выделяться компонента газохимический отрасль промышленность этан пропан бутан пентан гексановый фракция переработать газ быть поставляться китай . пик строительство амурский гпз задействовать тысяча человек . завод создать тысяча рабочий место . В год россия китай подписать контракт поставка российский трубопроводный газа объём миллиард кубометр год газопровод сила сибирь . предполагаться что поставка мочь начаться год . стоимость контракт составить миллиард доллар . газ быть поставляться кнр якутский иркутский центр газодобыча расположить восточный сибирь . |ngramms начать_строительство пресс_релиз крупный_в_россия проектный_мощность миллиард_кубометр миллиард_кубометр газа_в_год В_состав крупный_в_мир миллион_кубометр быть_использовать немецкий_компания являться_важный природный_газа сила_сибирь сила_сибирь восточный_маршрут газовый_программа быть_поставляться быть_поставляться тысяча_человек рабочий_место контракт_на_поставка контракт_составить миллиард_доллар восточный_сибирь +1563 |text южнокорейский корпорация samsung согласиться войти акционерный капитал японский sharp . как сообщаться официальный sharp южнокорейский партнёр купить процент акция компания примерно миллиард иена миллион доллар . покупатель дополнительно выпустить sharp ценный бумага стать samsung electronics japan . японский подразделение samsung . публикация официальный сообщение sharp акция слух соглашение samsung подорожать процент указывать presse . итог сессия котировка sharp оказаться плюс процент . средство вложить samsung японский корпорация направить оптимизация производство развитие технология область выпуск lcd панель телевизор мобильный устройство ноутбук . sharp являться поставщик lcd панель южнокорейский компания . финансовый положение sharp как крупный производитель электроника япония sony panasonic год резко ухудшиться укрепление местный валюта экономический кризис . В прошлое год sharp договориться часть акция американский qualcomm производить чип мобильный телефон миллиард иена миллион доллар . незадолго деловой появиться информация что вложиться sharp совместно qualcomm мочь корпорация intel . |ngramms корпорация_samsung акционерный_капитал сообщаться_в_официальный пресс_релиз процент_акция_компания миллион_доллар миллион_доллар ценный_бумага подразделение_samsung официальный_сообщение японский_корпорация оптимизация_производство мобильный_устройство являться_поставщик финансовый_положение крупный_производитель экономический_кризис прошлое_год мобильный_телефон появиться_информация +1564 |text антимонопольный орган болгария начать расследование нефтеперерабатывающий завод лукойл расположить бургас сообщать ссылка дать антимонопольный ведомство . отмечаться что помимо единственный болгария нпз расследование фигурировать семь розничный продавец топливо подозревать картельный сговор . идти дочерний структура royal dutch shell omv hellenic petrolleum nis petrol rompetrol bulgarian petrol лукойл . мощность болгарский нпз лукойл составлять миллион тонна топливо год . предприятие перерабатывать нефть различный сорт включая российский поступать трубопровод терминал росенец . летом год дочерний нпз лукойл возникнуть проблема румыния . В начало городской суд румынский город плоешти иск прокуратура решение арест имущество счёт лукойл сумма миллиард евро . причина стать расследование отмывание деньга фигурант стать высокопоставленный сотрудник предприятие . спустя месяц румыния предъявить lukoil europe владеть нефтеперерабатывающий завод плоешти petrotel lukoil обвинение отмывание деньга . суд румынский уезд отклонить обвинительный акт направить прокуратура . лукойл владеть обширный сеть азс европа год распродавать актив ес компания избавиться заправочный станция чехия словакия венгрия год украина . есть план продажа азс латвия литва . лукойл крупный российский частный нефтяной компания башнефть полюс дочерний предприятие башнефть участвовать разработка месторождение имя требс ненецкий автономный округа запас превышать миллион тонна нефть . |ngramms орган_болгария начать_расследование нефтеперерабатывающий_завод антимонопольный_ведомство что_помимо розничный_продавец дочерний_структура миллион_тонна топливо_в_год нефть_различный включая_российский возникнуть_проблема В_начало городской_суд арест_имущество миллиард_евро причина_стать сотрудник_предприятие сеть_азс план_по_продажа крупный_российский нефтяной_компания дочерний_предприятие разработка_месторождение автономный_округа миллион_тонна_нефть +1565 |text бренд английский футбольный клуб манчестер подешеветь минувший год миллион доллар . В рейтинг составить компания brandirectory мю опуститься строчка . основной причина падение стоимость бренд стать крайне неудачный сезон провести манкунианец . клуб манчестер финишировать семь английский вылететь четвертьфинал лига чемпион что сказаться как доход популярность команда . дорогой футбольный бренд мир год стать мюнхенский бавария чей стоимость вырасти миллион доллар . место список brandirectory занять мадридский реал выиграть лига чемпион . бренд команда подорожать миллион доллар . впечатляющий рост удаться расположиться место чемпион англия манчестер сити прибавить миллион . рекордсмен темп рост стать французский псж взлететь позиция . год ранний товарный знак парижский клуб стоить миллион доллар миллион . вдвое подорожать ворваться двадцатка дорогой бренд чемпион испания финалист лига чемпион мадридский . В целое большинство команда год прибавить цена . исключение помимо мю стать амстердамский аякс милан . В двадцатка оказаться семь английский команда немецкий итальянский испанский французский турецкий голландский . российский клуб рейтинг представить не_быть . |ngramms футбольный_клуб манчестер_ минувший_год миллион_доллар миллион_доллар миллион_доллар миллион_доллар В_рейтинг основной_причина падение_стоимость стать_крайне премьер_лига год_стать чей_стоимость место_в_список темп_рост товарный_знак В_целое +1566 |text акция русало гонконгский биржа дешеветь фон новость продажа группа онэксим доля металлургический холдинг сообщать . стоимость ценный бумага снижаться процент цена закрытие предыдущий торговый сессия . поздно вечером ведомость сообщить что онэксим процент акция русало миллион доллар . представитель организатор размещение акция ренессанс капитал рассказать издание что дисконт продажа ценный бумага составить процент цена закрытие сессия . информация издание книга заявка бумага русало быть открытый утром . онэксим планировать процент акция миллион доллар рыночный цена . У компания быть возможность увеличить пакет процент . слово собеседник ведомость стоимость прийтись снизить гонконгский доллар акция приём заявка инвестор продлить час . С лето год акция русало подорожать благодаря рост цена алюминий . как отмечать газета стоимость металл начало прошлое год лондонский биржа металл lme увеличиться четверть доллар тонна . русало крупный производитель алюминий глинозём . доля компания год приходиться процент мировой производство алюминий примерно столько глинозём . предприятие компания расположить страна численность сотрудник тысяча человек . |ngramms _ металлургический_холдинг ценный_бумага ценный_бумага закрытие_предыдущий торговый_сессия процент_акция процент_акция миллион_доллар миллион_доллар размещение_акция рассказать_издание цена_закрытие быть_открытый рыночный_цена компания_быть как_отмечать прошлое_год крупный_производитель доля_компания процент_мировой численность_сотрудник тысяча_человек +1567 |text кремль требовать немедленно освободить гендиректор уралкалий задержать белоруссия . как сообщать новость заявить помощник президент рф внешнеполитический вопрос . слово излишний политизация не_соответствовать взаимный интерес россия белоруссия . подчеркнуть что эмоция зашкаливать что необходимый помнить важность союзнический отношение страна . ситуация задержание гендиректор уралкалий вмешаться . как сообщать председатель правительство поручить ведомство урегулировать ситуация задержание руководитель российский компания . президент лично не_комментировать ситуация арест . глава уралкалий арестовать минск встреча пригласить белорусский . подозревать организация преступный схема цель якобы являться захват контроль сбыт калийный удобрение . находиться следственный изолятор кгб белоруссия . быть защищать белорусский адвокат как юрист гражданство не_иметь право официально представлять интерес обвинять . В москва быть состояться встреча российский дипломат . уралкалий лето год продавать продукция белорусский калийный компания конец российский компания отказаться сотрудничество . уралкалий объяснять отказ решение президент белоруссия конец прошлое год разрешить продавать сырьё обход бкк . |ngramms _ _ _ _ _ _ сообщать_риа_новость президент_рф _подчеркнуть что_необходимый премьер_министр премьер_министр как_сообщать вице_премьер председатель_правительство российский_компания российский_компания президент__ пригласить_белорусский сбыт_калийный не_иметь_право представлять_интерес встреча_с_российский калийный_компания президент_белоруссия прошлое_год +1568 |text президент генеральный директор шведско финский телекоммуникационный компания teliasonera lars nyberg покинуть компания официальный teliasonera . позиция сменить переть блумквист arne blomquist . В заявление повод отставка пояснить что не_получить поддержка совет директор как teliasonera ознакомиться результат проверка инвестиционный деятельность компания узбекистан . юридический фирма mannheimer swartling выполнять проверка раскритиковать teliasonera недостаточно глубокий изучение партнёр шведский фирма узбекский рынок . В время как подчеркнуть mannheimer swartling не_найти доказательство повод причастность teliasonera отмывание деньга дача взятка территория узбекистан . компания teliasonera прошлое год обвинить дача взятка узбекский чиновник . В сентябрьский выпуск программа uppdrag granskning sveriges television svt быть показать сюжет где рассказываться что компания год получение лицензия узбекистан покупка доля местный оператор ucell выплатить миллиард крона миллион доллар фирма takilant limited . компания связывать старший дочь президент узбекистан . показать svt сюжет проверка teliasonera начало прокуратура швеция . компания нанять проведение отдельный расследование mannheimer swartling . В время teliasonera подчёркивать что компания выходить рынок узбекистан законный путём не_подкупать . В год выпуск передача uppdrag granskning сообщаться что фигурант взятка территория узбекистан оказаться teliasonera . имя не_называться . В компания подозрение отношение сотрудник назвать беспочвенный . |ngramms генеральный_директор телекоммуникационный_компания _ _ покинуть_компания пресс_релиз _пояснить совет_директор результат_проверка деятельность_компания юридический_фирма В_то_же_время В_то_же_время подчеркнуть_ быть_показать что_компания что_компания получение_лицензия миллион_доллар дочь_президент топ_менеджер имя_не_называться +1569 |text компания ооо сгм мост заниматься проектирование строительство керченский мост подать арбитражный суд ростовский область иск турецкий turkuaz shipping . сообщать новость . У турецкий компания планироваться отсудить миллион рубль как сухогруз лира столкнуться опора строиться мост . иск не_принять производство основание исковый требование не_сообщаться . стать что ущерб столкновение судный опора мост оцениваться миллион рубль . арбитраж просьба ооо сгм мост арестовать сухогруз оставить порту таганрог . сухогруз идти флаг панама протаранить опор мост . В результат как писать крыминформ быть разрушить получить повреждение . пострадавший девять член экипаж лира нет . управлять судный направляться чёрный море таганрог гражданин турция . источник правоохранительный орган рассказать что факт столкновение возбудить уголовный . изначально сообщаться что сухогруз принадлежать turkuaz shipping компания заявить что судно не_числиться . стать что оператор лира являться турецкий компания voda shipping сайт что владеть сухогруз turkuaz shipping зарегистрировать маршаллов остров . согласно информация voda shipping судно ходить флаг белиз панама . повредить мост являться вспомогательный сооружение доставка груз строительство основный сооружение мостовый переход керченский пролив . возведение временной мост завершить летом год . временный мост соединить таманский берег остров тузел открыть прошлое год . мост керченский пролив длина километр стать протяжённый россия . соединить крымский полуостров материковый частью страна автомобильный железный дорога . движение автомобиль открыться год поезд год . |ngramms керченский_мост арбитражный_суд ростовский_область сообщать_риа_новость компания_планироваться миллион_рубль миллион_рубль исковый_требование В_результат как_писать член_экипаж чёрный_море правоохранительный_орган что_по_факт турецкий_компания согласно_информация мост_являться доставка_груз прошлое_год крымский_полуостров частью_страна железный_дорога автомобиль_открыться +1570 |text гендиректор американский google . пичаять получить качество вознаграждение акция компания сумма миллион доллар сообщать bloomberg . отмечаться что ценный бумага поступить распоряжение год не_покинуть должность время . как перейти собственность пичаять стать высокооплачиваемый мир . глава облачный бизнес компания получить бонус миллион доллар финдиректор рута порат миллион . быть выдать акция компания . В начало год сообщаться что холдинг alphabet владеть акция google стать дорогой компания мир обогнать apple . капитализация alphabet составить миллиард доллар apple миллиард . пичаять возглавлять компания год глобальный реструктуризация бизнес холдинг . занимать пост . корпорация google стать дочерний компания новое холдинг название alphabet . сооснователь google пейдж занять должность гендиректор президент материнский холдинг . google остаться крупный компания alphabet . подвергнуться сокращение подразделение заниматься разработка связанный быть выделить отдельный структура . новое компания стать частью холдинг . В объявление реструктуризация google сменить логотип . корпорация google быть основать год . основной актив одноимённый поисковик быть создать как учебный проект пейдж быть студент стэнфордский университет . |ngramms получить_в_качество акция_компания акция_компания миллион_доллар миллион_доллар сообщать_bloomberg ценный_бумага поступить_в_распоряжение топ_менеджер топ_менеджер компания__ В_начало год_сообщаться владеть_акция компания_в_мир миллиард_доллар возглавлять_компания глобальный_реструктуризация занимать_пост вице_президент корпорация_google корпорация_google дочерний_компания занять_должность заниматься_разработка интернетом_бизнес быть_выделить отдельный_структура стать_частью основной_актив быть_создать +1571 |text чистый прибыль оао центральный телеграф рсб первое полугодие составить миллион рубль . В первое полугодие прошлое год чистый прибыль компания составлять миллион рубль образ год снизиться процент . материал компания . выручка год не_измениться составить миллиард рубль . показатель oibda компания месяц год увеличиться сравнение прошлое год процент составить миллион рубль маржа oibda составить процент процент первое полугодие год . согласно сообщение компания сегмент доход услуга доступ интернет передача дать вырасти процент сегмент процент . доход документальный электросвязь увеличиться сравнение прошлогодний период процент . слово генеральный директор центральный телеграф снытко второе полугодие компания ожидать опережать рост основный показатель как результат увеличение доход рамка мероприятие оптимизация затрата . центральный телеграф работать рынок москва московский область оказывать юридический лицо оператор услуга доступ интернет iptv аренда канал организация vpn mvno документальный электросвязь . компания вести история год когда москва быть создать телеграфный станция . основный акционер центральный телеграф являться оао ростелеком принадлежать процент уставный капитал процент голосовать акция . |ngramms чистый_прибыль чистый_прибыль миллион_рубль миллион_рубль миллион_рубль В_первое_полугодие прошлое_год прошлое_год компания_составлять материал_компания миллиард_рубль год_увеличиться процент_и_составить сообщение_компания услуга_доступ услуга_доступ генеральный_директор компания_ожидать как_в_результат увеличение_доход оптимизация_затрата работать_на_рынок московский_область юридический_лицо компания_вести быть_создать основный_акционер являться_оао уставный_капитал голосовать_акция +1572 |text В первое квартал год сравнение аналогичный период прошлое год выезд турист россия впервые год вырасти процент . В очередь количество предпочитать поездка россия впервые год стать маленький процент год . клиент мегафон первое квартал стать чаща выезжать рубеж . поступить редакция лента . . согласно мобильный оператор первое квартал текущий год наиболее популярный направление россиянин являться италия прирост выехать процент . второе место таджикистан плюс процент . замывать тройка лидер финляндия прирост выехать составить процент . В сообщение отмечаться что целое совокупный количество поездка зарубежный поездка поездка россия вырасти процент есть население стать мобильный . В голосовой трафик зарубежный поездка вырасти пропорциональный рост выезд абонент процент объём смс сообщение снизиться треть . вырасти . что мнение оператор связать как рост проникновение смартфон серьёзный снижение цена . В мегафон сообщать что путешествовать страна вырасти показатель . голосовой трафик вырасти процент смс процент рекордный процент . связать что порядок процент пользователь поездка подключать тарифный опция оптимизировать расход использовать пакетный тариф где цена услуга поездка не_меняться . |ngramms В_первое_квартал аналогичный_период_прошлое_год В_свой_очередь пресс_релиз поступить_в_редакция мобильный_оператор текущий_год наиболее_популярный тройка_лидер В_сообщение_отмечаться что_в_целое зарубежный_поездка зарубежный_поездка интернетом_трафик интернетом_трафик снижение_цена интернетом_роуминг страна_вырасти что_порядок +1573 |text совместный предприятие роснефть statoil asa начать бурение поисковый скважина охотский мор . опубликовать сайт нефтяной компания . роснефть единственный компания страна продолжать работа новый проект шельф несмотря крайне сложный внешний конъюнктура соответствие лицензионный обязательство начало работа президент роснефть сечин . В сообщение отмечаться что скважина ульбериканский быть пробурить одноимённый структура лицензионный участок лисянский год лицензионный обязательство . расстояние порт магадан скважина составлять километр . скважина проект роснефть statoil запланировать бурение сезон год периметр участок магадан охотский мор . полупогружной установка nanhai поставить китайский компания china oilfield services limited cosl год совместный предприятие роснефть statoil подписать договор выполнение работа . установка быть транспортировать японский охотский море преодолеть бурение путь свыше морской миля . В год сп пробурить карский мор арктический поисковый оценочный скважина университетский открыть газонефтяной месторождение победа подтвердить перспектива нефтегазоносность север карский провинция . В год роснефть statoil asa подписать соглашение сотрудничество соответствие предусмотреть совместный освоение участок российский шельф роснефть освоение участок норвежский шельф . |ngramms совместный_предприятие совместный_предприятие пресс_релиз опубликовать_на_сайт нефтяной_компания компания_в_страна новый_проект начало_работа _сечин В_сообщение одноимённый_структура китайский_компания подписать_договор южно_китайский восточно_китайский освоение_участок освоение_участок российский_шельф +1574 |text некоммерческий организация росконтроль проверить сарделька докторский бренд . результат экспертиза быть занести чёрный список несоответствие маркировка требование безопасность плохой вкус запах . результат исследование иметься распоряжение лента . . специалист проверить товар бренд рублевский мясной дом дым ближний горка производитель сделать говядина . как выясниться ход исследование сарделька содержаться крахмал курица вместо заявить мясо . сарделька рублевский мясной дом найти большой количество мясо птица . причём сарделька добавить мясо птица механический обвалка свидетельствовать присутствие частица костный ткань хрящ сырьё иметь крайне низкий пищевой ценность исследование . В сарделька быть обнаружить крахмал . В продукт бренд ближний горка обнаружить соевый мука вместо указанный состав соевый белок . продукт зафиксировать посторонний запах привкус окислить жир . В сарделька дым специалист выявить опасный анаэробный бактерия образ товар не_соответствовать требование безопасность . исследователь что проверить рамка исследование образец сарделька мочь разочаровать покупатель качество вкус продукт . росконтроль проводить исследование семь наиболее популярный россиянин марка пельмень . В продукт бренд ложкаревъ обнаружить сальмонелла образец ближний горка листерия продукция марка У бактерия . |ngramms требование_безопасность требование_безопасность результат_исследование дом_ дом_ как_выясниться большой_количество крайне_низкий В_продукт В_продукт наиболее_популярный У_ +1575 |text аэрофлот объявить старт голосование социальный сеть выбор победитель конкурс стих посвятить международный женский . компания поступить редакция лента . . С открытый опрос подписчик официальный страница авиакомпания вконтакте англоязычный страница facebook . С помощь опрос аэрофлот намеренный подвести итог поэтический конкурс проводиться официальный страница авиакомпания сеть . специальный пост конкурс подписчик оставлять четверостишие собственный сочинение посвятить хороший половина человечество праздник . объявить конкурс стих аэрофлот решить образ сделать признание любовь прекрасный женщина находиться пассажирский салон сообщить аэрофлот . конкурс быть направить стихотворение . итог конкурс быть объявить . победитель голосование помимо признание поэтический талант получить золотой карта программа аэрофлот бонус победить четверостишие быть зачитываться громкий собственный рейс авиакомпания . |ngramms победитель_конкурс международный_женский пресс_релиз поступить_в_редакция страница_авиакомпания страница_авиакомпания С_помощь объявить_конкурс быть_направить итог_конкурс быть_объявить получить_золотой рейс_авиакомпания +1576 |text долг внутренний потребитель газа компания газпром межрегионгаз год составить миллиард рубль . рост неплатёж социально важный категория потребитель компания планировать сократить инвестиция газификация регион россия процент . сообщить генеральный директор компания передавать новость . В результат монополия решить исключить финансирование газификация архангельский астраханский владимирский волгоградский московский пензенский смоленский тверская ульяновский ярославский область республика ингушетия . добавить что прирост задолженность социально значимый категория потребитель составить миллиард рубль как объесть задолженность электроэнергетический предприятие начало год снизиться . ооо газпром межрегионгаз являться процентный дочка российский газовый холдинг . основной вид деятельность компания реализация природный газа территория россия . средний внутренний цена газ год составлять тысяча рубль тысяча кубометр цена поставка европа доллар тысяча кубуметр . |ngramms потребитель_газа год_составить миллиард_рубль миллиард_рубль категория_потребитель категория_потребитель компания_планировать регион_россия генеральный_директор компания__ передавать_риа_новость В_результат объесть_задолженность российский_газовый основной_вид деятельность_компания природный_газа цена_на_газ год_составлять тысяча_рубль тысяча_кубометр цена_поставка +1577 |text российский частное лицо компания иметь распоряжение частное самолёт . заявить интервью forbes президент принадлежащий миллиардер авиакомпания . слово оценка не_учитывать бизнес джет зарегистрировать офшор . мир джет российский прописка заявить . ... потенциальный клиент . рынок достаточно динамичный переходить оператор покупать самолёт . самолёт русский владение год утроиться . цитата следовать что оценка не_учитываться нереактивный турбовинтовой самолёт . В ближний время группа планировать создать дочерний компания бизнес авиация . необходимый поскольку осуществлять перевозка внутри россия мочь авиакомпания российский сертификат эксплуатант . компания рассчитывать получить сертификат начать возить пассажир следующий год . В нацеливаться перевозка хоккейный команда кхл председатель совет директор являться . создать год объединять структура . В финский авиакомпания airfix aviation группа владеть бизнес терминал шереметьево группа норд контролировать бизнес терминал петербургский пулково . |ngramms российский_частное частное_самолёт миллиардер__ _ _ заявить_ потенциальный_клиент В_ближний_время группа_планировать дочерний_компания осуществлять_перевозка сертификат_эксплуатант рассчитывать_получить следующий_год председатель_совет_директор структура_ +1578 |text В госдума внести законопроект предлагать реализация сценарий рост акциз табачный изделие согласно рекомендация всемирный организация здравоохранение воз . сообщать . воз предлагать повысить год минимальный акциз тысяча рубль тысяча сигарета доля акциз средний розничный цена приблизиться процент . образ акциз табачный изделие год мочь вырастить втрое что привести увеличение средний розничный цена сигарета нынешний рубль пачка отмечаться пояснительный записка . согласно привести автор законопроект депутат лдпр максим год минимальный акциз табак составлять тысяча рубль тысяча сигарета год предлагаться увеличить тысяча рубль тысяча штука год тысяча . повышение акциз сценарий рекомендовать воз наибольший степень соответствовать задача сокращение потребление табак снижение смертность привести значительный рост доход бюджет отмечать автор законопроект . В результат предлагать изменение год консолидированный бюджет россия получить дополнительно триллион рубль бюджет акциз табачный изделие поступить триллион рубль . указываться пояснительный записка расчёт показать что повышение акциз россия уровень процент цена пачка способный спасать жизнь свыше тысяча россиянин ежегодно . В год год прогнозироваться двукратный рост бросить курить результат что количество спасти жизнь начинать год год вырасти миллион человек . сообщаться что госдума одобрить второе чтение законопроект ограничивать количество сигарета пачка . документ запрещать торговля сигарета пачка содержимый штука . член думский комитет безопасность противодействие коррупция предложить ввести запрет продажа сигарета ночное время . мнение помочь борьба курение как благодаря подобный мера отношение алкоголь страна удаться сократить потребление спиртное . росстат табачный изделие россия год вырасти цена процент . стать дорожать товар страна . |ngramms минимальный_акциз тысяча_рубль тысяча_рубль тысяча_сигарета розничный_цена розничный_цена автор_законопроект автор_законопроект максим_ год_минимальный тысяча_штука повышение_акциз повышение_акциз наибольший_степень рост_доход В_результат бюджет_россия триллион_рубль триллион_рубль тысяча_россиянин год_вырасти миллион_человек __предложить запрет_на_продажа подобный_мера сократить_потребление +1579 |text аэроэкспресс заключить gazprombank switzerland кредитный договор год миллиард рубль . официальный материал . pdf компания . как сообщать ссылка представитель аэроэкспресс заёмный средство быть направить покупка двухэтажный вагон . поставка вагон заняться швейцарский stadler соответствующий конкурс выиграть текущий год . сумма контракт рамка компания поставить аэроэкспресс минимум двухэтажный вагон составлять миллион евро . обслуживаться двухуровневый состав быть локомотивный депо имя год . В реконструкция депо компания год планировать инвестировать сложность миллиард рубль . акционер компания одобрить передача залог доля частное акционер аэроэкспресс процент акция владеть инвест процент бизнесмен процент . перевозчик заявлять что частное акционер аэроэкспресс мочь заложить доля случай оператор взять кредит покупка двухэтажный подвижный состав . аэроэкспресс осуществлять скоростной железнодорожный сообщение вокзал аэропорт москва . электричка компания ходить казань владивосток сочи . крупный акционер аэроэкспресс являться ржд доля процент . |ngramms кредитный_договор миллиард_рубль миллиард_рубль как_сообщать текущий_год сумма_контракт компания_поставить миллион_евро имя_ год_планировать акционер_компания частное_акционер частное_акционер процент_акция дельта_транс _ взять_кредит подвижный_состав железнодорожный_сообщение крупный_акционер +1580 |text российский нефтехимический холдинг сибур отправить тестовый партия сжидить углеводородный газа суг китай . В конец компания заключить долгосрочный контракт китайский потребитель . информация содержаться сообщение холдинг . В сообщение отмечаться что заключение контракт позволить организовать регулярный поставка суг китайский рынок . поставка быть осуществляться завод няганьгазпереработка железный дорога . начальный этап объесть составить примерно тысяча тонна год . В компания надеяться будущее увеличение объём . сибур стать российский компания начать поставка суг кнр . информационный компания ihs год потребление суг китай составить миллион тонна что процент большой год . ежегодно кнр импортировать примерно миллион тонна суг . сибур крупный россия нефтехимический холдинг . владеть предприятие переработка углеводородный сырьё работать порядок тысяча человек . компания реализовать продукция страна мир . крупный акционер сибур являться бизнесмен михельсон принадлежать процент компания . предприниматель владеть процент акция холдинг . |ngramms компания_заключить информация_содержаться В_сообщение_отмечаться заключение_контракт китайский_рынок быть_осуществляться железный_дорога составить_примерно тысяча_тонна В_компания увеличение_объём российский_компания начать_поставка миллион_тонна миллион_тонна процент_большой крупный_в_россия работать_порядок тысяча_человек реализовать_продукция страна_мир крупный_акционер бизнесмен_ _ процент_акция +1581 |text совет директор роснефть рекомендовать выплатить дивиденд итог полугодие год размер рубль акция официальный сообщение сайт компания . совет директор предварительно утвердить годовой отчёт компания год рекомендовать годовой собрание акционер решение выплата дивиденд размер рубль копейка обыкновенный акция что позволить направить дивиденд процент чистый прибыть общество стандарт учёт выплата дивиденд итог первое полугодие год отмечаться сообщение . учитывать выплата дивиденд итог первое полугодие прошлое год размер рубль акция суммарный размер выплата составить рубль ценный бумага . сумма средство дополнение дивиденд итог месяц год быть направить роснефть дивиденд составить миллиард рубль . совет директор решение созвать годовой собрание акционер роснефть провести город красноярск год . список лицо иметь право собрание акционер быть составить . начальник аналитический департамент ук бк сбережение сувер отмечать что объесть выплата итог год составить миллиард рубль что процент превышать позапрошлогодний показатель . рекорд российский рынок . роснефть щедрый госкомпания добавить эксперт . В год компания внести изменение дивидендный политика утвердить целевой уровень выплата процент чистый прибыть международный стандарт финотчётность . С прошлое год роснефть действовать норма процент консолидированный чистый прибыть . начальник аналитический департамент альпари обращать внимание что остальной госкомпания охотно делиться акционер прибыль . газпром отдавать акционер вдвое маленький процент прибыть ссылаться обширный инвестпрограмма обнулить денежный поток монополия итог год . А газпром прийтись занимать выполнить выплатить дивиденд размер процент добавлять . похожий подход дивиденд транснефть . В прошлое год заплатить процент прибыть рсб что вдвое половина . выплата итог год остаться уровень . высокий дивиденд роснефть хороший сигнал инвестор . компания являться наиболее эффективный отрасль ключевой направление бизнес . компания фундаментально недооценить иметь потенциал существенный рост капитализация сувер . рыночный капитализация роснефть закрытие торг превысить триллион рубль следовать дать московский биржа . итог год выручка роснефть увеличиться процент миллиард доллар чистый прибыль процент миллиард доллар . показатель ebitda доналоговый прибыль вырасти процент составить миллиард доллар . |ngramms совет_директор совет_директор совет_директор выплатить_дивиденд выплатить_дивиденд год_в_размер утвердить_годовой отчёт_компания собрание_акционер собрание_акционер собрание_акционер выплата_дивиденд выплата_дивиденд выплата_дивиденд что_позволить чистый_прибыть чистый_прибыть чистый_прибыть первое_полугодие первое_полугодие отмечаться_в_сообщение прошлое_год размер_выплата ценный_бумага быть_направить миллиард_рубль миллиард_рубль список_лицо год_составить процент_превышать российский_рынок добавить_эксперт международный_стандарт _ обращать_внимание денежный_поток В_прошлое_год что_вдвое высокий_дивиденд наиболее_эффективный направление_бизнес существенный_рост рыночный_капитализация закрытие_торг триллион_рубль московский_биржа год_выручка миллиард_доллар миллиард_доллар миллиард_доллар чистый_прибыль показатель_ebitda +1582 |text сокращение расход компания российский железный дорога итог год достигнуть миллиард рубль что составить восемь процент сравнение затрата год . номер писать газета ведомость ссылка доклад монополия первое . компания приходиться экономить год когда расход быть сократить процент миллиард рубль . В год расход вырасти процент триллион рубль процент триллион рубль процент триллион рубль . В конец минувший год госкомпания утвердить программа экономия размер миллиард рубль . объесть сокращение решить увеличить что минэкономразвития ухудшить прогноз рост российский экономика . неясно смочь ржд остаться прибыльный год сокращение бюджет . В компания прогнозировать миллион рубль прибыть снижение условие что погрузка грузооборот как минимум остаться уровень прошлое год . восемь месяц начало год погрузка упасть процент . В ближний год ржд прогнозировать убыток . В год компания потерять миллиард рубль миллиард рубль миллиард рубль . прогноз монополия составлять учёт недавний решение правительство заморозка тариф год . ржд заморозка тариф коснуться газпром россеть критика правительство обрушиться железнодорожный монополия . глава ржд официально выступить отмена индексация не_уточнить сумма возможный ущерб компания мера . новость периодически публиковать сообщение ссылка неназванный источник сообщаться ответный мера монополия заморозка тариф . В сообщаться что компания мочь сократить тысяча сотрудник перевести половина штат тысяча сотрудник неполный рабочий неделя . неофициально ущерб отмена индексация оцениваться миллиард рубль . |ngramms сокращение_расход российский_железный_дорога год_достигнуть миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль составить_восемь писать_газета вице_премьер _ _ компания_приходиться быть_сократить триллион_рубль триллион_рубль триллион_рубль В_конец минувший_год утвердить_программа что_минэкономразвития российский_экономика компания_прогнозировать миллион_рубль как_минимум прошлое_год восемь_месяц В_ближний компания_потерять железнодорожный_монополия глава_ржд сумма_возможный что_компания_мочь тысяча_сотрудник тысяча_сотрудник рабочий_неделя +1583 |text правительство включить виноградный шампанский игристый вино перечень сельскохозяйственный продукция . соответствующий поставление подписать рф доступно сайт правительство . В перечень быть включить вино произвести аграрий виноград вырастить переработать территория россия . власть рассчитывать что изменение быть способствовать развитие фермерский хозяйство заниматься разведение виноградник . В включение вино перечень сельхозпродукция позволить виноградарь рассчитывать преференция пользоваться аграрий . вино россия считаться алкогольный продукт . включение перечень сельхозпродукция уступка малое винодельческий хозяйство . полноценный развитие отрасль как отмечать участник рынок необходимый кардинальный изменение . В производитель вино год пытаться добиться изменение федеральный закон N . действующий нормативный акт разрешать производить продавать вино организация . крестьянский фермерский хозяйство мочь выращивать виноград делать виноматериал вынудить продавать предприятие . итог год производство вино россия сократиться процент миллион декалитр . |ngramms премьер_министр рф__ В_перечень быть_включить быть_способствовать участник_рынок производитель_вино пытаться_добиться федеральный_закон вынудить_продавать +1584 |text семья российский военнослужащий погибнуть результат атака вертолёт ми сирия получить миллион рубль компенсация . представитель страховой компания согаз сообщить новость . семья погибший военнослужащий смочь получить страховой выплата единовременный пособие . компания готовый произвести выплата получение необходимый документ приводить агентство слово . миллион рубль родственник получать смерть застраховать . выплачиваться единовременный пособие случай смерть военнослужащий исполнение . размер миллион рубль . вертолёт ми возвращаться авиабаза хмеймим выполнение гуманитарный миссия доставка продовольствие медикамент быть сбить территория провинция . борт находиться трое член экипаж двое офицер центр примирение враждовать сторона погибнуть . В конец российский военный объявить начало масштабный гуманитарный операция район . В результат действие сирийский армия союзный формирование включая иранский хазарейский доброволец крупный группировка боевик часть быть окружить . быть объявить что город быть открытый коридор выход мирный житель боевик решить сложить оружие отдельный коридор вооружённый боевик . поздний коридор увеличиться семь . |ngramms семья_российский миллион_рубль миллион_рубль миллион_рубль страховой_компания семья_погибший смочь_получить страховой_выплата компания_готовый приводить_агентство член_экипаж российский_военный объявить_о_начало В_результат северо_восточный быть_объявить быть_открытый +1585 |text сотрудник предприятие general motors американский автоконцерн намеренный законсервировать направить руководство завод письмо предложение условие сокращение персонал . сообщить лента . член совет межрегиональный профсоюз рабочий ассоциация мпра . предлагать выплатить компенсация увольнять размер оклад компания предлагать компенсация размер семь оклад прима . лента . провести переобучение сотрудник востребовать рынок профессия счёт работодатель . организация требовать предоставить работник гарантия что смочь вернуться производство случай возобновление . не_уточнить схема подсчёт компенсация настаивать профсоюз . что размер быть определить основание экономический прогноз правительство бизнес рецессия протяжение ближний год . член совет мпра что первичный профсоюзный организация предприятие gm auto состоять человек сокращение летом нея входить работник . представитель завод gm петербург сообщить лента . что консервация производство начаться увольнять работник предлагать семь оклад качество компенсационный пакет . сотрудник предприятие включая офисный работник составлять тысяча человек . американский автопроизводитель фон падение спрос автомобиль конец начало год объявить уход российский рынок бренд opel массовый модель марка chevrolet . концерн сохранить продажа премиальный автомобиль бренд cadillac chevrolet . gm неопределённый срок останавливать собственный производственный проект россия продолжить работа страна качество торговый представительство . конец год планироваться свернуть производство chevrolet мощность горьковский автозавод . сотрудничество калиниградский автотор gm прекратить . |ngramms сотрудник_предприятие сотрудник_предприятие general_motors санкт_петербург руководство_завод сокращение_персонал член_совет член_совет _ выплатить_компенсация компания_предлагать _не_уточнить быть_определить завод_gm тысяча_человек американский_автопроизводитель автомобиль_в_конец массовый_модель марка_chevrolet собственный_производственный проект_в_россия продолжить_работа торговый_представительство год_планироваться +1586 |text инвестиционный фонд катар заинтересовать проект территория россия включая энергетический . как сообщать новость ссылка министр энергетика новак вопрос рассмотреть межправительственный комиссия страна сотрудничество . быть обсуждать вопрос расширение сотрудничество страна предприятие предприятие катар совместный проект реализация поставка товар оборудование совместный инвестиция . новак добавить что быть идти возможный катарский инвестиционный фонд различный проект российский компания энергетический . слово чиновник инвестфонд катар поступить конкретный предложение . подробность предложение министр не_стать озвучивать . С инвестиционный фонд катар сотрудничать российский фонд прямая инвестиция рфпить . В год глава организация сообщить что суверенный фонд катар выделить миллиард доллар совместный инвестиция рфпить . |ngramms инвестиционный_фонд инвестиционный_фонд инвестиционный_фонд сообщать_риа_новость министр_энергетика торгово_экономический торгово_экономический быть_обсуждать поставка_товар совместный_инвестиция совместный_инвестиция идти_о_возможный российский_компания российский_фонд прямая_инвестиция год_глава __сообщить фонд_катар миллиард_доллар +1587 |text главный следственный управление ск россия предъявить обвинение генеральный директор уралкалий . официальный ск . обвиняться часть статья часть статья ук рф организация преступный группа злоупотребление полномочие . предъявление обвинение быть допросить качество обвинять . как считать следователь злоупотреблять полномочие что повлечь причинение существенный вред тяжкий последствие белорусский калийный компания бкк беларуськалия . В ск что расследование продолжаться . В очередь адвокат сообщить что подзащитный не_признать вина передавать интерфакс . что нечего скрывать не_отказываться дача показание . руководитель уралкалий быть доставить россия ночь поместить московский следственный изолятор лефортово . экстрадиция россия находиться домашний арест минск . гендиректор российский производитель удобрение быть задержать белоруссия . сначала местный правоохранительный орган предъявить обвинение злоупотребление служебный полномочие обвинение переквалифицировать статья хищение . В следственный комитет белоруссия считать что руководство уралкалий пытаться захватить рынок сбыт . незадолго арест уралкалий разорвать соглашение бкк быть создать имя совместно экспорт удобрение производитель . В российский компания пояснить что решение быть как власть белоруссия разрешить беларуськалия торговать обход бкк . |ngramms предъявить_обвинение генеральный_директор _ пресс_релиз ук_рф злоупотребление_полномочие как_считать калийный_компания В_свой_очередь адвокат__ _сообщить быть_доставить домашний_арест российский_производитель правоохранительный_орган злоупотребление_служебный следственный_комитет белоруссия_считать что_руководство рынок_сбыт российский_компания что_такой_решение власть_белоруссия +1588 |text нафтогаз украина подтвердить получение газпром счёт миллиард доллар газ соответствие условие брать платить заявить что не_быть оплачивать решение стокгольмский арбитраж . компания сообщить интерфакс . В украинский компания что год нафтогаз неоднократно заявлять готовность приобрести природный газ газпром условие применяться закупка газа поставщик год подписание соответствующий дополнение контракт . газпром подписание дополнение год отказаться не_аргументировать отказ что как считать нафтогаза давать дополнительный основание необоснованность требование . днём газпром соответствие условие брать платить выставить нафтогаза украина счёт миллиард доллар оплата газа невыбранный период квартал год . украинский сторона обязать оплатить . В случай приобщение сумма заявить стокгольмский арбитраж требование сумма требование иск исполнение контракт поставка вырасти миллиард . согласно действующий газпром нафтогаз контракт год украинский компания обязать ежегодно оплачивать минимальный годовой количество мгк газа . В первое квартал год не_применяться условие брать платить нафтогаза украина . год газпром обратиться арбитражный институт торговый палата стокгольм просьба арбитраж цель взыскание нафтогаза неоплаченный задолженность природный газ процент нея . В украинский сторона обратиться арбитраж требование ретроактивный изменение цена природный газ возмещение переплата осуществить год размер миллиард доллар . украинский компания требовать отменить положение контракт запрещать реализация поставлять природный газа предел страна . |ngramms нафтогаз_украина подтвердить_получение что_не_быть стокгольмский_арбитраж пресс_служба украинский_компания украинский_компания украинский_компания неоднократно_заявлять природный_газ природный_газ природный_газ закупка_газа подписание_соответствующий как_считать давать_дополнительный нафтогаза_украина нафтогаза_украина миллиард_доллар миллиард_доллар украинский_сторона украинский_сторона В_случай сумма_требование контракт_на_поставка согласно_действующий В_первое_квартал обратиться_в_арбитражный торговый_палата требовать_отменить природный_газа +1589 |text российский работодатель фон возвращение экономика страна рост намерить расширить штат сотрудник увеличить зарплата . показатель как мочь вырастить предел процент . сообщать коммерсантъ ссылка дать отчёт консалтинговый компания kpmg . согласно результат опрос оптимистично перспектива год смотреть процент респондент пессимистично процент . наибольший оптимизм выражать компания фармацевтический отрасль пессимистично настроить организация банковский инвестиционный сектор . увеличить размер зарплата собираться процент респондент большинство компания намерить повышать размер выплата сотрудник часть ориентироваться рост заработный плата сотрудник определённый категория . как отмечаться исследование процент компания планировать увеличение численность персонал процент сократить количество сотрудник . лидер отношение план расширение штат стать компания страховой фармацевтический отрасль . К сокращение готовиться банковский сектор розничный торговля . автор исследование отмечать что год увеличить штат рассчитывать компания сотрудник человек время как план высказывать крупный средний компания . В исследование российский иностранный компания различный отрасль . отмечаться что быть провести новый волна антироссийский санкция . |ngramms экономика_страна штат_сотрудник результат_опрос увеличить_размер компания_намерить размер_выплата компания_планировать численность_персонал сократить_количество банковский_сектор розничный_торговля автор_исследование год_увеличить В_исследование иностранный_компания различный_отрасль быть_провести новый_волна +1590 |text президент россия песок назвать выгодный сделка приватизация роснефть . сообщать новость . быть задать параметр сделка минимальный параметр соответствовать превосходить добавить песок . подписать документ необходимый оформление покупка трейдер glencore суверенный фонд катар процент акция роснефть . как российский бюджет поступить триллион рубль . вечером глава роснефть сечин встреча президент россия сообщить завершение сделка приватизация процентный пакет акция нефтяной компания . покупатель выступить сырьевой трейдер glencore суверенный фонд катар qatar investment authority . сделка пополнить российский бюджет миллиард евро . |ngramms пресс_секретарь президент_россия_ сообщать_риа_новость премьер_министр __подписать фонд_катар фонд_катар процент_акция российский_бюджет триллион_рубль _сечин президент_россия__ пакет_акция нефтяной_компания покупатель_выступить миллиард_евро +1591 |text стоимость сделка покупка аэрофлот акция трансаэро составить рубль . передавать ссылка источник присутствовать совещание . сообщаться что совет директор крупный российский авиакомпания рассмотреть возможность санация трансаэро . трансаэро заявить что консолидация компания группа аэрофлот поддержать правительство . фон новость покупка аэрофлот доля трансаэро акция взлететь процент . В очередь бумага аэрофлот упасть процент . трансаэро объём перевозка российский авиакомпания основный акционер являться председатель совет директор супруг . парк авиаперевозчик самолёт . состояние конец текущий год чистый долг трансаэро составлять миллиард рубль миллиард приходиться краткосрочный долг . крупный кредитор являться втб миллиард рубль газпромбанк миллиард рубль . |ngramms вице_премьер _ _ совет_директор крупный_российский_авиакомпания рассмотреть_возможность В_свой_очередь российский_авиакомпания основный_акционер председатель_совет_директор парк_авиаперевозчик текущий_год чистый_долг миллиард_рубль миллиард_рубль миллиард_рубль крупный_кредитор являться_втб +1592 |text московский биржа взлететь цена акция афк система . минута торг рост составить процент сообщать . стоимость акция подняться рубль . катализатор рост стать новость что глава афк система освободить домашний арест намеренный ближний время вернуться руководство компания . рост акция система начаться . московский время ценный бумага подорожать процент . повышаться цена акция оператор сотовый мтс стать ключевой актив афк система . В начало торг акция мтс подорожать процент . следствие решение изменить мера пресечение отношение домашний арест обязательство явка следователь сообщить адвокат глава афк система . председатель совет директор афк система обвиняться хищение акция компания башнефть отмывание денежный средство . год быть поместить домашний арест . решение басманный суд москва быть находиться домашний арест . |ngramms цена_акция минута_торг рост_стать _ _ _ глава_афк глава_афк домашний_арест домашний_арест руководство_компания рост_акция ценный_бумага акция_оператор актив_афк В_начало акция_мтс сообщить_адвокат председатель_совет_директор акция_компания денежный_средство год_он_быть суд_москва +1593 |text зеленоградский дочерний предприятие афк система оао микрон увеличить процент доля производитель микрочип ситроникс . сообщение афк система . как пояснить лента . микрон связать передача предприятие процент ситроникс владеть роснано . официальный представитель микрон диановый сообщить что роснано получить обмен доля ситроникс акция дополнительный эмиссия микрон . сколько акция предприятие достаться роснано диановый не_уточнить что стать известный регистрация центробанк отчёт дополнительный эмиссия . слово диановый завершение дополнительный эмиссия планироваться конец что отчёт начало быть передать центробанк регистрация . совместный предприятие ситроникс быть образовать год . первоначально микрон роснано владеть немой процент процент принадлежать зеленоградский компания амекс . ситроникс производить микросхема топологический размер нанометр технология французский компания st microelectronics . производство промышленный режим начаться год . основа микросхема нанометр выпускаться чип чип навигационный оборудование глонасс gps промышленный электроника биометрический паспорт банковский карта sim карта метка радиочастотный идентификация rfid . |ngramms дочерний_предприятие как_пояснить официальный_представитель акция_предприятие стать_известный быть_передать совместный_предприятие процент_принадлежать французский_компания банковский_карта +1594 |text производитель игрушка lego сменить генеральный директор . С пост вместо виг кнудсторп занять падда передавать . падда работать компания год настоящее время занимать должность главный директор производство . кнудсторп управлять компания год . отмечаться что не_покинуть lego возглавить новое подразделение lego brand group заняться образовательный программа тематический парка развлечение legoland . В год стать что глава датский компания lego A S кирк кристиансный передать пост сын кирка . сменить отец пост председатель lego foundation компания владеть процент акция lego A S остаться процент контролировать семья холдинговый компания kirkbi A S . компания lego название созвучно датский фраза leg godt что означать играть основать год плотник киркома . В год фирма приступить выпуск конструктор название автоматически соединяться игрушка . основа быть взять идея самоблокироваться кирпичик компания kiddicraft запатентовать великобритания . |ngramms генеральный_директор вместо_ занять_ работать_в_компания занимать_должность директор_по_производство управлять_компания вице_президент сын_ процент_акция семья_ что_означать быть_взять +1595 |text газпром shell подписать меморандум намерение совместный добыча углеводород арктический шельф россия . сообщаться сайт российский компания . В документ подписать глава газпром руководитель shell йорм шельфовый блок стык чукотский море печорск мор . как уточнять интерфакс российский компания получить лицензия участок совместный проект доля газпром составить процент shell процент . лицензия газовый монополист мочь получить отмечать агентство . В меморандум принцип взаимность доступ ресурс . газпром получить опцион вхождение зарубежный проект shell разведка добыча углеводород . информация ведомость идти месторождение shell южный африка . В проект российский компания получить процент компания процент . согласно договорённость компания совместный проект финансировать геологоразведка российский шельф основное быть shell зарубежный месторождение наоборот газпром . меморандум компания подписать амстердам рамка визит президент голландия . глава газпром пояснить журналист что подписать документ не_носить юридически обязывать характер . слово меморандум предусматривать изучение возможность сотрудничество шельф . напомнить что газпром shell являться давний партнёр . В компания являться партнёр проект сахалин заниматься совместный добыча сланцевый нефть автономный округа . госкомпания роснефть заключить соглашение освоение шельф exxonmobil eni statoil условие что газпром shell . разрабатывать углеводород российский шельф иметь право государственный компания соответствующий опыт работа фактически газпром роснефть . |ngramms подписать_меморандум добыча_углеводород добыча_углеводород арктический_шельф российский_компания российский_компания В_документ восточно_сибирский как_уточнять получить_лицензия лицензия_газовый мочь_получить отмечать_агентство зарубежный_проект российский_компания_получить англо_голландский согласно_договорённость президент__ __пояснить подписать_документ компания_являться добыча_сланцевый ханты_мансийский автономный_округа заключить_соглашение иметь_право государственный_компания опыт_работа +1596 |text стоимость акция компания apple снизиться семь доллар доллар результат запланировать операция сплит акция компания быть превратить семь пропорциональный снизить стоимость . свидетельствовать дать сервис google finance . дать стоимость акция apple учитывать сплит есть текущий предыдущий цена финансовый бумага дать текущий масштаб . стоимость акция закрытие торг указать доллар доллар . капитализация корпорация не_измениться составлять миллиард доллар . образ стоимость финансовый бумага иметься рука акционер не_измениться . компания apple рассчитывать что снижение цена акция помочь привлечь новый инвестор . В сплит стоимость акция apple колебаться уровень закрытие . мск составлять процент . |ngramms стоимость_акция_компания акция_компания_быть свидетельствовать_дать сервис_google стоимость_акция стоимость_акция стоимость_акция финансовый_бумага финансовый_бумага миллиард_доллар компания_apple снижение_цена помочь_привлечь +1597 |text пивоваренный завод puntigam скорый время начать поставлять тепловой энергия дом офисный помещение город грац австрия . сообщать газета kleine zeitung . концепция разработать энергетический компания C P совместно австрийский пивоварня brau union . проект соответствие тепло процесс пивоварение быть направить обогрев помещение быть представить . слово управлять директор brau union austria markus liebl европа система быть использоваться впервые . резервуар энергия ежедневно производиться создание тысяча литр пиво быть направить новый район город получить название пивоваренный brauquartier . издание год планироваться обеспечить тепло жилой помещение что потребоваться миллион киловатт час . компания производство насос kelag инвестировать проект миллион евро . сообщаться что апартамент пивоваренный район быть готовый будущее год . что стать величина грац район рейнингхаус reininghaus gr nden умный город smart city . |ngramms пивоваренный_завод скорый_время юго_восток энергетический_компания быть_представить управлять_директор _ быть_использоваться район_город получить_название год_планироваться жилой_помещение компания_по_производство инвестировать_в_проект миллион_евро быть_готовый +1598 |text В ход общественный совет группа аэрофлот быть подвести предварительный итог работа авиакомпания . участник обсудить перспектива развитие перевозчик год . поступить редакция лента . . слово гендиректор перевозчик аэрофлот дочерний авиакомпания перевезти год примерно миллион пассажир рекордный показатель история современный группа аэрофлот . напомнить что текущий год состав группа начало действовать консолидированный авиакомпания россия объединить актив одноимённый перевозчик оренбургский авиалиния . В аэрофлот обратить внимание сильный финансовый показатель компания чистый прибыль девять месяц год составить миллиард рубль . отмечаться что британский консалтинговый компания skytrax присвоить авиакомпания рейтинг звезда поставить качество услуга ряд глобальный игрок air lufthansa british airways emirates . заседание общественный совет обсудить проблема авиадебошир . С год время регулярный ведение статистика подобный инцидент аэрофлот зарегистрировать тысяча нарушитель правило борт тысяча пассажир быть снятой борт нарушение взлёт . борьба авиадебошир аэрофлот предлагать привести российский законодательство область соответствие международный норма разрешить создание чёрный список возможность отказать продажа билет увеличить штраф нарушение разрешать экипаж применять хулиган спецсредство . |ngramms В_ход общественный_совет общественный_совет итог_работа перспектива_развитие пресс_релиз поступить_в_редакция _ авиакомпания_перевезти миллион_пассажир рекордный_показатель текущий_год финансовый_показатель чистый_прибыль девять_месяц миллиард_рубль качество_услуга подобный_инцидент тысяча_пассажир быть_снятой российский_законодательство чёрный_список продажа_билет +1599 |text бкс премьер объявить запуск краудсорсинг проект invest generation создание инвестиционный продукт формирование участвовать широкий аудитория высказывать мнение наиболее актуальный перспективный направление инвестиция сообщить финансовый организация . объединять частное инвестор профессиональный эксперт обсуждать онлайн площадка тренд финансовый рынок делиться идея куда вкладывать деньга пояснять руководитель департамент электронный бизнес бкс . предлагать аудитория ключевой обсуждение затрагивать валюта рынок акция облигация нефть газа золото подчёркивать . подобный проект позволять сформировать финансовый продукт интересный широкий аудитория способствовать повышение финансовый образование гражданин целое считать экономический обозреватель телеканал россия кареевский . многие человек не_иметь представление различный инвестиционный инструмент структурный продукт мочь принести повышенный доход фон невысокий ставка депозит . далеко гражданин мочь самостоятельно оценить перспектива иной направление вложение средство . площадка собираться частное инвестор профессиональный эксперт основа многочисленный мнение формироваться оптимальный инвестиционный решение исходить текущий рыночный условие подчеркнуть . В бкс премьер отмечать что официальный сайт проект представить подготовить финансовый эксперт аналитический статья быть интересный полезный как начинающий опытный инвестор . путём голосование широкий аудитория определяться наиболее перспективный актив что бкс премьер создавать основа народный инвестиционный продукт презентация пройти год антиконференция invest generation где активный участник вручить подарок . стать участник проект мочь пройти регистрация сайт сайт invest generation . впервые подобный краудсорсинг проект бкс премьер организовать год инвестор вложить средство создать итог голосование продукт получить ожидать доходность процент годовой . |ngramms инвестиционный_продукт инвестиционный_продукт широкий_аудитория широкий_аудитория широкий_аудитория перспективный_направление пресс_служба финансовый_организация частное_инвестор частное_инвестор профессиональный_эксперт профессиональный_эксперт финансовый_рынок руководитель_департамент _ подобный_проект финансовый_продукт оценить_перспектива вложение_средство инвестиционный_решение рыночный_условие путём_голосование наиболее_перспективный участник_проект процент_годовой +1600 |text компания аскон приступать проектирование элемент конструкция среднемагистральный самолёт производство планироваться возобновить . сообщать rambler service ссылка заявление представитель компания аскон . слово компания проектирование крыло хвостовой оперение . подчеркнуть что аскон намерить добиваться повышение доля отечественный программный обеспечение авиастроение . российский среднемагистральный пассажирский самолёт разработка быть начать конец год . разработчик преследовать цель заменить устаревший як . первоначально планироваться выпускать самолёт завод россия капо имя С . П . украина завод авиант впоследствии быть решение производить россия . прототип совершить полёт год . серийный производство самолёт запустить не_быть . проект быть заморозить окончательно закрытый . |ngramms rambler_news_service представитель_компания _ повышение_доля программный_обеспечение пассажирский_самолёт первоначально_планироваться выпускать_самолёт быть_принять_решение серийный_производство проект_быть +1601 |text исполнительный директор tesla маск поспорить uber хаффингтон стиль работа . американский предприниматель написать аккаунт twitter . ford tesla единственный американский автомобильный компания избежать банкротство . Я что вернуться домой завод . думать что есть выбор . написать маск . хаффингтон опубликовать открытый письмо издание thrive global где обвинить маска демонстрация дико устаревший антинаучный ужасно неэффективный способ использование человеческий энергия посоветовать изменить стиль работа . uber признаться что восхищать продуктивность маска следовать большой отдыхать . идти интервью маска york times рассказать переутомление работа . колумнистка привести пример исследование доказывать что наличие свободный работа время позволять эффективный решение . заявить что человек не_следовать равняться производительность робот воспринимать трата время отдых как неудача . предприниматель заявить готовность выкупить tesla цена доллар акция что спровоцировать сначала резкий рост акция процент падение . некоторый акционер tesla подать иск маска объяснить что понести значительный убыток недостоверный информация . tesla завести твит владелец возможность превращение компания частный . |ngramms исполнительный_директор _маск топ_менеджер топ_менеджер стиль_работа стиль_работа американский_предприниматель американский_автомобильный открытый_письмо что_наличие эффективный_решение резкий_рост акционер_tesla подать_иск значительный_убыток +1602 |text ооо бюджетный перевозчик создать группа аэрофлот перевозка вместо добролето быть работать бренд победа . сообщить источник группа аэрофлот . бренд быть развиваться самолёт авиакомпания быть нанести новый бренд . В ближний время быть открытый сайт авиакомпания pobeda.aero уточнить источник . слово создать юридический лицо ооо бюджетный перевозчик остаться основный юридический лицо авиакомпания . как сообщить интерфакс представитель компания самолёт быть написать победа . рейс новый лоукостёр выполнить волгоград передавать новость . стать что бюджетный перевозчик начать продажа билет . сообщаться что лоукостёр планировать выполнять полёт восемь маршрут москва тюмень белгород екатеринбург казань сургут волгоград самар уфа самолёт boeing . маршрутный сеть быть определить период конец год . юридический лицо новый авиакомпания ооо бюджетный перевозчик процентный аэрофлот быть зарегистрировать текущий год . главый компания стать генеральный директор добролето . С авиакомпания доброгод приостановить полёт санкция . ряд европейский контрагент сообщить отказ выполнять обязательство российский лоукостер аннулировать действие договор лизинг технический обслуживание страхование воздушный судно предоставление аэронавигационный информация . |ngramms бюджетный_перевозчик бюджетный_перевозчик бюджетный_перевозчик бюджетный_перевозчик создать_группа быть_работать источник_в_группа быть_развиваться авиакомпания_быть В_ближний_время быть_открытый сайт_авиакомпания юридический_лицо юридический_лицо юридический_лицо как_сообщить представитель_компания быть_написать передавать_риа_новость продажа_билет выполнять_полёт восемь_маршрут самолёт_boeing маршрутный_сеть быть_определить новый_авиакомпания быть_зарегистрировать текущий_год главый_компания _ генеральный_директор ряд_европейский аннулировать_действие договор_лизинг технический_обслуживание воздушный_судно +1603 |text великобритания оказаться единственный страна евросоюз нарастить продажа автомобиль первое квартал год . свидетельствовать дать ассоциация европейский производитель автомобиль acea . регистрация новый машина страна увеличиться процент . остальной страна показатель снизиться . В целое евросоюз продажа упасть процент миллион автомобиль . В регистрация упасть процент процент процент . В германия продажа снизиться процент франция процент испания процент . показатель ес падать месяц подряд . производитель существенный спад продажа зафиксировать ford процент toyota процент psa peugeot citro процент general motors процент . financial times отмечать что спад продажа германия стать неожиданность как ситуация безработица рост ввп страна стабильный . volkswagen bmw daimler пострадавший долговой кризис ес прогнозировать что год прибыль остаться прошлогодний уровень . В продажа автомобиль снизиться россия год . ассоциация европейский бизнес аеб показатель упасть процент сравнение год тысяча машина . квартал рф быть зарегистрировать тысяча новый автомобиль . |ngramms оказаться_единственный страна_евросоюз продажа_автомобиль продажа_автомобиль свидетельствовать_дать ассоциация_европейский производитель_автомобиль В_целое миллион_автомобиль спад_продажа спад_продажа general_motors ассоциация_европейский_бизнес тысяча_машина быть_зарегистрировать новый_автомобиль +1604 |text компания adidas выпускать спортивный одежда обувь намерить вернуть часть производство германия . сообщать deutsche welle . слово руководство компания осень год фабрика speed factory баварский начаться выпуск кроссовок . пробный партия составить пара . В будущее adidas планировать перейти крупносерийный производство довести объём выпуск спортивный обувь тысяча год . издание отмечать что возвращение adidas фрг оказаться возможный благодаря автоматизация производственный процесс . изготовление обувь фабрика площадь тысяча квадратный метр быть заниматься исключительно робот . директор развитие компания манца что благодаря перенос производство срок разработка новый продукция можно быть сократить полгода . применять технология не_повлиять стоимость товар магазин . adidas практически полностью свернуть выпуск одежда обувь германия год исключение завод изготавливаться преимущественно футбольный бутсы . основный часть производство компания быть переместить азия где год быть выпустить миллион пара обувь . В год компания adidas являться второе величина мир производитель спортивный товар планировать открыть дополнительный производство сша . |ngramms компания_adidas компания_adidas вернуть_часть руководство_компания В_будущее объём_выпуск спортивный_обувь издание_отмечать возможный_благодаря тысяча_квадратный_метр быть_заниматься директор_по_развитие производство_срок разработка_новый можно_быть стоимость_товар практически_полностью основный_часть компания_быть год_быть_выпустить являться_второе производитель_спортивный планировать_открыть производство_в_сша +1605 |text росавиация запретить компания когалымавиа выполнять внутренний международный рейс сайт ведомство . перевозчик предоставить очередной возможность устранить выявить нарушение отмечаться сообщение . В росавиация уточнить что решение ввод ограничение основание требование воздушный законодательство заключение акт инспекционный проверка установить несоответствие нарушение . В быть выявить существенный задолженность персонал аэропорт аэронавигационный обслуживание . федеральный агентство рекомендовать перевозчик разработать бизнес план дальнейший операционный деятельность найти источник финансирование . финансовый поддержка оказать собственник авиаперевозчик оказаться недостаточно подчеркнуть росавиация . федеральный налоговый служба направить арбитражный суд москва иск банкротство перевозчик . В конец начало год росавиация дважды предлагать когалымавиа инициировать приостановка действие собственный сертификат эксплуатант сложный финансовый состояние авиаперевозчик . В год airbus авиакомпания когалымавиа следовать шарм разбиться синайский полуостров результат теракт . погибнуть человек . |ngramms международный_рейс пресс_релиз выявить_нарушение отмечаться_в_сообщение В_росавиация быть_выявить федеральный_агентство операционный_деятельность финансовый_поддержка налоговый_служба арбитражный_суд_москва иск_о_банкротство В_конец сертификат_эксплуатант сложный_финансовый эль_шейх санкт_петербург +1606 |text арбитражный суд москва поддержать ходатайство представитель временной управлять признание обувной торговый дом центробувь банкрот открытие отношение конкурсный производство сообщать rambler service . В год арбитражный суд ввести процедура наблюдение отношение центробувь задолженность миллион рубль . основный заявитель выступить компания сандоринить московский кредитный банк мкб . согласно спарк интерфакс долгосрочный обязательство сеть конец год составить миллиард рубль краткосрочный миллиард рубль . В год центробувь быть подать рекордный иск сумма миллиард рубль год суд зарегистрировать заявление миллион рубль . основной бенефициар центробувь год активно вести переговоры банка потенциальный стратегический инвестор добиться реструктуризация долг привлечь инвестор не_удаться . В год заочно предъявить обвинение мошенничество объявить федеральный розыск . |ngramms арбитражный_суд_москва временной_управлять торговый_дом сообщать_rambler_news_service арбитражный_суд ввести_процедура миллион_рубль миллион_рубль кредитный_банк долгосрочный_обязательство год_составить миллиард_рубль миллиард_рубль миллиард_рубль быть_подать _ год_активно стратегический_инвестор реструктуризация_долг привлечь_инвестор +1607 |text военторг подать заявка роспатент регистрация бренд вежливый мишка русский идти В армия вкусно . сообщать . как планироваться использовать бренд русский идти В армия вкусно компания не_уточнить . каталог продукция разместить сайт военторг категория товар ребёнок указать футболка толстовка изображение медвежонок надпись вежливый мишка . надпись наноситься детский игрушка . генеральный директор военторг сообщать что запатентовать бренд вежливый человек танковый биатлон . компания принадлежать сеть магазин бренд армия россия . магазин быть открытый год москва садовый кольцо напротив посольство сша . В ассортимент фирменный линейка одежда бренд армия россия вежливый человек образец военный форма новое образец товар повседневный армейский спрос знак различие обувь аксессуар вымпел туалетный вод головной убор . |ngramms подать_заявка русский_идти русский_идти планироваться_использовать разместить_на_сайт генеральный_директор _ компания_принадлежать сеть_магазин быть_открытый год_в_москва +1608 |text акция южнокорейский производитель электроника samsung подешеветь фон арест являться фактический главый корпорация чжэ ёна . свидетельствовать дать торг передавать новость . бизнесмен обвинять взяточничество коррупционный скандал президент южный корея . состояние мск акция samsung electronics корейский биржа дешеветь процент предыдущий закрытие . бумага компания падать процент . суд сеул выдать ордер арест фактический глава корпорация samsung чжэ ёна обвинение взяточничество крупный коррупционный скандал президент страна пак кын хе . чжэ ён поместить тюрьма город йыван километр южный столица . чжэ ён формально занимать пост корпорация фактически функция руководитель как отец президент компания гон хи перенести инфаркт . следствие быть завершить мочь быть продлить месяц согласие исполнять обязанность президент южный корея хван гё ана . российский беседа национальный служба новость нсн выразить уверенность что акция samsung вернуть утратить позиция . уверенный что глава корпорация влиять компания samsung целое что промышленный производственный гигант . осень год центральный окружный суд сеул признать виновный двое руководитель корпорация samsung незаконный сделка акция приговорить тюремный заключение . гур тэ хак бывший управлять компания everland подразделение samsung ведение находиться крупный южный корея парк развлечение парк ро бин обвиняться что год конвертировать облигация цена рыночный стоимость ребёнок глава корпорация samsung кун хи . версия следствие сделка сын кун хи чжэ янг lee jae yong возглавлять samsung electronics трое дочь глава корпорация получить незаконный прибыть миллиард вон миллион доллар . гур тэ хак быть приговорить год тюремный заключение отсрочка исполнение приговор год . парк ро бин год отсрочка год . |ngramms производитель_электроника вице_президент вице_президент свидетельствовать_дать передавать_риа_новость президент_южный президент_южный акция_samsung акция_samsung бумага_компания глава_корпорация глава_корпорация глава_корпорация глава_корпорация президент_страна занимать_пост президент_компания мочь_быть исполнять_обязанность премьер_министр интернетом_омбудсмен _ национальный_служба_новость компания_samsung признать_виновный корпорация_samsung управлять_компания подразделение_samsung рыночный_стоимость миллион_доллар +1609 |text центр изучение развитие русский традиция русский лес хутор открыть подмосковье вакансия отшельник . соискатель требовать любить лес читать умный книга приветствоваться желание заниматься литературный деятельность . вакансия появиться telegram канал интересный работа москва . место работа расположить леса ряд деревня лапин одинцовский район . прочий обязанность соискатель помощь путник разведение пчела кормление звереть необходимый следить бобр продолжать предшественник . обязательный требование кандидат являться умение внушительно молчать . преимущество быть знакомство творчество писатель умение разговаривать зверь . вакансия позиционироваться как крайний форма исторический дауншифтинг интеллектуал . кандидат осознавать важный вклад традиционный русский культура вносить продолжать вносить отшельник описание вакансия . сторона работодатель обязываться помочь дом леса предоставить питание русский печь изба читальня форменный одежда натуральный материал обеспечить доступ баня . В православный предприниматель разместить вакансия секретарша . согласно указанный требование должность мочь претендовать красивый незамужний молодой хороший соискательница . подходящий кандидатка предлагаться зарплата размер тысяча рубль . |ngramms арт_резиденция _ _ _ место_работа традиционный_русский тысяча_рубль +1610 |text sukhoi superjet авиакомпания sky aviation прибыть индонезия . сообщаться компания гражданский самолёт сухой поступить редакция лента . . самолёт серийный номер покрасить корпоративный цвет перевозчик прибыть аэропорт halim perdanakusuma джакарта . акт сдача приёмка ssj индонезийский компания быть подписать год . sky aviation получить российский самолёт . соглашение поставка авиалайнер перевозчик гсс заключить год авиационный космический салон . стоимость контракт составить миллион доллар . индонезия год время запретить закупка sukhoi superjet крушение самолёт . ssj пропасть экран радар время демонстрационный полёт остров ява . впоследствии стать что самолёт врезаться гора находить борт человек погибнуть . индонезия приостановить закупка ssj выяснение причина катастрофа . эксплуатация авиалайнер быть разрешить конец . местный следователь установить что причина крушение стать человеческий фактор . российский сторона согласиться довод индонезия . |ngramms sukhoi_superjet sukhoi_superjet пресс_релиз гражданский_самолёт_сухой поступить_в_редакция серийный_номер быть_подписать российский_самолёт контракт_составить миллион_доллар человек_погибнуть причина_катастрофа авиалайнер_быть что_причина российский_сторона +1611 |text компания micromax крупный индия производитель мобильный телефон начать продажа продукция россия . заявить основатель фирма рахула шарм rahul sharma интервью газета times india . слово шарм штурм российский рынок micromax планировать дальнейший продвижение страна восточный европа . В россия компания намерить открыть собственный офис . помимо мобильный телефон micromax скорый время мочь начать продажа планшет название laptab . создание устройство индийский компания работать intel планшет быть установить полноценный версия операционный система windows ос android . В индия laptab как поступить продажа быть стоить доллар . аналогичный стратегия предполагать невысокий цена популярный мобильный устройство micromax рассчитывать применять россия . О что micromax планировать официально выйти российский рынок шарм заявлять прошлое год . россия компания намереваться начать продажа смартфон румыния . В индия micromax являться второе популярность продавец смартфон южнокорейский samsung . В прошлое год компания привлечь реклама смартфон актёр джекмана . |ngramms мобильный_телефон мобильный_телефон начать_продажа российский_рынок планировать_дальнейший восточный_европа В_россия скорый_время мочь_начать компания_работать быть_установить операционный_система В_индия В_индия поступить_в_продажа быть_стоить мобильный_устройство официально_выйти прошлое_год прошлое_год компания_намереваться актёр_ +1612 |text заместитель председатель правление компания газпром допустить перенос срок реализация проект турецкий поток конец год . как сообщать интерфакс заявить V петербургский международный газовый форум . слово отложить проект год ничто страшный не_произойти . мочь реализовать проект нитка год . поскольку межправсоглашение нет срок сдвигаться пояснить . добавить что зависеть как быть подписать документ . реализация проект влиять политический ситуация турция где выбор быть сформировать новое правительство . глава газпром заявить что компания решить уменьшить мощность газопровод турецкий поток вдвое миллиард кубометр газа год . В середина предупреждать перенос срок запуск проект турецкий поток год поздний срок политический кризис турция . В начало министр энергетика россия новак отмечать что подписание межправсоглашение строительство газопровод мочь затянуться . В конец появиться информация приостановка переговоры москва анкара нерешенный вопрос скидка российский газ . турок намереваться получить процентный скидка время как газпром настаивать старт проект готовый обсуждать размер скидка . изначально россия рассчитывать строительство нитка трубопровод мощность миллиард кубометр год время как турция необходимый . В россия отказаться проект газопровод южный поток обход украина позиция еврокомиссия . москва анкара договориться строительство турецкий поток протяжённость тысяча километр газпром намеренный поставлять топливо страна европа . турецкий греческий граница необходимый создать хаб страна ес смочь забирать необходимый объём газа . |ngramms заместитель_председатель_правление _ _ перенос_срок перенос_срок реализация_проект реализация_проект турецкий_поток турецкий_поток турецкий_поток турецкий_поток как_сообщать петербургский_международный реализовать_проект пояснить_ быть_подписать политический_ситуация быть_сформировать новое_правительство __заявить что_компания мощность_газопровод миллиард_кубометр миллиард_кубометр газа_в_год В_середина запуск_проект политический_кризис В_начало министр_энергетика россия_ процентный_скидка размер_скидка проект_газопровод южный_поток тысяча_километр топливо_в_страна юго_восточный греческий_граница необходимый_создать страна_ес объём_газа +1613 |text генеральный прокуратура украина начало расследование отношение руководство национальный акционерный компания нафтогаз . сообщать издание украинский новость ссылка генпрокуратура . В ведомство полагать что служебный халатность руководство привести неуплата крупный страна нефтедобывающий компания укрнафт налоговый задолженность . расследование быть начать заявление депутат верховный рад партия самопомощь виктория войцицкий . ведомость единый реестр досудебный расследование ердр быть внести часть статья служебный халатность ук украина . слово виктория войцицкий год компания укрнафт искусственно вывести миллиард гривна . укрнафт крупный нефтегазодобывающий предприятие украина . компания доля добыча нефть газовый конденсат страна составлять процент газа процент . укрнафт иметь спецразрешение добыча углеводород эксплуатировать нефтяной газовый скважина владеть установка . процент плюс акция укрнафт принадлежать нафтогаза процент акция контролировать группа привата собственник являться коломойский . В компания возглавить британец роллингз сменить пост бельгиец ванхек . |ngramms генеральный_прокуратура начало_расследование пресс_служба В_ведомство крупный_в_страна быть_начать верховный_рад быть_внести ук_украина миллиард_гривна предприятие_украина добыча_нефть добыча_углеводород газовый_скважина _установка процент_плюс процент_акция +1614 |text российский авиакомпания сократить перевозка международный направление процент миллион человек . сообщать росавиация . внутренний перевозка месяц год вырасти процент миллион человек . В целое пассажиропоток сравнение аналогичный период прошлое год снизиться процент миллион человек . В быть занятый процент пассажирский кресло что процент маленький год . фон падение спрос авиаперевозка колебание курс рубль ряд российский авиакомпания оказаться сложный финансовый положение . перевозчик вынудить облетать украинский территория что приводить дополнительный расход топливо . негативный влияние отрасль оказать кризис туристический рынок . пассажиропоток авиакомпания россия ютэйр допустить дефолт облигация готовить реализация программа реструктуризация задолженность . объём перевозка компания трансаэро получить государство качество поддержка госгарантия банковский кредит миллиард рубль . |ngramms российский_авиакомпания российский_авиакомпания миллион_человек миллион_человек миллион_человек внутренний_перевозка В_целое аналогичный_период_прошлое_год процент_маленький курс_рубль финансовый_положение украинский_территория пассажиропоток_авиакомпания реализация_программа реструктуризация_задолженность миллиард_рубль +1615 |text президент россия поручить обнулить налог добавить стоимость ндс авиаперевозка калининградский область передавать . глава государство совещание развитие транспортный инфраструктура обратить внимание что единственный эксклавный удалённый основной территория прима . лента . регион россия . подчеркнуть что дать случай вопреки позиция минфин необходимость сохранение целостный система налогообложение страна можно сделать исключение . авиационный перевозка калининград ндс убирать президент . В год минтранс россия предлагать ввести налоговый льгота перелёт крым обнулить ндс . министр транспорт максим уточнять что соответствующий документ находиться рассмотрение правительство . В середина сообщаться что кабинет министр россия подготовить законопроект сохранение год льготный процентный ставка ндс авиакомпания внутренний рейс . В российский авиаперевозчик попросить обнулить ндс внутренний перелёт . В ассоциация эксплуатант воздушный транспорт аэвт отмечать что авиакомпания прошлое год смочь сэкономить миллиард рубль счёт снижение ндс процент . |ngramms президент_россия__ добавить_стоимость калининградский_область глава_государство транспортный_инфраструктура обратить_внимание регион_россия дать_случай можно_сделать минтранс_россия предлагать_ввести налоговый_льгота министр_транспорт максим_ соответствующий_документ В_середина процентный_ставка российский_авиаперевозчик ассоциация_эксплуатант воздушный_транспорт прошлое_год миллиард_рубль +1616 |text оператор мобильный год продемонстрировать рост финансовый показатель динамик носить качественный характер . заявить генеральный директор . В прошлое год выйти позитивный финансовый тренд развитие компания расти двузначный цифра выручка ebitda показатель рентабельность расти быстрый темп . подчеркнуть что рост не_носить характер демпинг ускоренный прирост база цена . качественный рост происходить счёт что компания работать текущий база . У многий регион база расти рост довольно скромный абонент составлять процент . удаваться традиционный пользователь голосовой услуга digital услуга пользователь дать ускоренный темп переводить пакетный тариф что приводить рост показатель что стагнировать рынок мочь показывать хороший результат . оператор мобильный запустить обновить тарифный линейка главный особенность персонализация продукт . тарифный план разработать принцип конструктор что позволять клиент настраивать предложение добавлять необходимый количество минута . |ngramms финансовый_показатель генеральный_директор _ В_прошлое_год быстрый_темп топ_менеджер что_компания голосовой_услуга рост_показатель хороший_результат что_позволять интернетом_трафик +1617 |text компания apple разослать дистрибьютор уведомление прекращение работа крым год санкция сша . сообщить twitter ведущий аналитик mobile research group муртазин . подлинность письмо копия опубликовать муртазин подтвердить российский ретейлер издание рбк . слово муртазин крым работать магазин краснодар продавать техника apple . компания потребовать подтвердить ознакомление уведомление подписать . В соответствие новый санкция отношение автономный республика крым ринятымь правительство сша год обязываться не_осуществлять продажа продукция apple не_предоставлять услуга относиться продукция apple полуостров письмо . apple прекратить сотрудничество крымский разработчик удалить разместить приложение app store . год министерство финансы сша выделить американский компания месяц прекращение операция расторжение контракт предоставление услуга технология крым . президент сша подписать указ новый санкция россия . вашингтон решение блокировать актив физический лицо компания связанный крым . запрещаться вести бизнес компания контролироваться житель полуостров . |ngramms компания_apple санкция_сша group_ ростов_на_дону компания_потребовать новый_санкция республика_крым правительство_сша продажа_продукция продукция_apple министерство_финансы американский_компания президент_сша _ физический_лицо вести_бизнес житель_полуостров +1618 |text джи эм дата снг российский подразделение general motors уведомить росстандарт добровольный отзыв тысяча автомобиль chevrolet aveo . сайт ведомство . автомобиль подпадать отзыв некоторый случай воздействие экстремально низка температура минус градус мочь возникнуть трещина шланг гидроусилитель рулевой управление что привести подтекание рабочий жидкость гидроусилитель отмечаться сообщение . отзыв подлежать автомобиль произвести год год . В сервисный центр джи эм дата снг машина заменить шланг гидроусилитель рулевой управление . работа быть осуществляться бесплатно владелец . американский концерн general motors год объявить уход российский рынок бренд opel массовый модель chevrolet пообещать сохранить автомобиль cadillac chevrolet класс люкс . автопроизводитель решить неопределённый срок остановить производственный проект россия законсервировать завод gm остановить контрактный производство мощность группа газ производиться chevrolet aveo . сотрудничество автотор gm заказывать выпуск машина завершиться . gm намеренный сохранить совместный предприятие gm автоваз продолжить выпускать chevrolet niva текущий поколение . |ngramms дата_снг дата_снг российский_подразделение general_motors general_motors тысяча_автомобиль пресс_релиз некоторый_случай мочь_возникнуть отмечаться_в_сообщение быть_осуществляться американский_концерн массовый_модель пообещать_сохранить проект_в_россия завод_gm санкт_петербург группа_газ выпуск_машина намеренный_сохранить совместный_предприятие +1619 |text башнефть лукойл подать апелляционный жалоба решение арбитражный суд москва отзыв совместный предприятие башнефть полюс лицензия месторождение имя требс . сообщать ссылка материал суд . арбитражный суд москва частично удовлетворить иск миноритарий башнефть компания роснедра месторождение требс признать незаконный передача лицензия сп башнефть лукойл . арбитраж признать незаконный решение роснедра переоформление лицензия башнефть месторождение имя требс компания башнефть полюс . В соответствие решение суд лицензия месторождение быть возвратить башнефть . суд отказать истец удовлетворение требование признание незаконный решение совет директор башнефть передача лицензия компания башнефть полюс . башнефть получить лицензия разработка месторождение требс итог конкурс год привлечь проект качество партнёр лукойл блокпакет башнефть полюс . В год миноритарий башнефть подать иск роснедра требование отозвать лицензия месторождение башнефть полюс поскольку мнение переоформление лицензия нарушение материнский компания потерять инвестиционный привлекательность . В год роснедра отменить приказ передача лицензия башнефть полюс решение возвратить лицензия башнефть . вновь переоформить лицензия сп башнефть удаться год . В год компания башнефть лукойл направить письмо генеральный прокурор россия чайка просьба расследовать корпоративный атака сп башнефть полюс . |ngramms апелляционный_жалоба арбитражный_суд_москва арбитражный_суд_москва совместный_предприятие месторождение_имя месторождение_имя материал_суд удовлетворить_иск _ _ признать_незаконный признать_незаконный передача_лицензия решение_суд суд_отказать незаконный_решение совет_директор разработка_месторождение направить_письмо россия_ +1620 |text совет директор роснефть утвердить рекомендация акционер компания размер дивиденд год . сайт компания . собрание акционер состояться рекомендовать решение выплата дивиденд размер рубль обыкновенный акция есть процент чистый прибыть . образ дивидендный выплата решение поддержать акционер компания направить миллиард рубль . В год повышение инвестиционный привлекательность совет директор одобрить изменение дивидендный политика роснефть соответствие дивидендный выплата составлять процент чистый прибыть международный стандарт финансовый отчётность . новый дивидендный политика предусматривать выплата акционер год . В конец год роснефть планировать выплатить промежуточный дивиденд увеличить образ сумма дивиденд год . итог год компания заплатить большой процент дивиденд компания контролировать государство . транснефть итог позапрошлый год выплатить процент прибыть газпром процент . приоритет деятельность компания являться повышение акционерный доходность . В десять год первичный размещение котировка акция роснефть демонстрировать положительный динамик опережать темп рост цена акция конкурент индекс ммвб . ipo период год стоимость акция роснефть московский биржа вырасти процент что процентный пункт превышать показатель ближний конкурент процентный пункт выше показатель индекс ммвб . В год ценный бумага компания продемонстрировать рост стоимость опередить динамик индекс ммвб . итог прошлое год показатель совокупный акционерный доходность роснефть учитывать объесть дивидендный выплата составить процент что превышать средний показатель доходность сопоставимый российский компания . газпромнефть сбербанк сообщить рекомендация выплата дивиденд уровень соответственно . |ngramms совет_директор совет_директор акционер_компания пресс_релиз собрание_акционер выплата_дивиденд выплата_дивиденд чистый_прибыть чистый_прибыть решение_поддержать компания_направить миллиард_рубль международный_стандарт финансовый_отчётность В_конец компания_заплатить компания_являться десять_год первичный_размещение котировка_акция рост_цена стоимость_акция процентный_пункт процентный_пункт превышать_показатель ближний_конкурент показатель_индекс ценный_бумага рост_стоимость прошлое_год превышать_средний российский_компания +1621 |text аэрофлот войти мировой авиакомпания предоставлять пассажир наиболее широкий доступ интернет . перевозчик сообщить иметься распоряжение лента . . крупный российский авиакомпания занять семь место рейтинг составить американский поисковик комфортный рейс routehappy оценка оснащённость воздушный судно глобальный перевозчик . масштаб предоставление услуга аэрофлот опередить emirates qatar japan airlines turkish airlines . услуга предоставляться борт дальнемагистральный воздушный судно аэрофлот рамка реализация программа интернет борт . как сообщение компания аэрофлот удаться значительно повысить качество обслуживание пассажир добиться широкий международный признание многое благодаря использование инновация внедрение передовой . востребовать инновационный услуга сторона пассажир время прошедшее публикация предыдущий отчёт свидетельствовать существенный инвестиция авиакомпания развитие услуга приводить слово генеральный директор routehappy телеканал cnn распространить дать новое рейтинг . |ngramms wi_fi wi_fi wi_fi wi_fi пресс_релиз крупный_российский_авиакомпания занять_семь место_в_рейтинг составить_американский воздушный_судно воздушный_судно реализация_программа качество_обслуживание международный_признание приводить_слово генеральный_директор _ +1622 |text исполнительный директор американский автопроизводитель ford motor филдс возглавлять компания год быть уволить утрата доверие . сообщать журнал forbes ссылка информированный источник . подать издание официально отставка быть объявить . исполнительный директор ford вместо быть назначить настоящее время возглавлять дочерний компания ford smart mobility специализироваться создание автономный транспортный средство . филдсом компания покинуть ford общественность рей . должность сменить ford вопрос коммуникация азиатско тихоокеанский регион трубить . перетряска руководство компания происходить фон утрата доверие лидерский качество сторона член совет директор компания включая глава форд . что прибыль ford итог текущий год составить миллиард доллар . доля компания рынок снижаться акция подешеветь год процент . В начало год компания tesla motors выпускать электромобиль уровень капитализация миллиард доллар выйти позиция ведущий американский автопроизводитель оттеснить место ford motor . произойти как акция компания вырасти семь процент . |ngramms исполнительный_директор исполнительный_директор американский_автопроизводитель американский_автопроизводитель возглавлять_компания быть_уволить журнал_forbes быть_объявить вместо_ быть_назначить _ дочерний_компания транспортный_средство вице_президент вице_президент руководство_компания совет_директор_компания текущий_год_составить миллиард_доллар миллиард_доллар доля_компания акция_подешеветь В_начало tesla_motors акция_компания семь_процент +1623 |text учёный госкорпорация росатом совместно коллега научный институт год сделать ряд научный открытие область наука техника иметь прикладной практический значение . сообщать новость ссылка материал представить собрание российский академия наука рана . сотрудник российский федеральный ядерный центр всероссийский институт экспериментальный физика внииэф структура росатом создать газовый лазер новое тип повышенный коэффициент полезный действие составлять процент . прибор мочь использоваться система наведение излучение технологический медицинский лазерный установка . помимо учёный внииэф смочь сжать плазма гелий дейтерий экстремально высокий давление миллион атмосфера что позволить получить новое сведение изучение процесс протекать глубина планета звезда . база ядерный реактор сантиметр институт атомный реактор начать эксперимент поиск называть стерильный нейтрино как полагать учёный являться частица тёмный материя . нейтрино легчайший элементарный нейтральный частица класс лептон обладать гигантский проникать способность что позволять преодолевать расстояние сотня год не_вступить взаимодействие вещество . В научный центр росатом институт имя лейпунский обнинск учёный быть обнаружить называть распад нагреть тяжёлый ядро холодное фрагмент . физика разный лаборатория мир протяжение год пытаться найти экспериментальный подтверждение вид распад . |ngramms российский_академия российский_федеральный ядерный_центр научно_исследовательский научно_исследовательский создать_газовый высокий_давление что_позволить как_полагать что_позволять физико_энергетический институт_имя быть_обнаружить +1624 |text В россия третье квартал год быть приобрести кредит тысяча легковой автомобиль процент объём продажа . высокий квартальный показатель начало год . совместный исследование агентство автостат национальный бюро кредитный история нбка . аналогичный период прошлое год кредит быть купить тысяча легковушка процент автомобиль . образ год показатель вырасти процентный пункт абсолютный цифра выдать автокредит подскочить процент . мнение исполнительный директор автостат удалов рост доля кредитный автомобиль многое обусловить реализация госпрограмма льготный автокредитование . обращать внимание что третье квартал год быть расширить счёт новый программа автомобиль семейный автомобиль . помимо субсидировать процентный ставка рамка программа покупатель получать процентный скидка автомобиль что повышать привлекательность кредит . стать что покупатель авто воспользоваться программа автомобиль семейный автомобиль прийтись заплатить налог доход физлицо ндфл процентный скидка . информация содержаться письмо минфин сообщить газета коммерсантъ . В минпромторг пообещать оперативно исправить ситуация . прийтись внести правка налоговый кодекс . изменение согласовать минфин рабочий порядок быть рассмотрение очередной изменение налоговый кодекс госдума . информация договор заключённый рамка программа банка участник предоставить фнс год сообщить лента . министерство . В россия продажа новый автомобиль ассоциация европейский бизнес аеб вырасти процент месяц рост составить процент . |ngramms В_россия третье_квартал третье_квартал год_быть легковой_автомобиль объём_продажа аналогичный_период_прошлое_год быть_купить процентный_пункт исполнительный_директор доля_кредитный обращать_внимание новый_программа процентный_ставка покупатель_получать процентный_скидка процентный_скидка что_покупатель сообщить_газета налоговый_кодекс налоговый_кодекс рабочий_порядок продажа_новый ассоциация_европейский_бизнес рост_составить +1625 |text росспиртпром расторгнуть лицензионный соглашение фкп союзплодоимпорт управление марка шампанский советский коньяк московский . писать газета коммерсантъ ссылка дать роспатент . лицензия алкогольный марка быть передать дистрибуторский компания ведк срок десять год . В качество причина разрыв соглашение союзплодоимпорт росспиртпром назвать желание сосредоточиться развитие собственный бренд отказаться услуга сторонний дистрибутор . В коммерсант что расторжение лицензия мочь быть связать малое объём выпуск советский шампанский коньяк московский . В год быть произвести миллион декалитр советский миллион декалитр московский . сведение председатель совет директор московский комбинат шампанский вино привести издание год предприятие быть выпустить миллион декалитр советский шампанский . право торговый марка шампанский советский коньяк московский принадлежать государство лицо союзплодоимпорт . В год государственный предприятие заключить лицензионный соглашение росспиртпром обязаться производить шампанский коньяк обеспечивать распространение маркетинговый поддержка . дистрибуция советский шампанский коньяк московский заниматься эксклюзивный партнёр росспиртпром ведк . компания рассчитывать нарастить выпуск советский миллион декалитр год коньяк московский миллион декалитр год . источник ведк сообщить издание что причина снижение продажа стать усиление конкуренция сторона марка шампанский российский . союзплодоимпорт продолжить сотрудничество росспиртпром производство распространение водка столовый русский . |ngramms марка_шампанский марка_шампанский писать_газета быть_передать восточно_европейский десять_год В_качество причина_разрыв назвать_желание собственный_бренд мочь_быть объём_выпуск год_быть председатель_совет_директор шампанский_вино _ год_на_предприятие быть_выпустить торговый_марка принадлежать_государство государственный_предприятие компания_рассчитывать нарастить_выпуск сообщить_издание что_причина снижение_продажа +1626 |text компания роснефть интервью радиостанция москва прокомментировать заявление бывший глава минэкономразвития сделать суд . юридический вещий . единственный что хотеть странно . что чистосердечный иметься вид ? Я мочь слух комментировать судебный заседание напрямую не_касаться никак . уголовный возбудить государство . государство обвинитель . ? разбираться заключить . ход слушание замоскворецкий суд заявить что уголовный преследование являться провокация . В отношение сторона фсб быть совершить провокация взятка организовать основание заведомо ложный донос главный исполнительный директор роснефть сечин начальник служба безопасность роснефть . послужить основание необоснованный возбуждение уголовный . согласный предъявить обвинение считать невиновный подчеркнуть бывший чиновник . гособвинитель суд что находиться командировка требовать сечин взятка миллион доллар непрепятствие совершение сделка . бывший министр экономический развитие быть задержать ночь год визит головной офис корпорация роснефть . следствие что вымогать менеджмент компания роснефть взятка обмен выдача положительный заключение возможность приобрести государственный пакет акция башнефть . |ngramms вице_президент пресс_секретарь _ _ прокомментировать_заявление бывший_глава судебный_заседание В_отношение быть_совершить исполнительный_директор служба_безопасность предъявить_обвинение министр_экономический_развитие быть_задержать головной_офис менеджмент_компания положительный_заключение пакет_акция +1627 |text авиакомпания трансаэро обратиться минтранс просьба поддержать продление ковенантный каникулы ряд банк сбербанк втб вбрра дочка роснефть . сообщать ведомость ссылка письмо первое замгендиректор трансаэро быть направить замминистра транспорт . В немой что банка стать единственный банк кредитор кто не_согласиться реструктурировать просрочить год долг авиакомпания . слово представлять серьёзный угроза деятельность авиакомпания . автор письмо напоминать что авиакомпания требование кредитор текущий год привлечь компания deloitte экспертиза деятельность финансовый отчётность . заключение быть готовый конец . одновременно начало mckinsey работать уточнить версия стратегия авиакомпания . быть готовый середина . ковенантный каникулы заканчиваться продлить необходимый банка кредитор успеть изучить результат экспертиза определить параметр сделка подготовить документ . сотрудник банк упомянуть письмо ведомость что кредитный организация готовый продлить ковенантный каникулы конец иначе множество турист не_смочь вернуться отпуск . сотрудник банка уточнить что идти переговоры повод изменение бизнес модель трансаэро . слово представление предыдущий бизнес модель компания кредитор возникнуть ряд вопрос уточняться сниматься рабочий порядок . как следовать трансаэро цитировать издание суммарный платёж банка месяц год превысить миллиард рубль сравнение миллиард период прошлое год . цель быть направить рубль выручка компания компания полностью обслуживать процентный обязательство банка сообщение . трансаэро объём перевозка российский авиакомпания . парк авиаперевозчик насчитывать самолёт . основный акционер являться председатель совет директор супруг . состояние конец год чистый долг трансаэро составлять миллиард рубль . треть сумма миллиард рубль приходиться краткосрочный долг . крупный кредитор являться втб миллиард рубль газпромбанк миллиард рубль . В конец год правительство россия одобрить авиакомпания госгарантия обеспечение исполнение обязательство кредит втб срок год сумма миллиард рубль . |ngramms ряд_банк _ _ _ В_немой стать_единственный долг_авиакомпания деятельность_авиакомпания автор_письмо текущий_год финансовый_отчётность версия_стратегия результат_экспертиза подготовить_документ кредитный_организация рабочий_порядок пресс_релиз миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль период_прошлое_год быть_направить выручка_компания российский_авиакомпания парк_авиаперевозчик основный_акционер председатель_совет_директор чистый_долг крупный_кредитор являться_втб В_конец правительство_россия кредит_втб +1628 |text назвать новый дата начало строительство газопровод сила сибирь россия китай . церемония наметить провести якутск . агентство интерфакс сообщить источник отрасль . мероприятие лицо государство ничто . газпром планировать начать строительство летом год . В глава компания середина заявить что стык сила сибирь быть сварить . прямая поставка топливо китай начаться год . контракт поставка российский газа китай газпром китайский национальный нефтегазовый корпорация быть подписать год . соглашение заключить срок год предполагать поставка миллиард кубометр газа год . переговоры российский китайский сторона длиться год . |ngramms новый_дата строительство_газопровод сила_сибирь сила_сибирь планировать_начать глава_компания _ поставка_топливо контракт_на_поставка российский_газа нефтегазовый_корпорация быть_подписать миллиард_кубометр газа_в_год +1629 |text металлургический компания евраз задуматься закрытие россия малоэффективный производство как минимум снижение объём продукция . заявить компания писать ведомость . добавить что закрытие завод компания прибегнуть крайний случай зависимость ситуация рынок фактор . отказаться назвать конкретный предприятие мочь закрыться сократить персонал . слово суммарный себестоимость производство год сократиться процент примерно результат планироваться следующий год . В текущий год евраз прекратить производство лист металлургический комбинат зсмк закрыть ирбитский рудник высокогорский комбинат . компания параллельно инвестировать проект направить повышение эффективность производство . сокращение опитимизация работа связать падение цена чёрный металл . К пример холоднокатаный прокат подешеветь процент сравнение начало год . компания сохранять высокий себестоимость добыть руда где добыча вестись шахтный способ . получение льгота ндпить металлург пытаться договориться правительство ситуация принципиально не_изменить . крупный металлургический компания заявить снижение объём производство падение цена рынок . русало приостановить работа завод расположить европейский часть страна . выработка быть снизить сибирский завод корпорация . |ngramms металлургический_компания металлургический_компания как_минимум снижение_объём вице_президент вице_президент компания__ закрытие_завод ситуация_на_рынок текущий_год прекратить_производство западно_сибирский металлургический_комбинат горно_обогатительный повышение_эффективность К_пример начало_год объём_производство цена_на_рынок приостановить_работа европейский_часть быть_снизить +1630 |text роспотребнадзор приостановить ввоз территория россия алкогольный продукция черногорский производитель plantaze . сообщаться сайт ведомство . ограничение действовать . В год быть выявить партия продукция соответствующий требование законодательство . результат исследование выявить содержание пестицид пластификатор обнаружить посторонний включение . несмотря предостережение сторона роспотребнадзор производитель не_представить информация устранение нарушение . партия алкогольный продукция соответствующий требование изъять оборот материал передать суд . |ngramms алкогольный_продукция алкогольный_продукция год_быть требование_законодательство +1631 |text возвращаться россия амнистия капитал не_быть облагаться дополнительный налог . заявить глава минфин силуановый передавать . быть оценивать актив стоимость оценить рубеж . есть перевод актив рубеж россия не_быть попадать дополнительный налогообложение заявить силуановый . подчеркнуть что предложение президент амнистия капитал быть дополнительно прорабатываться правительство . президент россия послание федеральный собрание предложить провести полный амнистия капитал возвращаться россия . человек легализовать средство имущество россия получить твёрдый гарантия что не_быть таскать различный орган не_спросить источник способ получение капитал заявить глава государство . слово россия перевернуть закрыть офшорный страница история . |ngramms дополнительный_налог что_предложение президент_россия__ федеральный_собрание предложить_провести глава_государство +1632 |text В северный осетия конец год возобновить работа предприятие исток некогда крупный россия производитель алкоголь . заявить временно исполнять обязанность министр экономический развитие республика гулуесть . уточнить что завод выпускать коллекционный сорт шампанский планироваться реанимировать деньга частное инвестор . сумма гулуесть не_назвать . чиновник не_сказать какой объесть производство быть наладить предприятие первое этап что быть зависеть получить акциз выпуск алкогольный продукция . гулевый что мощность осетинский предприятие способный покрыть треть потребность российский рынок алкогольный продукция большинство настоящее время простаивать . производственный комплекс расположить предприятие исток занимать площадь гектар . В входить спиртзавод ликероводочный завод завод шампанский вино стекольный производство цех покраска бутылка типография . В год предприятие возникнуть серьёзный финансовый проблема быть запустить процедура банкротство . В период расцвет год завод выпускать миллион бутылка шампанский вино ежегодно . |ngramms возобновить_работа исполнять_обязанность министр_экономический_развитие что_завод частное_инвестор объесть_производство алкогольный_продукция алкогольный_продукция треть_потребность российский_рынок шампанский_вино шампанский_вино финансовый_проблема быть_запустить процедура_банкротство В_период +1633 |text федеральный антикартельный управление германия оштрафовать тысяча евро датский производитель конструктор lego ограничительный ценовый политика отношение магазин распространять продукция компания . сообщать rambler service ссылка . немецкий регулятор обвинить lego что период год производитель не_позволять германский магазин делать скидка популярный товар . lego составлять список фиксироваться цена игрушка . В случай нарушение условие компания продавец угрожать уменьшение полный прекращение поставка . В некоторый случай магазин позволяться делать фиктивный скидка . есть продавец искусственно завышать цена товар якобы делать скидка . стоимость быть оставаться установленный компания производитель уровень . В очередь руководство lego заявить готовность предотвратить подобный происшествие будущее . В год сообщаться что согласно экспертный опрос британский газета telegraph купить год тематический игрушка lego случай продажа заработать большой кто вложиться акция золото воспользоваться депозит . эксперт установить что индекс ftse основываться курс акция компания наибольший капитализация разместить лондонский фондовый биржа мало измениться сравнение год . время акционер увеличивать среднегодовой доход процент . В время цена сохраниться первозданный вид тематический конструктор lego выпуск прекратиться месяц рослый рынок примерно процент . |ngramms тысяча_евро ценовый_политика продукция_компания сообщать_rambler_news_service немецкий_регулятор В_случай прекращение_поставка некоторый_случай установленный_компания В_свой_очередь фондовый_биржа В_то_же_время +1634 |text российский компания занимать место европа потребность рефинансирование процент объём . уступать предприятие германия франция великобритания доля страна приходиться процент объём . сообщать финмаркет ссылка обзор международный рейтинговый агентство moody investors service . оценка агентство потребность компания рейтинг инвестиционный уровень рефинансирование задолженность европа ближний восток африка оцениваться триллион доллар ближний год . российский доля сумма составлять примерно миллиард доллар . свыше треть совокупный задолженность долговой бумага банковский кредит российский компания сконцентрировать энергетический сектор . В год пиковый нагрузка рефинансирование компания прийтись роснефть газпром отмечать moody . В европа существенный потребность рефинансирование год испытать компания энергетический сектор bp royal dutch shell enel концентрация маленький рф . К добавляться автопроизводитель daimler bmw телекоммуникационный компания teliasonera представитель отрасль . moody отмечать возрасти тенденция заимствование рынок долговой капитал посредством банковский кредит . сократить возможность компания случай потрясение мировой финансовый рынок будущее обзор . В ближний год агентство ожидать стабильность небольшой улучшение кредитоспособность компания рейтинг инвестиционный уровень . |ngramms российский_компания российский_компания место_в_европа инвестиционный_уровень инвестиционный_уровень триллион_доллар составлять_примерно миллиард_доллар банковский_кредит банковский_кредит энергетический_сектор энергетический_сектор компания_прийтись телекоммуникационный_компания компания_в_случай финансовый_рынок В_ближний +1635 |text компания заниматься возведение отель олимпийский игра сочи быть вынудить оплатить фрахт круизный лайнер гость случай срыв срок строительство . номер писать коммерсантъ ссылка материал совещание . представитель секретариат зампред правительство джус добавить что пункт фрахт судно случай срыв срок строительство прописать дополнительный контракт подписать некоторый инвестор . условие согласиться пойти десять компания структура сбербанк . затрата лайнер не_успеть срок застройщик прийтись вернуть государство деньга потратить строительство объект инженерный сеть подъездный путь . сообщаться что просрочка инвестор согласиться выплачивать олимпстроить миллион рубль . В материал совещание указываться что большой риск срыв срок существовать объект строить небольшой компания фонд тысяча номер . коммерсантъ писать ссылка неназванный источник что дополнительный контракт подписываться ультимативный порядок . стать что состояние начать год подготовка олимпиада потратить триллион рубль . приготовление игра планироваться потратить триллион рубль . год российский писать что олимпийский игра сочи стать дорогостоящий история . расход подготовка олимпиада оцениваться миллиард рубль . |ngramms олимпийский_игра олимпийский_игра быть_вынудить срыв_срок срыв_срок срыв_срок вице_премьер _ _ зампред_правительство дополнительный_контракт дополнительный_контракт В_материал что_большой небольшой_компания тысяча_номер триллион_рубль триллион_рубль планироваться_потратить миллиард_рубль +1636 |text предприниматель бывший сенатор чечня приобрести тир патриот район измайлово восток москва . сообщать рбк ссылка бизнесмен . информация сделка подтвердить стрелковый клуб . директор тир сообщить что быть состав учредитель право решающий голос . сделка состояться . слово думать год . алюминиевый завод покупать можно тир добавить . бизнесмен что приобрести тир как выгодный вложение считать направление перспективный . стрелковый клуб полагать зарекомендовать иметь хороший клиент намеренный тренироваться . предприниматель сообщить что временной недоразумение разрешительный система намеренный уладить . конкретный план инвестиция новый бизнес развитие тир нет . слово бизнесмен решение вопрос быть зависеть партнёр специалист . надо развивать сеть остановиться измайловский клуб заявить . не_исключить что клуб стать тренировочный база чеченский спортсмен . сумма сделка не_раскрываться что бог ведать какой . год устроить стрельба гостиница seasons напротив кремль . быть предъявить обвинение хулиганство совершенный применение оружие предмет использовать качество оружие . некоторые стрельба находиться воздействие кокаин . поздний быть приговорить штраф размер тысяча рубль . стрелковый клуб патриот негосударственный образовательный учреждение . согласно информация система спарк учредитель компания год являться молостов чаркина . руководить компания год . информация что войти состав учредитель организация спарк не_отразить . |ngramms _ _ _ сделка_подтвердить __сообщить сделка_состояться экс_сенатор завод_покупать добавить_ предприниматель_сообщить новый_бизнес что_клуб сумма_сделка штраф_в_размер тысяча_рубль согласно_информация __и_ руководить_компания войти_в_состав +1637 |text развернуть кампания роснефть направить снижение стоимость нейтрализация эффективный менеджмент . эфир вести фм заявить роснефть . что вина менеджмент компания ставиться неудачный выбор время продажа акция консолидировать роснефть год . решение продавать когда дёшево . купить рынок продавать рынок желательно премия рынок быть грамотно сделать . опровергнуть информация что компания находиться гнёт кредит . объесть кредит слово вернуться уровень покупка низкий показатель отрасль . надо учитывать какой налоговый нагрузка нести нефтяной компания заметить нефтегазовый нефтяной . налоговый нагрузка нет кто . И прочить не_снижаться условие кризис . exxonmobil тыкать глаз списать миллиард лишний убыток bp показать лишний миллиард убыток возмутиться . обратить внимание что многие нефтяной компания настоящее время сворачивать инвестиция отличие роснефть увеличивать капитальный затрата . какой совесть надо иметь считать капитализация санкционный компания находиться секторальный санкция личный санкция ? негодовать роснефть . назвать цель мнение преследовать информационный кампания роснефть снижение стоимость энергохолдинг нейтрализация менеджмент . образ разговор якобы неэффективный менеджмент бессовестный наглый ложь подытожить . В середина ряд негативно отреагировать публикация отчётность роснефть сообщаться процентный рост доход правление компания год . депутат госдума рашкина обратиться запрос помощник президент россия председатель совет директор роснефть просьба объяснить увеличение выплата член правление компания год фон экономический кризис сокращение госрасход . |ngramms пресс_секретарь пресс_секретарь _ _ менеджмент_компания продажа_акция тнк_bp тнк_bp опровергнуть_информация что_компания низкий_показатель надо_учитывать налоговый_нагрузка налоговый_нагрузка нефтяной_компания нефтяной_компания обратить_внимание что_многие капитальный_затрата _назвать снижение_стоимость В_середина рост_доход правление_компания депутат_госдума_ президент_россия председатель_совет_директор член_правление год_на_фон экономический_кризис +1638 |text газпром нефть создавать центр цифровой инновация цци внедрение цифровой технология область логистика переработка сбыт . компания поступить лента . . работа центр быть сконцентрировать развитие применение бизнес газпром нефть технология дать блокчейн предиктивный управление цифровой двойник предприятие промышленный интернет вещий самообучающийся система база искусственный интеллект отмечаться релиз . В рамка ции быть объединить усилие российский технологический компания разработчик научный сообщество направить поиск инновационный решение повышение эффективность бизнес . позволить компания гибко оперативно управлять эффективность процесс счёт анализ использование дать онлайн режим . мир стремительно меняться . стоить задача провести масштабный цифровой трансформация компания направить радикальный повышение эффективность бизнес . трансформация невозможный поиск оперативный внедрение инновационный решение . ставить комплексный задача привлечь процесс создание новый промышленный цифровой технология участник российский инновационный экосистема председатель правление газпром нефть . продукт создавать партнёр компания стартап быть обкатываться условие приблизить реальный производство база технопарк промышленный автоматизация газпром нефть омск площадка ции . |ngramms газпром_нефть газпром_нефть газпром_нефть газпром_нефть цифровой_технология цифровой_технология пресс_релиз интернет_вещий отмечаться_в_релиз В_рамка объединить_усилие инновационный_решение инновационный_решение повышение_эффективность повышение_эффективность использование_дать стоить_задача провести_масштабный создание_новый председатель_правление _ партнёр_компания +1639 |text рейс дальний восток оказаться дешёвый внутренний направление пересчёт километр полёт . сообщаться отчёт туристический поисковик aviasales поступить лента . . стоимость километр маршрут владивосток москва составлять рубль средний стоимость рубль . дорогой направление стать короткий краснодар адлер рубль . объясняться что некоторый авиационный сбор не_зависеть расстояние . В целое перелёт внутри страна оказаться процент дорогой аналогичный длина международный . В aviasales разница цена объяснять процентный налог продажа включить стоимость билет россия инфраструктурный особенность зачастую город нет альтернативный аэропорт альтернативный поставщик топливо . что текущий год рост пассажиропоток внутренний авиалиния не_превысить девять процент следующий процент . В предыдущий год отрасль стабильно демонстрировать прирост . |ngramms дальний_восток средний_стоимость направление_стать что_некоторый В_целое процент_дорогой процентный_налог стоимость_билет поставщик_топливо текущий_год рост_пассажиропоток девять_процент В_предыдущий +1640 |text японский корпорация panasonic ближний год намерить сократить тысяча сотрудник . заявить президент компания казухиро цуг передавать . сокращение пройти подразделение выпускать комплектовать деталь автомобиль промышленный оборудование . как указывать подразделение сосредоточить треть рабочий сила panasonic . корпорация трудиться тысяча человек . благодаря снижение численность персонал panasonic планировать сократить издержка повысить прибыльность . производитель заявить что итог фискальный год завершиться убыток компания мочь составить миллиард иена миллиард доллар . год потеря panasonic превысить десять миллиард доллар . В середина деловой сообщить что плохой финансовый результат panasonic сократить зарплата руководство . В конец прошлое год корпорация цуг председатель совет директор оцубый отказаться процент доход . panasonic как крупный японский производитель электроника sony sharp оказаться тяжёлый финансовый положение экономический кризис укрепление иена . время власть япония предпринимать шаг ослабление национальный валюта оказывать образ поддержка местный компания экспортёр . В результат начало курс доллар впервые год превысить отметка сто иена . |ngramms японский_корпорация тысяча_сотрудник президент_компания как_указывать рабочий_сила тысяча_человек численность_персонал планировать_сократить что_по_итог убыток_компания мочь_составить миллиард_доллар миллиард_доллар превысить_десять В_середина финансовый_результат В_конец прошлое_год топ_менеджер председатель_совет_директор производитель_электроника финансовый_положение экономический_кризис национальный_валюта поддержка_местный В_результат курс_доллар +1641 |text генеральный директор социальный сеть вконтакте назвать причина продажа доля компания связать отказ выдать личный дать администратор группа посвятить акция протест майдан незалежность киев требование фсб написать официальный страница вконтакте . год стать что акция гендиректор мегафон совладелец холдинг ютв . незадолго вконтакте уйти перекопский брат работать финансовый директор компания . год фсб потребовать выдать личный дать организатор группа евромайдан . ответ быть оставаться категорический отказ юрисдикция россия не_распространяться украинский пользователь вконтакте писать . слово гендиректор соцсеть раскрытие дать пользователь украина российский власть нарушение закон предательство миллион житель украина довериться . В процесс прийтись пожертвовать многий доля вконтакте . не_жалеть защита личный дать человек стоить намного . напомнить что начало соцсеть вконтакте требование роскомнадзор быть заблокировать сообщество посвятить евромайдан связанный украинский националистический организация правый сектор . попытка зайти страница группа выдаваться сообщение что дать материал заблокировать территория российский федерация . |ngramms генеральный_директор социальный_сеть __назвать причина_продажа личный_дать личный_дать личный_дать акция_протест официальный_страница _ вице_президент брат_ директор_компания российский_власть нарушение_закон житель_украина быть_заблокировать что_дать российский_федерация +1642 |text В состав совет директор американский разработчик термоядерный технология tri alpha energy войти глава роснано . сообщаться российский корпорация . В сообщение уточняться что совет директор роснано разрешить совмещать работа новый место должность председатель правление нанотехнологический корпорация . bloomberg tri alpha energy быть основать год . организация находиться калифорния . сайт газета ведомость уточняться что tri alpha energy не_числиться список проект финансировать роснано . В корпорация издание рассказать что номинировать фонд инфраструктурный образовательный программа выделить роснано акционирование год . tri alpha energy разрабатывать новый технология термоядерный синтез основать слияние изотоп водород дейтерий тритий реакция ядро изотоп бора протон ядро атом водород . сообщать новость . В результат слияние получаться тяжёлый зарядить ядро атом гелий . чистый термоядерный синтез считаться перспективный технология поскольку позволять получить управляемый частица всепроникающий нейтрон . слияние бора протон требоваться намного большой энергия случай изотоп водород . |ngramms В_состав совет_директор совет_директор _ пресс_релиз российский_корпорация В_сообщение работа_на_новый председатель_правление штаб_квартира пресс_служба новый_технология В_результат альфа_частица перспективный_технология поскольку_позволять +1643 |text гмк норильский никель начало судебный процесс ботсванский bcl group отстаивание интерес сделка реализация процентный доля совместный предприятие nkomati юар . сообщаться сайт российский компания . исковый заявление подать лондонский международный арбитраж . В основный требование признать договор купля продажа процент акция norilsk nickel africa владелец процент nkomati безусловный подлежащее исполнение случай невозможность исполнение договор натура определить размер убыток подлежащее взыскание bcl . группа обратиться иск суд ботсвана разрешение судебный преследование лондонский арбитраж компания bcl находиться процесс ликвидация отложить назначение постоянный ликвидатор наложить запрет отчуждение имущество . сообщаться что норникель решить продлить соглашение выкуп никелевый концентрат производить nkomati . контракт заключить nkomati европейский подразделение группа metal trade overseas . предусматривать поставка тысяча тонна концентрат год минимум год . норникель bcl год заключить обязывать соглашение продажа африканский актив адрес bcl контролировать правительство ботсвана . как заявлять российский компания отлагательный условие совершение сделка быть выполнить bcl не_выполнить обязательство . В год стать начало процедура добровольный ликвидация bcl . норильский никель лидер мировой никелевый отрасль . доля приходиться добыча процент мировой никель процент палладий . |ngramms судебный_процесс совместный_предприятие российский_компания российский_компания исковый_заявление международный_арбитраж процент_акция исполнение_договор иск_в_суд контракт_заключить европейский_подразделение предусматривать_поставка тысяча_тонна соглашение_о_продажа как_заявлять быть_выполнить начало_процедура лидер_мировой доля_приходиться процент_мировой +1644 |text группа swatch подать суд американский компания target продажа часы дизайн схожий продукция швейцарский организация . сообщать . иск подать окружный суд манхэттен обнародовать . swatch обвинить target продажа продукция идентичный дизайн часы zebra watch multi color watch . швейцарский группа что американский компания производить товар плохой качество собственный часы . В итог репутация производитель наноситься ущерб считать swatch . компания сообщить что уведомить target претензия заранее американец продолжить продажа . В swatch рассчитывать добиться остановка продажа компенсация ущерб сумма не_называться . swatch крупный производитель часы мир . группа располагаться швейцарский биль . компания принадлежать бренд breguet omega longines harry winston . target управлять сеть розничный магазин . |ngramms американский_компания американский_компания швейцарский_организация продажа_продукция производить_товар В_итог крупный_производитель штаб_квартира принадлежать_бренд управлять_сеть +1645 |text автоваз начало ввести часовой рабочий конвейер возрасти спрос автомобиль . рассказать председатель профсоюз предприятие передавать новость . сверхурочный работа быть действовать платформа выпускать lada largus lada xray nissan almera . сотрудник решение поддержать быть рад сверхурочный работа . дополнительный часы вводиться . работник линия трудиться смена восемь часы неделя . конец сохраниться двухсменный пятидневный режим . компенсация сверхурочный работа быть выплачиваться соответствие коллективный договор . информация источник агентство автоваз частично вводить режим простой . слово председатель профком мпра линия lada начало месяц работать неделя lada priora неделя kalina granta неделя . В простой сотрудник оплачиваться треть заработный плата . слово мера быть ввести кризисный явление авторынок избежать сокращение персонал . В начало сообщаться что продажа автоваз россия год вырасти процент сравнение аналогичный период предыдущий год составить автомобиль . как сообщить исполнительный компания продажа маркетинг птачка рыночный доля компания процент результат продажа показывать динамик развитие lada популярность модель новое поколение vesta xray . доля lada российский рынок легковой автомобиль первое полугодие год составить процент процент год . быть тысяча автомобиль lada что процент аналогичный период год . рынок сократиться процент . |ngramms рассказать_председатель _ _ передавать_риа_новость быть_действовать быть_рад восемь_часы работа_быть источник_агентство быть_ввести сокращение_персонал что_продажа аналогичный_период аналогичный_период предыдущий_год как_сообщить вице_президент компания_по_продажа рыночный_доля результат_продажа новое_поколение первое_полугодие год_составить тысяча_автомобиль +1646 |text роснефть японский marubeni corporation подписать меморандум сотрудничество . сообщаться официальный крупный россия нефтяной госкомпания . В рамка сотрудничество сторона рассмотреть реализация совместный проект разведка разработка нефтегазовый месторождение лицензионный участок роснефть проектирование строительство завод сжижение природный газа дальний восток . слово руководитель роснефть сечин договорённость сторона предусматривать обеспечение гарантировать рынок сбыт япония . образ российский компания укрепить позиция рынок азиатско тихоокеанский регион . В очередь marubeni указать что сотрудничество роснефть быть способствовать безопасность энергообеспечение япония регион дальний восток . О что роснефть предложить японский компания marubeni inpex itochu japex sodeco поучаствовать шельфовый проект территория россия сообщаться текущий год когда сечин посетить деловой визит токио . ранний роснефть предложить сотрудничество китай . В конец роснефть подписать китайский нефтегазовый cnpc ряд соглашение энергосфера поставка сырьё россия договор сотрудничество проект восточный сибирь шельф баренцев море печорск бассейн . роснефть газпром являться единственный структура иметь право освоение шельфовый месторождение россия . В год правительство удовлетворить подать компания заявка одобрить выдача лицензия газовый концерн лицензия нефтекомпания . помимо marubeni роснефть привлечь освоение участок royal dutch shell итальянский eni норвежский statoil . |ngramms подписать_меморандум пресс_релиз крупный_в_россия нефтяной_госкомпания В_рамка сотрудничество_сторона совместный_проект нефтегазовый_месторождение дальний_восток дальний_восток _сечин договорённость_сторона рынок_сбыт российский_компания В_свой_очередь быть_способствовать японский_компания текущий_год восточный_сибирь являться_единственный год_правительство компания_заявка одобрить_выдача газовый_концерн освоение_участок англо_голландский +1647 |text китай начать строительство участок газопровод сила сибирь сварка первое стык наметить конец . как сообщение газпром стать итог встреча пекин председатель правление российский холдинг первое заместитель премьера госсовет кнр председатель совет директор китайский национальный нефтегазовый корпорация cnpc ван илинь . неделя строительство газопровод приём газа россия официально стартовать китай сварка первое стык наметить конец сообщение газпром . В российский холдинг что работа российский участок трубопровод восточный маршрут поставка газа китай идти график . строительство магистральный газопровод сила сибирь начаться прошлое год . В год глава газпром пообещать что работа занять год . В конец год газпром cnpc подписать договор поставка российский газа китай восточный маршрут . договор заключить срок год предполагать поставка российский газа кнр объём миллиард кубометр год . стоимость контракт составить миллиард доллар . энергоноситель быть поставляться якутский иркутский центр газодобыча магистральный газопровод сила сибирь . |ngramms начать_строительство участок_газопровод сила_сибирь сила_сибирь сила_сибирь наметить_на_конец наметить_на_конец председатель_правление российский_холдинг российский_холдинг _ _ первое_заместитель председатель_совет_директор китайский_национальный нефтегазовый_корпорация строительство_газопровод работа_на_российский восточный_маршрут восточный_маршрут поставка_газа прошлое_год год_глава что_работа В_конец cnpc_подписать договор_о_поставка российский_газа договор_заключить поставка_российский миллиард_кубометр контракт_составить миллиард_доллар быть_поставляться +1648 |text крупный производитель никель палладий мир компания гмк норникель объявить продажа законсервировать завод австралия инвесткомпание wingstar . сумма сделка не_разглашаться . российский металлургический концерн объявить план закрытие предприятие норильск сообщение компания . актив включать никелевый месторождение завод avalon рудник открытый работа завод cawse связанный инфраструктура . avalon cawse быть перевести ремонтный эксплуатационный режим соответственно год . исполнительный директор компания сообщить что концерн планировать избавиться зарубежный актив исключая завод финляндия . продажа иностранный предприятие мочь принести норникель миллиард доллар . российский металлург месяц активно избавляться зарубежный актив . В начало появиться информация что крупный российский металлургический компания северсталь владелец являться миллиардер мордашов планировать завод сша полтора миллиард доллар . производственный зарубежный актив есть мечело нлмк . лондонский биржа цветной металл начинать год цена основной вид металл снижаться . наибольший падение демонстрировать медь алюминий никель . многолетний падение цена никель начало растить рекордный темп . аналитика связывать рост цена возможный дефицит металл международный санкция отношение россия . |ngramms крупный_производитель сумма_сделка российский_металлургический концерн_объявить горно_перерабатывать горно_перерабатывать быть_перевести исполнительный_директор_компания __сообщить зарубежный_актив зарубежный_актив зарубежный_актив иностранный_предприятие мочь_принести миллиард_доллар миллиард_доллар В_начало появиться_информация металлургический_компания миллиардер_ завод_в_сша лондонский_биржа основной_вид рост_цена возможный_дефицит международный_санкция +1649 |text акционер авиакомпания red wings решить объединить начать подготовка процесс консолидация сообщить лента . . база перевозчик быть создать авиахолдинг единый управлять компания . что пассажирооборот год мочь превысить миллион человек . смена собственник не_планироваться действующий акционер авиакомпания остаться владелец холдинг . авиакомпания год работать состав альянс некоторый время быть работать собственный бренд . как объединение быть завершить холдинг появиться новое название есть начать работать новый авиакомпания . В отмечать что укрупнение бизнес позволить повысить финансовый устойчивость провести обновление самолётный парк создать единый маршрутный сеть целое повысить эффективность работа . авиахолдинг планировать стать заказчик новое российский среднемагистральный самолёт мс . летом год red wings подписать соглашение твёрдый лизинг самолёт мс поступить парк холдинг период год . red wings российский авиакомпания базироваться москва аэропорт домодедово . основать . итог месяц год перевезти миллион пассажир . региональный авиалиния выполнять регулярный чартерный перевозка российский зарубежный аэропорт . занимать ведущий позиция рынок пассажирский авиаперевозка россия . В год авиакомпания перевезти тысяча пассажир . |ngramms акционер_авиакомпания акционер_авиакомпания решить_объединить быть_создать управлять_компания мочь_превысить миллион_человек смена_собственник остаться_владелец год_работать некоторый_время быть_работать быть_завершить появиться_новое начать_работать новый_авиакомпания позволить_повысить создать_единый маршрутный_сеть повысить_эффективность самолёт_мс самолёт_мс российский_авиакомпания год_перевезти миллион_пассажир ведущий_позиция северо_запад авиакомпания_перевезти тысяча_пассажир +1650 |text автоваз запустить серийный выпуск автомобиль lada xray производственный площадка тольятти . релиз поступить редакция лента . . инвестиция проект объём миллиард рубль быть обеспечить госкорпорация вэб . старт продажа lada xray состояться цена комплектация автомобиль быть объявить дополнительно отмечаться сообщение . серийный машина установить пятиступенчатый механический коробка передача двигатель renault nissan объём литр мощность лошадиный сила . В дальнейший можно быть выбрать lada xray роботизированный коробка литровый двигатель . предприятие уточнить лента . что год конвейер сойти порядок автомобиль включая предсерийный образец . план выпуск xray будущий год тысяча машина . начало серийный производство быть выпустить тестовый автомобиль . машина использовать отработка технология сборка настройка система агрегат проверка безопасность надёжность . тестовый сборка xray автоваз запустить год . автомобиль создать рамка сотрудничество альянс renault nissan платформа . внешний облик машина создаваться руководство британский автодизайнер маттина сотрудничать mercedes benz volvo . lada xray быть разработать свыше оригинальный деталь . президент автоваз бу андерссон что уровень локализация производство дать модель составлять процент перспектива планироваться увеличить . минимальный цена машина составить тысяча рубль точный стоимость предприятие не_раскрывать . В автоваз площадка ижевск начать серийный производство новинка lada vesta . андерссон отмечать что компания отложить выпуск vesta кузов хэтчбек сосредоточиться седан . производство vesta cross кузов универсал начаться год . конец год планироваться выпустить тысяча автомобиль vesta . В глава автоваз заявлять план нарастить выпуск автомобиль благодаря новый модель vesta xray продвигать продукция внешний рынок повышать уровень локализация . фон продолжаться падение спрос автомобиль продажа lada месяц год сократиться треть тысяча машина свидетельствовать дать ассоциация европейский бизнес аеб . |ngramms серийный_выпуск автомобиль_lada производственный_площадка поступить_в_редакция инвестиция_в_проект миллиард_рубль быть_обеспечить госкорпорация_вэб продажа_lada продажа_lada быть_объявить отмечаться_в_сообщение В_дальнейший можно_быть тысяча_машина тысяча_машина серийный_производство серийный_производство быть_выпустить создать_в_рамка альянс_renault быть_разработать бу_андерссон дать_модель минимальный_цена тысяча_рубль lada_vesta что_компания производство_vesta год_планироваться тысяча_автомобиль выпуск_автомобиль новый_модель свидетельствовать_дать ассоциация_европейский_бизнес +1651 |text В продажа бренд lada впервые год показать положительный динамик аналогичный период прошлое год . сообщение сайт автоваз . месяц россия быть автомобиль волжский автозавод что процент большой год процент большой . предварительный оценка доля марка российский рынок достигнуть процент отмечаться сообщение . наибольший спрос год пользоваться модель lada granta lada vesta lada xray . продажа lada vesta вырасти процент сравнение продажа xray выйти рынок увеличиться процент . В отмечаться что предварительный подсчёт lada granta стать лидер апрельский рейтинг продавать автомобиль отечественный рынок . итог модель занять третье место . сообщаться что автоваз мочь поднять цена новое модель седан lada vesta кроссовер xray . предполагаться что машина подорожать процент зависимость комплектация . В месяц агентство автостат опубликовать исследование согласно средневзвешенный цена новое легковой автомобиль lada год вырасти процент отношение первое квартал год первое квартал год . В начало автоваз сообщить что предприятие перейти работа сократить график конвейер выпуск модель kalina granta priora . корректировка объём выпуск связать снижение заказ дилер . сообщаться что итог российский рынок легковой машина опуститься место европа уступить итальянский . продажа составить тысяча автомобиль учёт лёгкое коммерческий транспорт . В отечественный рынок продемонстрировать наименьший падение месяц занять место . |ngramms аналогичный_период_прошлое_год процент_большой процент_большой доля_марка отмечаться_в_сообщение модель_lada lada_vesta lada_vesta lada_vesta пресс_релиз стать_лидер третье_место новое_модель новое_легковой автомобиль_lada первое_квартал первое_квартал В_начало объём_выпуск что_по_итог российский_рынок легковой_машина место_в_европа продажа_составить тысяча_автомобиль лёгкое_коммерческий отечественный_рынок +1652 |text В калифорния умереть отцов основатель кремниевый долина передавать . быть год . быть соучредитель венчурный предприятие kleiner perkins caufield byers сыграть важный роль становление компьютерный биотехнологический промышленность . фирма носить имя способствовать становление как google amazon . инвестирование фирма разработчик фармацевтический препарат genentech помочь подтолкнуть развитие биотехнологический промышленность зародиться кремниевый долина год . играть центральный роль становление развитие фирма как tandem computers compaq computer lsi logic работать руководящий орган ряд компания отрасль hewlett packard . стать объект резка критика год когда страница wall street journal приравнять движение occupy слово демонизировать богатый нацист преследовать еврей . поздний бизнесмен извиниться аналогия венчурный фирма носить имя предпочесть дальнейший дистанцироваться . год вступить брак писательница стить стать жена . краткий брак написать секс богач одиночка опубликовать год . |ngramms _ сыграть_важный интернетом_гигант _играть ряд_компания поздний_бизнесмен написать_ +1653 |text судоходный компания совкомфлот кандидат приватизация год . интервью bloomberg tv заявить глава минэкономразвития максим передавать агентство . чиновник что государство продолжить последовательно снижать доля компания . заявить что необходимость приватизация банка втб нынешний год нет . В прошлое год глава росимущество пристанск что процент минус акция совкомфлот войти план приватизация год . минфин оценивать стоимость пакет миллиард рубль . В конец минфин минэкономразвития обсуждать расширение программа приватизация миллиард рубль ежегодно ближний год . слово чиновник приватизационный план год входить втб совкомфлот . крупный приватизационный сделка год стать продажа процентный пакет акция роснефть миллиард рубль . В быть подписать соглашение продажа акция компания международный консорциум состав суверенный фонд qatar investment autority трейдер glencore . приобретение ценный бумага профинансировать счёт собственный средство инвестор привлечение банковский финансирование . собственный капитал инвестор компания приобретатель составить миллиард евро . основный кредитор консорциум ряд банк выступить banca intesa sanpaolo . |ngramms заявить_глава максим_ передавать_агентство что_государство вице_премьер __заявить банка_втб прошлое_год глава_росимущество план_приватизация оценивать_стоимость миллиард_рубль миллиард_рубль миллиард_рубль В_конец расширение_программа год_стать пакет_акция быть_подписать соглашение_о_продажа акция_компания международный_консорциум ценный_бумага собственный_средство привлечение_банковский миллиард_евро основный_кредитор ряд_банк +1654 |text банк россия приостановить действие лицензия ск восхождение страховать ответственность турфирма нева . В компания назначить временной администрация . сообщать ссылка дать регулятор . решение неисполнение предписание . цель указанный мера являться обеспечение сохранность имущество страховщик выполнение обязательство договор страхование требование кредитор сообщение цб . приостановление действие лицензия означать запрет страховой организация заключение новый договор страхование внесение изменение влечь увеличение обязательство действующий договор . страховой организация обязать заявление наступление случай исполнять обязательство указывать цб . регулятор решение назначение временной администрация компания приостановление полномочие исполнительный орган страховщик . банк россия осуществлять контроль деятельность временной администрация . как сообщаться страховщик обратиться выплата тысяча человек . компания необходимый быть выплатить компенсация тысяча турист не_смочь отправиться путешествие . эксперт страховой сумма нева не_хватить выплата пострадавший клиент туроператор . нева быть застраховать восхождение сумма миллион рубль . заявление нева банкротство размер уставный капитал компания составлять миллион рубль . система спарк уставный капитал восхождение быть увеличить миллион рубль год . год появиться запись реестр юридический лицо егрюла появление новое генеральный директор . являться генеральный директор ооо заниматься финансовый посредничество . регистр предприятие организация генеральный директор ск как являться питерский . зао ск восхождение универсальный страховой компания основать год . компания не_входить главный отраслевой объединение всероссийский союз страховщик всс малоизвестный рынок . В год банка россия компания сбор входить сотня российский страховщик . брутто премия год составить миллион рубль чистый прибыль миллион рубль . |ngramms банк_россия банк_россия приостановить_действие В_компания временной_администрация временной_администрация временной_администрация мера_являться договор_страхование договор_страхование требование_кредитор действие_лицензия означать_запрет страховой_организация страховой_организация действующий_договор исполнять_обязательство указывать_цб исполнительный_орган как_сообщаться тысяча_человек необходимый_быть выплатить_компенсация тысяча_турист страховой_сумма пострадавший_клиент миллион_рубль миллион_рубль миллион_рубль миллион_рубль миллион_рубль уставный_капитал уставный_капитал компания_составлять появиться_запись юридический_лицо генеральный_директор генеральный_директор генеральный_директор _ страховой_компания всероссийский_союз банка_россия год_составить чистый_прибыль +1655 |text корпорация google запустить собственный служба доставка название google shopping express . сообщать . что сервис доступный часть житель проживать ряд одноимённый залив . доставка осуществляться заказ иной товар . месяц google тестировать новый услуга закрытый режим предлагать сотрудник открыть публика . В полгода услуга google shopping express быть бесплатный впоследствии корпорация планировать взимать нея плата . сколько быть стоить доставка неизвестно . как сообщать techcrunch не_исключить что google попробовать конкурировать цена amazon установить стоимость доставка уровень доллар год . В торговый сеть участвовать новый сервис google крупный target office depot staples toys R местный фирма blue bottle coffee palo alto toy sport . В поисковик пригласить сотрудничество торговый компания . как отмечать выходить рынок google столкнуться довольно серьёзный конкурент . прошлое год ebay запустить сеть wal mart тестировать аналогичный сервис название walmart город . |ngramms корпорация_google запустить_собственный сан_франциско сан_франциско новый_услуга закрытый_режим услуга_google быть_бесплатный быть_стоить как_сообщать стоимость_доставка торговый_сеть новый_сервис торговый_компания как_отмечать экспресс_доставка экспресс_доставка нью_йорк +1656 |text глава российский союз промышленник предприниматель рсппа предложить ограничить возможность перепродажа акция башнефть приватизация . заявить кулуар форум россия передавать rambler service . быть неплохо объявить мораторий второе шаг возвращать актив государство . В случай продажа госпакет акция башнефть мнение наиболее предпочтительный покупатель являться крупный компания тип лукойл . перепродавать актив не_быть крайний мера ближний год уверенный глава рсппа . президент россия подписать указ исключать башнефть список стратегический предприятие позволить осуществить приватизация государственный пакет акция компания . В настоящее время государство владеть процент голосовать акция процент уставный капитал башнефть республика башкирия принадлежать процент голосовать акция процент уставный капитал . продажа акция башнефть стоить план приватизация год . покупка госпакет акция интересоваться лукойл татнефтегаз китайский cnpc . В середина год министр экономический развитие что власть рассматривать вариант приватизация компания . подчёркивать что минэкономразвития не_видеть смысл размещение биржа небольшой пакет десять процент . целесообразный полагать мэр предлагать частное инвестор блокировать пакет . финальный вариант приватизация компания предполагаться утвердить исходить предложение банк консультант . В год решение суд процент акция башнефть быть возвратить собственность государство обнаружить нарушение приватизация компания год . судебный решение владелец ценный бумага быть афк система . |ngramms российский_союз __предложить rambler_news_service В_случай госпакет_акция госпакет_акция являться_крупный президент_россия__ подписать_указ стратегический_предприятие приватизация_государственный пакет_акция_компания В_настоящее_время государство_владеть голосовать_акция голосовать_акция уставный_капитал уставный_капитал продажа_акция план_приватизация В_середина министр_экономический_развитие власть_рассматривать приватизация_компания приватизация_компания что_минэкономразвития десять_процент частное_инвестор решение_суд процент_акция обнаружить_нарушение судебный_решение ценный_бумага быть_афк +1657 |text главный инженер компания россеть уволить массовый отключение электричество вызвать ледяной дождь . сообщить новость директор департамент оперативный контроль управление электроэнергетика минэнерго . не_уточнить имя снятой должность сотрудник . что авария электросеть быть уволить работник многий компания включая руководство . произойти увольнение мрск сибирь выговор фск недостаточный объём провести мероприятие директор департамент . слово чиновник кадровый решение компания быть основание провести минэнерго мониторинг деятельность . согласно сообщение сайт россеть главное инженер являться . компания проинформировать что должность освободить назначить исполнять обязанность главный инженер . как отмечать новость московский калужский область происходить массовый отключение электроэнергия вызвать таяние гололёд ледяной дождь . осадка выпалить центральный приволжский федеральный округа . В территория обрушиться снегопад . В подмосковье обрыв линия электропередача быть обесточить населить пункт . особенно острый ситуация сложиться дмитровский район напоминать телеканал москва . столичный регион калужский владимирский тверская нижегородский кировский область свет оставаться тысяча населить пункт где проживать тысяча человек . как сообщать dni.ru ледяной дождь стать причина сбой работа транспорт москва . быть нарушить движение пригородный поезд автомобильный дорога возникнуть пробка девять балл . |ngramms директор_департамент директор_департамент _ _ быть_уволить согласно_сообщение являться__ исполнять_обязанность как_отмечать федеральный_округа столичный_регион где_проживать тысяча_человек как_сообщать стать_причина быть_нарушить автомобильный_дорога +1658 |text стоимость акция роснефть начало торговый сессия обновить исторический максимум зафиксировать год выход сильный отчёт квартал полугодие год . сообщать интерфакс . предыдущий ценовый максимум быть зафиксировать год составить рубль бумага . К московский время акция роснефть московский биржа подорожать рубль штука рост процент . бумага скорректироваться рубль согласно московский биржа подняться рубль . объесть торг превысить миллион рубль . капитализация роснефть достигнуть триллион рубль выйти место сбербанк триллион рубль . рост стоимость акция роснефть способствовать опубликовать отчётность компания квартал первое полугодие год . согласно представить чистый прибыль роснефть второе квартал вырасти миллиард рубль полугодие увеличиться миллиард рубль что превысить прогноз . полугодовой прибыль роснефть позволять ожидать дивиденд первое полугодие порядок рубль акция . дивидендный политика компания предполагать выплата дивиденд размер процент чистый прибыть год . акционер роснефть годовой собрание утвердить дивиденд год размер рубль акция . С учёт дивиденд итог первое полугодие год рубль копейка акция суммарный дивиденд роснефть год составить рубль . квартал стать многое отражение усилие менеджмент повышение эффективность работа компания . благодаря улучшение макроусловие сохранение высокий контроль операционный капитальный затрата операционный прибыль амортизация процент налог увеличиться процент отношение первое квартал процент второе квартал прошлое год председатель правление главный исполнительный директор пао нк роснефть сечин комментировать результат отчётность компания квартал год . что время основной стратегический приобретение осуществить период низкий цена нефть завершить . компания сосредоточить органический рост монетизация синергия приобрести актив подчеркнуть председатель правление роснефть . |ngramms стоимость_акция стоимость_акция торговый_сессия быть_зафиксировать рубль_за_штука московский_биржа торг_превысить миллион_рубль триллион_рубль триллион_рубль отчётность_компания отчётность_компания первое_полугодие первое_полугодие первое_полугодие чистый_прибыль миллиард_рубль миллиард_рубль выплата_дивиденд чистый_прибыть годовой_собрание год_в_размер С_учёт год_составить повышение_эффективность капитальный_затрата операционный_прибыль первое_квартал второе_квартал прошлое_год председатель_правление председатель_правление исполнительный_директор _сечин комментировать_результат цена_на_нефть +1659 |text первое место рейтинг forbes король госзаказ занять владелец уфимский проектный институт нефть газа нипеть нг петон мнушкина . В список опубликовать издание войти собственник компания получить крупный господряд год . выручка компания петон итог год составить миллиард рубль отмечать forbes . получать небольшой подряд структура газпром год прошлое год конкурс достаться крупный заказ . контракт строительство комплекс производство хранение отгрузка сжидить природный газа район компрессорный станция портовый ленинградский область миллиард рубль . строительство установка стабилизация конденсат ачимовский залежь ямал миллиард рубль . мнение составитель рейтинг размер компания петон сопоставимый объём получить подряд . forbes отмечать стремление газпром отдавать миллиард контракт неизвестный малоизвестный компания . В предприятие томскпромтранс штат сотрудник получить подряд миллиард рубль строительство объект сила сибирь . особенность год мнение издание что подавлять большинство крупный государственный заказ быть раздать имитация конкурентный борьба . В год счётный палата рф обнародовать результат проверка система госзакупка . контрольный ведомство девять месяц прошлое год сфера выявить тысяча факт нарушение сумма миллиард рубль . большой аналогичный период год . объесть госзакупка составить триллион рубль превысить показатель девять месяц прошлое год триллион рубль . закупка единственный поставщик снизиться сравнение прошлое год процент . |ngramms первое_место научно_исследовательский __и__ В_список собственник_компания выручка_компания год_составить миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль сжидить_природный ленинградский_область получить_подряд forbes_отмечать _ сила_сибирь конкурентный_борьба палата_рф результат_проверка контрольный_ведомство девять_месяц девять_месяц прошлое_год прошлое_год прошлое_год факт_нарушение аналогичный_период триллион_рубль триллион_рубль единственный_поставщик +1660 |text крупный производитель косметика мир компания L oreal договориться покупка китайский концерн magic holding international миллиард гонконгский доллар миллион доллар сша сообщать bloomberg . французский компания заплатить акция гонконгский доллар четверть большой текущий рыночный стоимость . сделка быть осуществляться счёт денежный средство . финансовый консультант L oreal банк bnp paribas предложить компания кредит миллион евро случай потребоваться внешний финансирование покупка . приобретение сделать L oreal крупный косметический бренд китай где продажа соответствующий продукт текущий год вырастить процент миллиард доллар . magic holdings продавать продукция бренд mg являться крупный производитель маска лицо кнр . компания контролировать четверть рынок . чистый прибыль второе полугодие год вырасти процент миллион доллар сша . L oreal пришлый китай год . компания страна работать человек . объесть продажа мир составлять миллиард доллар . |ngramms крупный_производитель крупный_производитель компания_L договориться_о_покупка миллион_доллар миллион_доллар сообщать_bloomberg французский_компания рыночный_стоимость быть_осуществляться денежный_средство миллион_евро финансирование_покупка миллиард_доллар миллиард_доллар продавать_продукция чистый_прибыль компания_в_страна +1661 |text чеченавто начаться серийный сборка автомобиль lada granta . что партия машина сойти конвейер . сообщить глава чечня ссылка генеральный директор предприятие сайда . В год рассчитывать что конвейер завод сойти автомобиль granta . думать что партия поступить рынок . В направлять сотрудник профподготовка тольятти . параллельно вестись переговоры автоваз поставка оборудование рассказать глава предприятие . сообщить что компания готовиться производство автомобиль модель lada vesta . руководитель предприятие что завод иметь соглашение автоваз согласно чеченавто мочь выпускать модель lada . производить предприятие автомобиль реализоваться рынок субъект . спрос высокий что многое объяснять резкий рост производство пояснить . единственный проблема заключаться слово дефицит оборотный средство предприятие необходимый подготовка специалист закупка оборудование . исходить возможность производитель учитывать потребность рынок ближний перспектива чеченавто решить ограничиться сборка автомобиль granta vesta . В настоящее время чеченавто проводиться конвейерный сборка автомобиль lada priora . конец год предприятие планировать выпустить тысяча автомобиль модель . рейтинг наиболее популярный модель россия granta возглавлять год . итог продажа год модель уступить первенство российский рынок hyundai solaris . как сообщить автоваз итог месяц россия быть тысяча машина lada granta . ассоциация европейский бизнес продажа дать модель составить тысяча штука . образ быть реализовать тысяча lada granta . |ngramms автомобиль_lada автомобиль_lada пресс_служба генеральный_директор _ В_это_год рассказать_глава _также_сообщить что_компания производство_автомобиль lada_vesta руководитель_предприятие что_завод модель_lada резкий_рост пояснить_ средство_предприятие сборка_автомобиль В_настоящее_время планировать_выпустить тысяча_автомобиль наиболее_популярный тысяча_машина ассоциация_европейский_бизнес дать_модель тысяча_штука быть_реализовать +1662 |text газпром фон снижение цена нефть задуматься пересмотр контракт поставка газа китай . идти изменение стоимость топливо быть транспортироваться западный маршрут . сообщить генеральный директор газпром экспорт передавать интерфакс . находиться переговоры . В обсуждать цена что время произойти не_побояться слово драматический изменение рынок сообщить . не_прислать соглашение преждевременно давать комментарий . естественно сторона существовать разный позиция как выглядеть цена . думать что состояние найти компромисс . гендиректор газпром экспорт подчеркнуть что нынешний цена нефть район доллар баррель контракт убыточный не_являться . что договор заключить год страна потребление топливо быть растить . В начало глава российский холдинг сообщить что меморандум поставка газа китай газпром китайский национальный нефтегазовый компания cnpc предусматривать маршрут помимо восточный западный . соглашение основный условие поставка газа западный маршрут газпром китайский корпорация cnpc подписать . проект предусматривать поставка китай газа месторождение западный сибирь объём миллиард кубометр год . предполагаться что поставка газа быть осуществляться газопровод алтай . |ngramms цена_на_нефть цена_на_нефть поставка_газа поставка_газа поставка_газа поставка_газа стоимость_топливо западный_маршрут западный_маршрут генеральный_директор газпром_экспорт газпром_экспорт _ _ давать_комментарий существовать_разный доллар_за_баррель договор_заключить российский_холдинг __сообщить нефтегазовый_компания основный_условие cnpc_подписать поставка_в_китай западный_сибирь миллиард_кубометр быть_осуществляться +1663 |text правительство сирия готовый предоставить максимальный льгота российский компания собираться участвовать восстановление экономика страна . заявить посол республика россия сообщать новость . правительство сирия соответствующий организация получить необходимый указание президент быть предоставить различный максимальный льгота российский коллега быть участвовать восстановление экономика сирия страна занять позиция занимать война . целое отрасль сирийский экономика разрушить посол . выразить надежда что российский бизнес помочь восстановить . В год заявить что российский компания смочь претендовать преференция льгота заключение контракт сирия . С начало гражданский война сирия год погибнуть разный оценка тысяча полмиллиона человек миллион быть вынудить бежать страна . российский вооружённый сила год помогать действующий президент борьба различный группировка включая запретить россия исламский государство . |ngramms правительство_сирия готовый_предоставить максимальный_льгота максимальный_льгота российский_компания экономика_страна _ сообщать_риа_новость получить_необходимый президент__ президент__ быть_предоставить российский_коллега восстановление_экономика выразить_надежда что_российский вице_премьер __заявить что_российский_компания заключение_контракт С_начало гражданский_война разный_оценка быть_вынудить вооружённый_сила +1664 |text правительственный комиссия контроль иностранный инвестиция рф отложить рассмотрение сделка поглощение американский general electric ge российский подразделение французский компания alstom . сообщать интерфакс . В россия есть подразделение компания alstom альстома . обсуждаться вопрос санкционировать комиссия поглощение российский компания дочерний alstom смочь ge получить контроль альстома россия . сделка отложить быть рассматриваться ближний месяц заявить глава федеральный антимонопольный служба фас итог заседание комиссия председательство рф . глава фас пояснить что альстома являться владелец контролировать целый ряд компания работать российский атомный промышленность . росатом компания alstom оценить возможный последствие сделка . слово необходимый дополнительный проработка последствие сделка российский национальный атомный промышленность . general electric объявить намерение приобрести французский alstom год . корпорация конкурировать борьба актив немецкий siemens японский mitsubishi . французский правительство первоначально не_хотеть продавать alstom американец . впоследствии предложение ge быть пересмотреть сторона выгодность франция приобретать компания . alstom являться крупный мир производитель железнодорожный транспорт энергетический оборудование . В год компания быть спасти банкротство правительство франция . |ngramms американский_general российский_подразделение французский_компания В_россия подразделение_компания российский_компания быть_рассматриваться заявить_глава федеральный_антимонопольный_служба _ заседание_комиссия премьер_министр рф__ глава_фас являться_владелец ряд_компания атомный_промышленность атомный_промышленность объявить_о_намерение являться_один_из_крупный железнодорожный_транспорт год_компания_быть +1665 |text крупный российский компания год понадобиться гражданский судно сумма триллион рубль . как сообщать заявить президент . слово значительный портфель заказ сформировать госкомпания как роснефть газпром совкомфлот суд понадобиться перевозка освоение шельфовый месторождение . российский заказчик следовать строить техника российский верфь подчеркнуть . надо обеспечивать рабочий место налогооблагаемый база граница . не_забывать где работать напомнить президент . гражданский сектор судостроение россия отличие военный целое проигрывать конкурентный борьба иностранец признать . слово отечественный судостроитель необходимый повысить эффективность освоить производство новый тип судно снизить издержка . президент качество пример привести трудозатрата российский верфь выше ведущий мировой производитель . утром газета коммерсантъ сообщить что объединить судостроительный корпорация мочь произойти серьёзный изменение недовольство деятельность холдинг . В газета анонсировать отставка вознесенский гендиректор компания балтийский завод судостроение . бзс управлять балтзавод суть единственный предприятие оск способный строить атомный ледокол . немногий сообщаться что роснефть газпром мочь получить процент акция структура получить контроль судоремонтный завод строиться суперверфь звезда получить заказ суд шельфовый проект нефтяной газовый госкомпания . заявить что предложение передать верфь крупный заказчик не_лишить смысл . звезда позиционироваться как ключевой проект оск холдинг мочь лишиться контроль верфь задержка строительство . |ngramms крупный_российский_компания триллион_рубль как_сообщать президент__ портфель_заказ подчеркнуть_ рабочий_место конкурентный_борьба повысить_эффективность производство_новый снизить_издержка мировой_производитель мочь_произойти серьёзный_изменение отставка_ гендиректор_компания мочь_получить процент_акция _заявить что_предложение крупный_заказчик мочь_лишиться +1666 |text сын глава объединить авиастроительный корпорация оак назначить старший экономика финансы компания гражданский самолёт сухой производить sukhoi superjet принадлежать оак . номер писать газета ведомость ссылка неназванный источник . получить новый должность . сотрудник контрагент гсс рассказать издание что участвовать переговоры партнёр произвести впечатление вменяемый специалист . сын глава оак окончить высокий школа экономика год защитить кандидатский диссертация московский авиационный институт мая . источник учебный заведение заверить что защита диссертация административный ресурс не_использоваться . информация газета мая учиться сын . гсс взять артем работа год . новое назначение работать директор оперативный анализ экономический контроль год дорасти заместитель старший экономика финансы . информация источник издание год заниматься продвижение самолёт мс магистральный самолёт xxi век сша . гсс производить авиалайнер sukhoi superjet разработка российский советский авиастроитель . итог год чистый убыток компания составить миллиард рубль миллион доллар . В половина год убыток сравнение аналогичный период год вырасти миллион доллар . |ngramms _ _ _ сын_глава сын_глава объединить_авиастроительный_корпорация вице_президент вице_президент финансы_компания гражданский_самолёт_сухой sukhoi_superjet sukhoi_superjet писать_газета новый_должность рассказать_издание топ_менеджер школа_экономика административный_ресурс сын_ новое_назначение источник_издание самолёт_мс разработка_российский чистый_убыток компания_составить миллиард_рубль миллион_доллар миллион_доллар год_вырасти +1667 |text роспотребнадзор начать проверка мучной кондитерский продукция произвести украина . заявить руководитель ведомство передавать новость . главный санитарный врач россия не_уточнить продукция какой компания проходить проверка . объявить что роспотребнадзор решить усилить контроль мучной кондитерский изделие украинский компания росить roshen . В идти продукция roshen выпустить литовский венгерский фабрика корпорация . роспотребнадзор ввести запрет поставка россия кондитерский изделие произвести украинский фабрика roshen киевский винницкий мариупольский кременчугский . незадолго ведомство провести проверка продукция компания выявить нарушение качество . В молочный шоколад roshen быть обнаружить бензпирен обладать канцерогенный свойство . К продукция roshen выпустить российский предприятие санитарный ведомство претензия не_возникнуть . В roshen заявлять что не_получать роспотребнадзор официальный документ претензия качество продукция компания ввести запрет импорт сладость россия . В федеральный таможенный служба сообщать что не_получать роспотребнадзор письмо указание запрет поставка продукция украинский фирма . |ngramms начать_проверка кондитерский_продукция ведомство__ передавать_риа_новость _объявить кондитерский_изделие кондитерский_изделие украинский_компания продукция_roshen продукция_roshen запрет_на_поставка украинский_фабрика провести_проверка продукция_компания выявить_нарушение молочный_шоколад быть_обнаружить качество_продукция таможенный_служба поставка_продукция +1668 |text первоочередной задача газпром являться создание совместный предприятие роснефть освоение участок арктический шельф мор привлечение иностранный партнёр . заявить зампред правление газовый концерн передавать . В стать что газпром роснефть стать претендент участок арктический шельф . В конец минприрода сообщить что участок карский мор амдерминский обручевский шараповский северный харасавэйский ленинградский месторождение бороться компания получить газовый концерн . министр природный ресурс донский отмечать что участок мор скорее быть раздельный компания пополам . газпром роснефть являться единственный компания иметь право вести добыча российский шельф законодательство лицензия месторождение мочь получить организация где государство принадлежать половина акция иметься опыт работа шельф год . В начало текущий год правительство удовлетворить подать компания заявка шельфовый месторождение одобрить выдача газпром лицензия участок шельф роснефть участок . роснефть привлечь освоение шельфовый месторождение ряд иностранный партнёр royal dutch shell итальянский eni норвежский statoil . В конец нефтяной компания подписать соглашение сотрудничество шельф японский inpex . |ngramms являться_создание освоение_участок арктический_шельф арктический_шельф восточно_сибирский восточно_сибирский привлечение_иностранный зампред_правление газовый_концерн газовый_концерн _ В_конец В_конец западно_шараповский природный_ресурс являться_единственный иметь_право мочь_получить половина_акция опыт_работа В_начало текущий_год одобрить_выдача иностранный_партнёр англо_голландский нефтяной_компания +1669 |text инвестиция размер миллиард доллар расширение панамский канал начать окупаться . существенно вырасти поток груз сша следующий маршрут вместо суэцкий канал . сообщать wall street journal . издание напоминать что панамский канал возобновить работа год . благодаря расширение пропускной способность увеличиться . В настоящее время канал способный пропускать суд panamax вмещать тысяча контейнер . большой быть . В начало панамский канал пройти тысяча контейнеровоз класс panamax . совокупный тоннаж судно прошедшее канал начало год вырасти четверть сравнение аналогичный период . wall street journal отмечать что доставлять груз азия морской путём порт восточный побережье сша включая дешёвый быстрый . транспортный маршрут выстраиваться порт западный побережье оттуда контейнер груз энергоноситель отправляться восток сша железнодорожный автомобильный транспорт материк . панамский канал открытый год соединять тихий океан карибский море атлантический океан . В год быть решить построить новое шлюзовый ворот . реконструкция закончиться год . |ngramms инвестиция_в_размер миллиард_доллар существенно_вырасти wall_street_journal В_настоящее_время В_начало морской_путём нью_йорк транспортный_маршрут автомобильный_транспорт год_быть решить_построить +1670 |text дочерний компания ростех рт глобальный ресурс выиграть тендер строительство первое уганда нефтеперерабатывающий завод нпз . сообщение госкорпорация поступить редакция лента . . инвестиция проект составить миллиард доллар . российский консорциум глава рт глобальный ресурс объединение входить татнефть втб капитал быть принадлежать процент акция завод собственник процент стать правительство уганда . предприятие построить запад страна недалеко озеро . планироваться что выход полный мощность нпз быть перерабатывать тысяча баррель нефть есть миллион тонна год . уганда стратегически важный объект поскольку страна не_иметь выход море экономика испытывать существенный зависимость внешний поставщик . что перспектива топливо предприятие быть поставляться соседний страна восточный центральный африка не_иметь собственный нефтепереработка . слово гендиректор ростех чемезов создание нпз быть привлекаться международный подрядчик опыт реализация подобный проект приоритет быть отдаваться российский технология . тендер претендовать компания консорциум . стадия подача заявка помимо дочка ростех дойти китайский china petroleum pipeline bureau японский marubeni corporation британский petrofac южнокорейский sk energy нидерландский vitol . |ngramms дочерний_компания глобальный_ресурс глобальный_ресурс выиграть_тендер нефтеперерабатывающий_завод поступить_в_редакция инвестиция_в_проект миллиард_доллар втб_капитал быть_принадлежать процент_акция нпз_быть нпз_быть тысяча_баррель миллион_тонна быть_поставляться страна_восточный международный_подрядчик подобный_проект российский_технология подача_заявка китайский_china +1671 |text почта россия мочь создать экспортный торговля отечественный товар . как сообщать заявить генеральный директор фгуп страшновый . рассматривать возможность онлайн торговля что представленность территория россия высокий обеспечивать услуга процент население страна . канал мочь являться основный зрение проникновение страшновый . возможность создание торговля почта россия иметься выразить уверенность гендиректор предприятие . В время что срок реализация проект не_определить . В год правительство одобрить идея создание почтовый банка быть работать отделение почта россия . цель создание финансовый организация заключаться дать возможность население регион получать банковский услуга отделение почта россия . предполагаться что банк заработать год . |ngramms почта_россия почта_россия почта_россия почта_россия мочь_создать интернет_магазин отечественный_товар генеральный_директор фгуп_ население_страна являться_основный интернетом_площадка гендиректор_предприятие В_то_же_время срок_реализация год_правительство идея_создание почтовый_банка финансовый_организация дать_возможность банковский_услуга что_банк +1672 |text партия автомобиль lada быть поставить куб текущий год . заявить глава автоваз мор передавать . В год автопроизводитель анонсировать начать поставка автомобиль куб . мор уточнять что идти модель vesta largus . обсуждать кубинский министерство транспорт тестовый поставка объём примерно автомобиль цель проверить реакция рынок . машина отправить обкатка таксомоторный парка туристический компания фирма прокат . итог тест куб мочь решение поставка российский автомобиль . В случай контракт рассчитывать подписать год . глава автоваз подчёркивать что российский автоконцерн продавать остров новое машина год хотеть вернуть рынок . год министр промышленность торговля россия мантур заявить что волжский автозавод не_нуждаться дополнительный поддержка государство . |ngramms автомобиль_lada быть_поставить текущий_год _мор начать_поставка министерство_транспорт туристический_компания что_российский промышленность_и_торговля россия_ мантур_заявить поддержка_государство +1673 |text исследовательский холдинг ромиро рассчитать индекс известность доверие ведущий госкомпания . итог опрос население выясниться что большой россиянин доверять аэрофлот . сообщаться сайт холдинг . показатель группа аэрофлот пункт опередить лидер прошлое рейтинг сбербанк . третье место уровень доверие сохранить российский железный дорога ржд . четвертовать строчка занять газпром объединить авиастроительный корпорация . рейтинг известность возглавить сбербанк следовать газпром ржд роснефть аэрофлот . международный исследование ценность бренд репутационный рейтинг проводиться мир регулярно . И крайне важный условие жёсткий конкуренция рынок . известность компания мочь быть обусловить объём рекламный кампания степень публичность доверие не_купить . доверять потребитель компания бренд годами показывать высокий уровень качество сервис продукт президент холдинг ромиро gallup international милехина . исследование холдинг ромиро быть отобрать двадцатка крупный компания госучастие размер выручка оказаться газпром роснефть сбербанк ржд втб ростёха росатом интер рао транснефть россеть газпромбанк башнефть аэрофлот объединить авиастроительный корпорация внешэкономбанк русгидро ростелеком объединить судостроительный корпорация алрос россельхозбанк . индекс заметность доверие рассчитываться международный методика gri global reputation . |ngramms российский_железный_дорога строчка_занять объединить_авиастроительный_корпорация объединить_авиастроительный_корпорация крайне_важный компания_мочь_быть рекламный_кампания высокий_уровень вице_президент +1674 |text акция камаз принадлежащий консорциум инвестор управление выкупить государство вэб российский фонд прямая инвестиция ростёха . как сообщать новость заявить глава госкорпорация чемезов . деталь возможный сделка руководитель не_уточнить . консорциум инвестор управление владеть бумага кипрский avtoinvest limited процент decodelement services limited процент уточнять новость . информация газета ведомость структура принадлежать процент голосовать акция . крупный пакет акция камаз процент принадлежать ростех . торг московский биржа предполагать продажа пакет размер процент мочь стоить миллиард рубль . пора основный претендент акция камаз принадлежащий офшорный структура бывший собственник тройка диалог быть автоконцерн daimler . компания являться акционер российский завод принадлежать доля размер процент акция . В время daimler являться стратегический партнёр камаз вести переговоры покупка дополнительный пакет акция ростех . В прошлое год чемезов заявлять что сделка планироваться завершить конец год . информация глава ростех daimler хотеть увеличить доля процент . сохраняться план продажа акция немецкий концерн чемезов не_уточнить . В конец гендиректор камаз объявить что акционер завод решить начать юридический процедура перевод акция российский юрисдикция . заявление руководитель прозвучать выступление президент послание федеральный собрание . В немой глава государство посетовать низкий темп деофшоризация . предложить новое мера борьба уклонение уплата налог . слово зарегистрировать рубеж российский фирма необходимый лишить государственный поддержка . |ngramms консорциум_инвестор консорциум_инвестор _ российский_фонд прямая_инвестиция сообщать_риа_новость глава_госкорпорация возможный_сделка голосовать_акция пакет_акция пакет_акция миллиард_рубль являться_акционер российский_завод доля_в_размер процент_акция стратегический_партнёр вести_переговоры В_прошлое_год что_сделка планироваться_завершить увеличить_доля продажа_акция немецкий_концерн В_конец __объявить что_акционер юридический_процедура заявление_руководитель федеральный_собрание В_немой глава_государство _предложить уплата_налог российский_фирма государственный_поддержка +1675 |text акционер vimpelcom . внеочередной собрание состояться одобрить переименование холдинг veon . образ депозитарный расписка компания быть торговаться nasdaq тиккер veon сообщать интерфакс . слово глава компания ива шарлье отражать стремление преобразование телекоммуникационный компания глобальный технологический лидер . как заявить компания вымпелком решение переименование касаться vimpelcom . идти vimpelcom . российский пао вымпелком бренд билайн подчеркнуть . холдинг veon бывший vimpelcom . количество абонент телекоммуникационный компания мир обслуживающий миллион пользователь страна . основной актив процент российский оператор мобильный вымпелком украинский киевстарый итальянский оператор wind telecomunicazioni процент global telecom . |ngramms компания_быть глава_компания_ телекоммуникационный_компания телекоммуникационный_компания пресс_секретарь _ миллион_пользователь основной_актив российский_оператор итальянский_оператор +1676 |text болгарский комиссия защита конкуренция обвинить лукойл болгария shell болгария omv болгария nis petrol сербский дочерний предприятие газпром нефть petrol ad ценовый сговор . сообщать rambler service ссылка дать комиссия . мнение болгарский антимонопольный комиссия компания нарушить закон защита конкуренция договор функционирование европейский союз tfeu . надзорный орган обвинить предприятие проведение единый ценовый политика обмен информация продажа дать . действие мнение комиссия привести искажение конкурентный рынок розничный продажа бензин дизельный топливо страна . основа собственный экономический правовой анализ комиссия считать что действие вышеназванный компания преследовать предотвращение ограничение искажение конкуренция рынок розничный торговля автомобильный дизельный топливо страна сообщение . В ход разбирательство офис основный дистрибьютор топливо быть провести выборочный проверка . В комиссия подчёркивать что решение мочь быть оспорить . ответчик иметь доступ документ связанный расследование мочь представить возражение . есть право запросить проведение слушание предъявить обвинение открытый заседание . В год сообщаться обыск офис дочерний структура российский лукойл lukoil bulgaria нефтяной компания rompetrol проводить комиссия защита конкуренция . антимонопольный орган болгария начать расследование нефтеперерабатывающий завод лукойл расположить бургас . помимо единственный болгария нпз расследование фигурировать семь розничный продавец топливо подозревать картельный сговор . идти дочерний структура royal dutch shell omv hellenic petrolleum nis petrol rompetrol bulgarian petrol лукойл . мощность болгарский нпз лукойл составлять миллион тонна топливо год . предприятие перерабатывать нефть различный сорт включая российский поступать трубопровод терминал росенец . |ngramms защита_конкуренция защита_конкуренция защита_конкуренция дочерний_предприятие газпром_нефть rambler_news_service европейский_союз ценовый_политика обмен_информация розничный_продажа топливо_в_страна топливо_в_страна что_действие розничный_торговля В_ход быть_провести предъявить_обвинение дочерний_структура дочерний_структура нефтяной_компания орган_болгария начать_расследование нефтеперерабатывающий_завод помимо_единственный розничный_продавец миллион_тонна топливо_в_год нефть_различный включая_российский +1677 |text заседание московский арбитражный суд иск следственный комитет россия афк система рассматриваться рамка расследование незаконный приватизация акция компания башнефть отложить сообщать интерфакс . слово судья отсрочка делаться истец иметь возможность представить позиция суд . новое заседание назначить . столичный арбитраж заявление генпрокуратура наложить арест обыкновенный привилегированный акция башнефть принадлежащий афк система дочерний компания система инвест . В сложность арест оказаться процент акция нефтяной компания . глава система быть поместить домашний арест . бизнесмен обвинить хищение акция башнефть . информация афк система башнефть быть купить цена процент превосходящий рыночный миллиард доллар . В компания подчёркивать что не_участвовать приватизация предприятие башкирский тэк выступать добросовестный покупатель актив сторона . уголовный факт незаконный продажа акция нефтяной компания башнефть быть возбудить год . В быть заочно предъявить обвинение бывший глава компания урал сын бывший президент башкортостан . |ngramms арбитражный_суд следственный_комитет незаконный_приватизация акция_компания иметь_возможность дочерний_компания процент_акция нефтяной_компания нефтяной_компания _ _ быть_поместить хищение_акция быть_купить миллиард_доллар В_компания покупатель_актив продажа_акция быть_возбудить предъявить_обвинение бывший_глава_компания бывший_президент +1678 |text руководитель оао российский железный дорога ржд заявить газета ведомость что компания быть готовый антироссийский санкция ввести фон украинский кризис . что вперёд просчитывать ситуация . не_знать что быть санкция что экономический ситуация быть ухудшаться предполагать . заимствование хотеть сделать сделать год интервью опубликовать . подчеркнуть что никакой радость ситуация санкция безусловно не_вызывать ржд нужно . зрение реальный деятельность политика американец украина значительно неприятный санкция . глава ржд признать что санкция отразиться немой . Я стать умный живой взрослый что есть иллюзия отношение американский политика думать что политологически доказательный факт позволять расставить место добавить . попасть санкция сша австралия санкционный список евросоюз нет . |ngramms российский_железный_дорога __заявить компания_быть экономический_ситуация хотеть_сделать _подчеркнуть глава_ржд добавить_ санкционный_список +1679 |text генподрядчик строительство мост керченский пролив компания стройгазмонтаж аркадия госбюджет перечислить миллиард рубль . сообщить исполнять обязанность глава заказчик стройка управление федеральный автомобильный дорога тамань передавать корреспондент лента . . финансирование вестись соответствие график госконтракт . С начало стройка порядок миллиард рубль профинансировать миллиард рубль составлять оплата выполнить работа международный форум транспорт россия . добавить что лимит финансирование год составлять миллиард рубль . сумма планировать освоить полный объём добавить . В год слово планироваться завершить установка опора автомобильный часть мост процент опора железный дорога . летом будущее год компания рассчитывать доставить смонтировать арка проход судно . операция пройти поздний год . заказать специальный плавсредство севморзавод севастополь планировать закончить сооружение сообщить . осень год начаться асфальтирование участок автомобильный часть мост . В конец строитель сообщить что досрочно выполнить годовой план сооружение опора . что изначально итог год планироваться соорудить опора . конец готовый опора работа опора . создать задеть перспектива . мост керченский пролив длина километр стать протяжённый россия . соединить крымский полуостров материковый частью страна автомобильный полоса железный дорога . движение автомобиль открыться год железнодорожный линия быть ввести эксплуатация . стоимость проект составить миллиард рубль . |ngramms строительство_мост аркадия_ миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль _ исполнять_обязанность управление_федеральный автомобильный_дорога передавать_корреспондент С_начало выполнить_работа международный_форум транспорт_россия _добавить год_составлять планироваться_завершить часть_мост часть_мост железный_дорога железный_дорога будущее_год В_конец сооружение_опора год_планироваться крымский_полуостров частью_страна автомобиль_открыться железнодорожный_линия быть_ввести проект_составить +1680 |text изменение правило перевозка пассажир багаж железный дорога одобрить приказ минтранс позволить внедрить единый билет метро электричка писать российский газета . поправка законодательство вступать действие позволить использовать билет проезд автобус метро электропоезд . обязательный условие являться проезд документ граница населить пункт . издание отмечать что смочь воспользоваться новый мультибилет пассажир московский кольцевой железный дорога мкжда запустить единый система проход метро поезд . начальник департамент управление бизнес блок пассажирский перевозка ржд максим рассказать газета что пассажир смочь воспользоваться железнодорожный билет поездка вид транспорт . купить единый билет желающий смочь минута сделать полный круг мкжда учёт остановка перрон . сесть электричка черкизовский где есть вход красный ветка метро доехать автозаводский . пояснить что мкжда не_быть бумажный билет есть железный дорога пригородный дальний сообщение остаться карточка москва карта тройка . С помощь пассажир смочь пройти электричка трамвай автобус . деньга проезд центральный пригородный пассажирский компания метрополитен разделить менеджер ржд . слово город планироваться интеграция железнодорожный городской транспорт . В перспектива обсуждаться возможность единый билет пересесть поезд дальний следование автобус автобус сапсан . движение малое кольцо московский железный дорога запустить тестовый режим год проехать поезд пассажир . обновить окружный железный дорога снизить нагрузка кольцевой линия столичный метрополитен процент . что станция мкжда можно быть бесплатно попасть метро . руководитель департамент транспорт развитие инфраструктура москва максим обещать что пересадка быть занимать восемь минута . |ngramms перевозка_пассажир железный_дорога железный_дорога железный_дорога железный_дорога железный_дорога единый_билет единый_билет единый_билет российский_газета обязательный_условие издание_отмечать смочь_воспользоваться единый_система начальник_департамент управление_бизнес пассажирский_перевозка максим_ максим_ рассказать_газета пассажир_смочь пассажир_смочь вид_транспорт где_есть пассажирский_компания В_перспектива обсуждаться_возможность поезд_дальний малое_кольцо столичный_метрополитен можно_быть руководитель_департамент дорожно_транспортный быть_занимать +1681 |text компания ржд открыть забайкальск магазин duty free стать рф магазин беспошлинный торговля вокзал . сообщаться железнодорожный монополия . забайкальск расположить забайкальский край граница китай . площадь первое железнодорожный магазин duty free составлять квадратный метр . услуга пользоваться пассажир следующий маршрут чита маньчжурия москва пекин . В магазин продаваться алкоголь кондитерский изделие парфюмерия косметика игрушка . В ближний время ржд собираться открыть магазин duty free финляндский вокзал вокзал выборг . В перспектива планироваться организовать беспошлинный торговля пограничный пункт пропуск . открытие первое магазин duty free стать возможный принятие год постановление правительство расширить перечень вид деятельность разрешить железнодорожный пограничный пункт пропуск . изначально планироваться что беспошлинный торговля начаться финляндский вокзал конец год . ржд планировать открыть продажа . подписание соответствующий распоряжение год открывать магазин duty free можно быть морской речной автомобильный воздушный пункт пропуск граница рф . |ngramms пресс_релиз железнодорожный_монополия квадратный_метр услуга_пользоваться кондитерский_изделие В_ближний_время собираться_открыть санкт_петербург В_перспектива стать_возможный постановление_правительство вид_деятельность изначально_планироваться планировать_открыть соответствующий_распоряжение можно_быть +1682 |text сбербанк стать владелец ювелирный сеть pandora получить процент акция зао панклуб развивать франшиза магазин россия . сообщать коммерсантъ ссылка источник сбербанк . накануне истечь срок реализация опцион сбербанк продажа принадлежащий процент панклуб . сторона контракт холдинговый компания trellas владеть актив гк связной включая остаться процент панклуб отвести время не_выкупить банка пакет . В результат условие соглашение банк остаться владелец процент панклуб забрать остальной процент . слово источник издание сбербанк получение pandora отступное скорее вынужденный . банка нет смысл становиться владелец непрофильный актив найти инвестор текущий условие быть непросто собеседник . однозначно оценить ликвидность актив непросто текущий ситуация ювелирный отрасль достаточно проблемный сегмент неизвестно сколько продлиться спад спрос отмечать генеральный директор fashion consulting group лебсак . мнение долгосрочный перспектива ювелирный компания работать среднее ценовый сегмент мочь стать интересный инвестор что экспериментальный проект бренд состояться репутация . В год стопроцентный дочка сбербанк ооо сбербанк инвестиция выкупить основатель тогдашний владелец связной максим ноготкова процент акция панклуб эксклюзивный дистрибутор датский производитель ювелирный изделие pandora россия страна снг . покупка стать частью финансирование сумма миллиард рубль организовать корпоративный инвестиционный дочка сбербанк sberbank cib зао панклуб . часть средство быть предоставить вид кредит . |ngramms стать_владелец процент_акция процент_акция срок_реализация В_результат остаться_владелец источник_издание нет_смысл спад_спрос генеральный_директор group_ долгосрочный_перспектива мочь_стать страна_снг стать_частью миллиард_рубль часть_средство быть_предоставить +1683 |text россельхознадзор ввести временной ограничение ввоз живой птица яйцо ряд регион италия греция польша где зафиксировать вспышка птичий грипп сообщать новость . В регистрация очаг высокопатогенный грипп птица территория регион романие италия вводиться временной ограничение ввоз российский федерация указанный регион живой птица инкубационный яйцо цитировать агентство сообщение ведомство . причина быть ввести запрет импорт аналогичный продукция итальянский регион венето округ пелопонести восточный македония фракия греция . россельхознадзор грубый нарушение ветеринарный законодательство ограничить поставка продукция мясоперерабатывающий завод белоруссия . ограничение коснуться жлобинский мясокомбинат предприятие дубравский бройлер смолевичи бройлер столбцовский мясоконсервный комбинат . В отношение ввести режим усиленный лабораторный контроль . |ngramms ряд_регион сообщать_риа_новость российский_федерация цитировать_агентство сообщение_ведомство быть_ввести поставка_продукция В_отношение ввести_режим +1684 |text московский управление фас возбудить отношение агентство развитие перспективный технология сервис . регулятор найти действие компания признак картельный соглашение сообщаться сайт управление . отмечаться что сговор привести поддержание цена торг выполнение художественный подсветка здание кремль освещение транспортный развязка каширский новорижский шоссе . заказчик торг выступить столичный департамент топливный энергетический хозяйство . начальный максимальный цена аукцион превышать миллион рубль указать уфас . агентство развитие перспективный технология сервис подать ход аукцион ценовый предложение отказаться дальнейший конкурентный борьба . В результат снижение цена контракт ход торг составить процент начальный значение . столичный уфас установить полный идентичность ряд документ состав заявка компания совпадение наименование заголовок файл сохранить разница секунда . заявка оказаться одинаковый информация технический характеристика предлагать продукция заказчик не_быть предусмотреть конкретный показатель товар . закон О контрактный система сфера закупка товар работа услуга обеспечение государственный муниципальный нужда электронный аукцион проводиться путём снижение начальный максимальный цена контракт указанный извещение проведение торг . величина снижение шаг аукцион составлять процент начальный цена . участник подавать предложение быть текущий минимальный предложение укладываться предел шаг . первое быть подать минута начало аукцион окончание торг наступать истечение минута поступление предложение . |ngramms управление_фас развитие_перспективный развитие_перспективный сообщаться_на_сайт цена_на_торг столичный_департамент максимальный_цена миллион_рубль ценовый_предложение конкурентный_борьба В_результат снижение_цена ряд_документ закупка_товар цена_контракт шаг_аукцион начало_аукцион +1685 |text арбитражный суд москва вернуть компания башнефть право разработка нефтяной месторождение требс расположить ненецкий автономный округа сообщать интерфакс . считаться крупный разведать нефтяной месторождение континентальный часть россия . суд удовлетворить иск миноритарный акционер башнефть оспорить передача месторождение совместный предприятие нефтяной компания лукойл . представитель истец что решение передать наиболее значительный актив башнефть собственник нарушить право акционер поскольку мочь получить маленький дивиденд прибыть продажа акция . представитель башнефть очередь заявить что иск необоснованный как не_доказать нарушение право интерес . слово компания рассмотреть возможность подача апелляция . как отмечаться решение суд вступить сила месяц . башнефть получить лицензия месторождение имя требс год . запас оцениваться миллион тонна нефть . В год лицензия быть переоформить ооо башнефть полюс процент доля приобрести компания лукойл . В год начаться разработка месторождение . |ngramms арбитражный_суд_москва право_на_разработка нефтяной_месторождение нефтяной_месторождение автономный_округа считаться_крупный часть_россия удовлетворить_иск миноритарный_акционер _ совместный_предприятие нефтяной_компания представитель_истец что_решение наиболее_значительный нарушить_право мочь_получить рассмотреть_возможность как_отмечаться решение_суд вступить_в_сила месторождение_имя миллион_тонна_нефть разработка_месторождение +1686 |text камчатка отказаться покупка доля авиакомпания являться дочерний предприятие аэрофлот . номер писать газета коммерсантъ ссылка губернатор край . слово чиновник проект не_решать проблема региональный перевозка . предложить камчатка десять процент акция обмен получение гупа камчатский авиапредприятие гуп кап . что регион не_ознакомить условие предоставление субсидия вопрос внутрирегиональный перевозка не_предоставить региональный самолёт . В будущее губернатор намеренный использовать местный региональный авиасообщение гуп кап . сведение издание передача камчатский авиапредприятие переговоры власть регион аврора не_обсуждаться . препятствие соглашение мочь стать система тарификация камчатка . предусматривать субсидия местный житель случай недостаточный загрузка самолёт . сравнение сахалин субсидировать билет мочь приобрести пассажир . отказ камчатка грозить авиакомпания финансовый затруднение . В год субсидия регион авиасообщение составить миллион рубль прошлое год достигать миллион рубль . В начало стать что власть сахалин согласиться выкупить процент акция процент принадлежать аэрофлот . В дальнейший выкупить сахалин доля быть распределить регион дальневосточный федеральный округа пропорциональный вклад . получить объект инфраструктура госгарантия вид субсидия авиаперевозка . О намерение аэрофлот создать дальний восток дочерний авиакомпания стать середина год . быть образовать путём слияние владивосток сахалинский авиатрасса . |ngramms дочерний_предприятие писать_газета _ десять_процент региональный_самолёт В_будущее власть_регион мочь_стать местный_житель билет_мочь миллион_рубль миллион_рубль В_начало что_власть процент_акция процент_принадлежать В_дальнейший федеральный_округа О_намерение дальний_восток дочерний_авиакомпания быть_образовать владивосток_ +1687 |text американский корпорация exxonmobile участвовать проект строительство завод выработка сжидить природный газа спг сахалин дальневосточный спг . сообщать новость ссылка роснефть русакова . просьба прокомментировать информация якобы выход американский компания проект русакова ответить Я не_слышать . добавить что руководство exxonmobil нея планироваться ряд встреча . слово участник проект завод спг являться участник сахалин . русакова что роснефть сохранять план принятие окончательный инвестиционный решение проект конец год . ввод эксплуатация запланировать год начать поставка спг год . ресурсный сырьевой база проект составлять порядок триллион кубометр газа месторождение северный венинский северный шельф сахалин . exxonmobile иметь обширный совместный россия проект освоение российский месторождение . роснефть exxonmobile подписать соглашение определять дальнейший шаг развитие проект строительство завод спг дальний восток . роснефть exxonmobil начать работа скважина университетский карский мор начало . поступить сообщение что компания остановить бурение арктический шельф санкция ввести западный страна отношение российский компания . поздний exxonmobil уточнить что получить правительство сша разрешение отсрочить выход проект что безопасный экологический зрение сворачивание работа требоваться определённый время . |ngramms американский_корпорация проект_строительство проект_строительство природный_газа дальневосточный_спг вице_президент просьба_прокомментировать американский_компания участник_проект завод_спг завод_спг являться_участник принятие_окончательный начать_поставка база_проект составлять_порядок кубометр_газа подписать_соглашение дальний_восток exxonmobil_начать что_компания арктический_шельф ввести_западный российский_компания правительство_сша +1688 |text объединение автопассажирский перевозчик подать коллективный иск сервис поиск попутчик blablacar . сообщаться сайт организация . перевозчик присоединиться индивидуальный предприниматель компания обвинять сервис помощь нелегальный перевозчик . утверждение blablacar позволять избежать уплата налог снижать расход безопасность коммерческий перевозка маскироваться определение совместный перевозка доход компенсация затрата топливо . истец жаловаться что рост рынок попутчик идти счёт катастрофический ущерб рынок автобусный перевозка . год отток пассажир автовокзал перевозчик попутчик составить порядок процент . утверждение blablacar миллион пользователь год расти процент . В сложиться ситуация легальный участник рынок предоставление транспортный автомобильный услуга население становиться неконкурентноспособный резюмировать перевозчик . В blablacar предложить закрепить законодательство понятие карпулинг совместный использование автомобиль поездка запланировать водитель собственный цель . сервис предложить запретить взимать плата поездка исключение топливный эксплуатационный расход не_считать предпринимательский деятельность перевозка пассажир . французский сервис blablacar объединять водитель пассажир позволять находить кто следовать маршрут . В россия компания начало работать год год объявить введение плата бронирование место автомобиль . |ngramms уплата_налог коммерческий_перевозка рост_рынок составить_порядок миллион_пользователь сложиться_ситуация участник_рынок совместный_использование предложить_запретить перевозка_пассажир В_россия компания_начало +1689 |text федеральный антимонопольный служба фас возбудить отношение министерство здравоохранение россия признак нарушение закон защита конкуренция . сообщаться сайт ведомство . как отмечаться минздрав не_устранить выявить нарушение система получение лицензия медицинский деятельность . предписание фас необходимый быть выполнить год . рф отсутствовать единый система лицензионный требование предъявлять соискатель лицензия лицензиат осуществлять отдельный вид работа услуга составлять медицинский деятельность что ставить медорганизация неравный положение получение лицензия заместитель руководитель фас кашевар . рассмотрение назначить . В год газета коммерсантъ сообщать что фас разработать механизм принудительный лицензирование лекарство интерес жизнь здоровье гражданин . антимонопольный служба предложить возложить правительство полномочие вводить принудительный лицензирование одобрение суд выплата правообладатель компенсация . глава фас констатировать что сфера поставка продажа лекарственный препарат страна действовать организовать преступность . обвинить крупный зарубежный фармкомпания навязывание практика приводить рост цена лекарство россия . месяц антимонопольный служба выявить признак картельный сговор участник поддерживать цена торг проведение аукцион поставка лекарство медицинский изделие государственный муниципальный нужда . В сговор подозреваться компания росмедкомплект эталон трейдинг пик интермедсервис сервис интермедсервис . |ngramms федеральный_антимонопольный_служба защита_конкуренция сообщаться_на_сайт как_отмечаться медицинский_деятельность медицинский_деятельность предписание_фас быть_выполнить единый_система что_ставить получение_лицензия заместитель_руководитель фас_ что_фас антимонопольный_служба антимонопольный_служба глава_фас _ _ цена_на_торг +1690 |text владелец сеть доктор вести переговоры покупка group находиться процесс слияние группа A . . интересоваться приобретение российский бизнес финский oriola kd сеть аптека старый лекарь фармдистрибутор ориол . сообщать коммерсантъ ссылка источник фармацевтический рынок . готовиться сделка привести смена нынешний лидер аптечный рынок отмечать издание . имя согласно различный рейтинг являться сеть ригла . В год журнал vademecum оборот составлять миллиард рубль ндс . следующий A . . учёт аптека оборот миллиард рубль приобретение старое лекарь выручка миллиард рубль получить суммарный оборот миллиард рубль . оборот доктор озерко миллиард рубль покупка миллиард рубль получить оборот миллиард рубль . директор центр социальный экономика сообщить издание что сеть доктор случай сделка стать доминировать игрок аптечный рынок столичный регион доля быть процент . что касаться сделка старый лекарь прибыльный что немаловажный аудировать чистый актив мочь являться желанный приобретение как A . . . мнение российский аптечный бизнес мочь вступить новый стадия консолидация . длинный кредит оказаться недоступный дистрибутор сеть что сильно осложнить развитие констатировать эксперт . ожидать что десятка продолжить забирать доля рынок поглощать мелкий игрок . |ngramms владелец_сеть доктор_ доктор_ доктор_ вести_переговоры российский_бизнес отмечать_издание миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль суммарный_оборот директор_центр _ _сообщить столичный_регион что_касаться чистый_актив доля_рынок +1691 |text арбитражный суд москва ввести процедура наблюдение предварительный этап банкротство отношение корпорация главмосстрой передавать новость . С заявление банкротство компания обратиться инвестторгбанк настоящее время проходить процедура санация . задолженность размер миллион рубль банк включить реестр требование кредитор . временной управлять главмостстрой утвердить . рассмотрение банкротство существо назначить . В заявление истец поясняться что корпорация главмосстрой конец год поручиться банк головной структура холдинг хк главмосстрой кредит выдать год . как отмечать агентство сторона пытаться достигнуть мировой соглашение имя не_удаться . В год процедура наблюдение быть запустить суд отношение холдинговый компания главмостстрой иск федеральный транспортный компания . заявление банкротство главмосстрой подавать группа евроцемент . главмосстрой строительный компания входящая группа базовый элемент дерипаск . специализироваться строительство жильё административный торговый центр объект социальный инфраструктура . |ngramms арбитражный_суд_москва ввести_процедура передавать_риа_новость заявление_о_банкротство заявление_о_банкротство компания_обратиться проходить_процедура миллион_рубль требование_кредитор временной_управлять _ В_заявление что_корпорация структура_холдинг как_отмечать мировой_соглашение быть_запустить транспортный_компания строительный_компания входящая_в_группа базовый_элемент _дерипаск специализироваться_на_строительство торговый_центр социальный_инфраструктура +1692 |text кредитный рейтинг австралийский авиакомпания qantas прославиться упоминание фильм человек дождь быть снизить агентство standard poor мусорный уровень . сообщить . рейтинг быть снизить инвестиционный отметка bbb bb негативный прогноз что означать возможность дальнейший ухудшение . В качество причина решение S P указать увеличение конкуренция авиационный отрасль рост финансовый риск . понижение рейтинг грозить qantas рост стоимость обслуживание кредит . В ответный сообщение qantas компания подчеркнуть что финансовый положение оставаться стабильный . австралийский авиаперевозчик предупредить что ожидать убыток выплата налог размер миллион австралийский доллар итог месяц завершаться год . В ближний год qantas рассчитывать сэкономить миллиард доллар уволить тысяча человек персонал . qantas долгий время считаться наиболее безопасный авиакомпания . В фильм год человек дождь герой что самолёт qantas не_падать . несмотря любительский организация jet airliner crash evaluation center вести учёт авиапроисшествие поместить qantas место рейтинг безопасный перевозчик . мусорный кредитный рейтинг присваиваться компания вложение зрение рейтинговый агентство носить рискованный характер . процентный ставка мусорный ценный бумага выше облигация инвестиционный рейтинг инвестор требовать большой доходность качество компенсация риск . |ngramms кредитный_рейтинг кредитный_рейтинг австралийский_авиакомпания быть_снизить быть_снизить негативный_прогноз что_означать дальнейший_ухудшение В_качество авиационный_отрасль финансовый_риск рост_стоимость обслуживание_кредит компания_подчеркнуть финансовый_положение ожидать_убыток выплата_налог австралийский_доллар В_ближний тысяча_человек долгий_время безопасный_авиакомпания место_в_рейтинг процентный_ставка ценный_бумага +1693 |text У российский санитарный служба появиться претензия кондитерский продукция поставляться украина . как сообщать интерфакс заявить главный государственный врач рф . слово качество кондитерский изделие поступать украина вызывать большой тревога . добавить что ведомство недовольный качество продукция компания росить . О возможный санкция отношение украинский товар глава роспотребнадзор не_рассказать . согласно сайт компания росить производить шоколад одноимённый бренд . реакция компания заявление не_последовать . накануне газета коммерсантъ украина написать что россия готовить экономический санкция отношение киев . издание москва недовольный что украина повысить пошлина импортный автомобиль . В качество компенсация потеря российский бюджет таможенный союз намеренный ввести повышенный сбор некоторый украинский товар сообщить газета . В товар быть обложить повышенный пошлина называться кондитерский изделие сахар шоколад какао каменный уголь стекло . В прошлое год ведомство предъявить претензия украинский производитель сыр . роспотребнадзор заявить нарушение технология ряд предприятие запретить ввоз продукция рф . В результат серия проверка переговоры поставка украинский сыр россия быть возобновить . сыроваренный компания частично признать обоснованность претензия российский чиновник . |ngramms У_российский кондитерский_продукция как_сообщать рф__ кондитерский_изделие кондитерский_изделие _добавить что_ведомство качество_продукция О_возможный украинский_товар украинский_товар глава_роспотребнадзор сайт_компания одноимённый_бренд что_россия экономический_санкция что_украина В_качество компенсация_потеря российский_бюджет таможенный_союз сообщить_газета прошлое_год ведомство__ украинский_производитель В_результат поставка_украинский российский_чиновник +1694 |text В россия выпускать недостаточно грузовой автомобиль мочь конкурировать зарубежный аналог . заявить рф передавать . что дальнобойщик обсуждаться тема определение тариф система проезд федеральный трасса . идти что рентабельность бизнес напрямую зависеть экономичность машина . основное использовать перевозка груз зарубежный автомобиль российский . У есть конкурентоспособный отечественный аналог недостаточно покрытие потребность кто перевозить груз большой расстояние . чиновник добавить что есть конкурентоспособный модель камаз ульяновский автозавод быть большой . что минпромторг необходимый продумать мера поддержка иностранный производитель грузовой техника намерить локализовать производство продукция россия . В слово автоконцерн понимать быть зависеть колебание валюта . агентство автостат прошлое год продажа новый грузовой автомобиль россия составить тысяча штука что процент большой . камаз нарастить продажа процент тысяча машина газ процент тысяча урал процент тысяча . глава минпромторг мантур начало прогнозировать что рост спрос грузовой машина сохраниться текущий год . |ngramms В_россия грузовой_автомобиль вице_премьер вице_премьер рф__ перевозка_груз большой_расстояние чиновник_добавить что_есть мера_поддержка продажа_новый автомобиль_в_россия тысяча_штука процент_большой нарастить_продажа тысяча_машина _мантур что_рост грузовой_машина +1695 |text международный роуминг российский сотовый абонент посещать крым быть отменный . заявить коллегия минкомсвязи глава министерство . оператор делать возможный снизить тариф российский абонент посещать крым . К начало курортный сезон ориентировочно международный роуминг крым россиянин быть министр . В время не_объяснить как предполагаться отменить международный роуминговый тариф абонент российский сотовый оператор приезжать крым регион россия . роуминговый тариф крым действовать что услуга сотовый полуостров оказывать украинский сотовый компания . крупный мтс украина билайн основный владелец являться российский структура юридически крымский оператор считаться украинский . соответственно тариф обслуживание сеть абонент приезжать российский регион устанавливаться правило международный роуминг . крым присоединить россия результат что проведение полуостров референдум госдума россия ратифицировать договор принятие российский федерация республика крым президент подписать указ . |ngramms посещать_крым посещать_крым быть_отменный глава_министерство _ К_начало В_то_же_время сотовый_оператор регион_россия сотовый_компания основный_владелец являться_российский российский_федерация республика_крым президент___подписать +1696 |text отстранить руководство банка югра направить кассационный жалоба решение девять арбитражный апелляционный суд город москва оставить сила решение московский арбираж признать законный отзыв лицензия банка . югра . согласный решение арбитражный апелляционный суд город москва отказаться удовлетворение иск признание неправомерный отзыв лицензия . планировать ближний время направить кассационный жалоба заявить югра . добавить что фон участиться дискуссия предвзятый кулуарный уголовный характер решение цб сфера банковский регулирование равнодушие суд аргумент югра особенно странный . представитель банка югра обвинять цб что искусственно занизить отчётный показатель финансовый организация создать формальный повод отзыв лицензия банка . мнение представитель югра суд необоснованно проигнорировать дать аудиторский проверка состояние банка накануне ввод туда временной администрация свидетельствующий жизнеспособность югра отсутствие основание вмешательство компания регулятор . мнение представитель банка цб решение отзыв лицензия основание что югра не_согласиться представить год временной администрация план санация банка асв основание что компания не_нуждаться оздоровление . |ngramms девять_арбитражный апелляционный_суд апелляционный_суд город_москва город_москва пресс_релиз решение_арбитражный иск_о_признание отзыв_лицензия экс_предправление _ что_на_фон представитель_банка представитель_банка финансовый_организация временной_администрация временной_администрация что_компания +1697 |text быть решение слияние компания миг сухой бренд сохраниться . заявить министр промышленность торговля россия мантур передавать . вопрос крыться корпоративный процедура сохраниться школа министр . надо глубокий смотреть вопрос . сохраниться . А какой юридический лицо сливаться формальный вопрос экономический толк . главный подчеркнуть намоленная бренд миг сухой сохраниться . министр что реализумый объединить авиастроительный корпорация оак корпоративный процедура направить оптимизация расход концентрация финансовый производственный ресурс . что направить имя достижение цель быть реализовываться корпорация глава минпромторг . как сообщать rambler service ссылка источник основной организационный решение интеграция авиастроительный концерн сухой миг единый дивизион военный авиация оак мочь быть объявить год . зао гражданский самолёт сухой российский компания заниматься разработка производство маркетинг послепродажный обслуживание самолёт . гсс являться разработчик производитель первое отечественный постсоветский пассажирский самолёт sukhoi superjet . рск миг российский авиастроительный компания предприятие полный цикл объединять аспект конструирование изготовление реализация поддержание ремонт самолёт марка миг . авиапроизводитель сухой миг входить объединить авиастроительный корпорация . |ngramms слияние_компания промышленность_и_торговля россия_ корпоративный_процедура корпоративный_процедура юридический_лицо объединить_авиастроительный_корпорация объединить_авиастроительный_корпорация оптимизация_расход сообщать_rambler_news_service авиастроительный_концерн мочь_быть_объявить гражданский_самолёт_сухой российский_компания заниматься_разработка гсс_являться первое_отечественный пассажирский_самолёт sukhoi_superjet российский_авиастроительный предприятие_полный самолёт_марка +1698 |text крупный автодилер украина приостановить продажа автомобиль renault skoda сообщать коммерсант украина . причина стать девальвация гривна что цена иномарка резко повыситься . В некоторый компания заявлять что импортёр иномарка прислать письмо просьба ограничить продажа поскольку не_гарантировать поставка . дилер распродавать старое запас постоянно пересматривать цена . В ряд автосалон вырасти процент . дилер надеяться что продажа вырасти начало поскольку есть автомобиль не_затронуть повышение цена . поток клиент сокращаться начало год быть рост процент сравнение аналогичный период год . неделя гривна резко снизиться отношение доллар превысить отметка гривна доллар . власть не_удаваться приостановить девальвация украинский валюта что мочь быть вызвать нехватка резерв нацбанк украина . В объесть упасть миллиард доллар миллиард маленький начало год . девальвация гривна вызвать политический неурядица страна . минувший неделя президент украина быть отстранить власть месяц протест вылиться массовый беспорядок . верховный рада сформировать новое правительство глава яценюк время как исполнять обязанность президент стать спикер парламент турчин . новое власть пожаловаться отсутствие средство казна . |ngramms продажа_автомобиль причина_стать девальвация_гривна девальвация_гривна В_некоторый компания_заявлять ограничить_продажа что_продажа вырасти_в_начало повышение_цена год_быть аналогичный_период мочь_быть миллиард_доллар минувший_неделя украина__ сформировать_новое исполнять_обязанность +1699 |text В некоторый модификация самолёт boeing max иметься дефект лайнер мочь срываться пик писать wall street journal . компания производитель утаить недостаток перевозчик пилот . сведение газета дефект есть модификация max max существовать max max . немой стать ход расследование октябрьский крушение самолёт авиакомпания lion air индонезия . В настоящее время дать расследование изучать федеральный управление гражданский авиация сша . согласно имя авария привести использование функция самолёт помогать избегать опасный задирание нос . нештатный ситуация эффект оказываться обратный нос опускаться низко настолько что пилот мочь выровнять лайнер . отмечаться что boeing планировать разослать предупреждение авиакомпания закупить модель max . быть сделать неизвестно . многий пилот наличие функция стать неожиданность . boeing max узкофюзеляжный пассажирский самолёт ввести эксплуатация год . использовать семь авиакомпания российский airlines . ранний версия модель отличать мощный крупный двигатель cfm international leap . boeing max направляться остров ряд индонезийский суматра потерпеть крушение берег остров ява . самолёт пропасть радар минута вылет аэропорт столица страна джакарта . В результат катастрофа погибнуть находиться борт человек . |ngramms В_некоторый самолёт_boeing wall_street_journal самолёт_авиакомпания В_настоящее_время гражданский_авиация согласно_имя пассажирский_самолёт ввести_в_эксплуатация ранний_версия столица_страна В_результат находиться_на_борт +1700 |text роспотребнадзор выявить вещество вызывающий аллергия висок jack daniel tennessee . сообщать управление надзорный ведомство свердловский область . лабораторный испытание спиртное напиток роспотребнадзор показать что немой содержаться бензиловый эфир бензойный кислота обладать сенсибилизировать свойство вызывать аллергический реакция способный вызывать функциональный изменение центральный периферический нервный система . эфир использоваться борьба клещ . В отношение хозяйствовать субъект где быть выявить реализация висок спиртное напиток назвать нарушение возбудить административный роспотребнадзор . В управление роспотребнадзор свердловский область предписать изъять продажа висок jack daniel tennessee бурбон jim beam . решение быть как выясниться что оборот указанный марка алкогольный продукция осуществляться маркировка соответствующий установленный требование . образец продукция jack daniel tennessee honey . ликёр быть найти химический вещество свойственный состав висок . jack daniel популярный марка американский висок . выпускаться город штат теннесси девятнадцать век . напиток изготавливаться процент кукуруза процент ячмень процент ржа . содержимый процент алкоголь . jim beam являться наиболее продавать мир бурбон . производиться американский клермонт конец восемнадцать век . изготавливаться процент кукуруза . |ngramms свердловский_область свердловский_область что_в_немой В_отношение быть_выявить назвать_нарушение как_выясниться что_оборот алкогольный_продукция быть_найти популярный_марка являться_наиболее +1701 |text международный нефтесервисный компания schlumberger достигнуть соглашение приобретение процент акция российский компания eurasia drilling company приблизительно миллиард доллар . сообщать новость . образ стоимость акция российский буровик оцениваться доллар . В год schlumberger заявлять что отзывать россия американский европейский персонал ввести западный страна санкция рф . В россия schlumberger сотрудничать ряд нефтегазовый компания . В представитель независимый нефтедобывающий компания ruspetro сообщить российский агентство что ввести сша ес санкция ряд гражданин компания россия не_оказать негативный влияние сотрудничество компания schlumberger . schlumberger крупный мир сервисный компания область нефть газа . предоставлять широкий спектр услуга поиск разведка месторождение интенсификация добыча скважина поставка специализировать программный продукт . schlumberger работать страна находиться хьюстон париж лондон гаага . В россия компания располагать производственный база центр собственный производство оборудование . |ngramms процент_акция миллиард_доллар ввести_западный В_россия В_россия нефтегазовый_компания пресс_служба крупный_в_мир компания_в_область разведка_месторождение программный_продукт штаб_квартира производственный_база научно_исследовательский производство_оборудование +1702 |text В россия быть прекратить продажа напиток light . вместо company вывести низкокалорийный напиток международный бренд писать коммерсантъ . В надеяться что замена light положительно сказаться продажа главный бренд россия . компания год доля light российский продажа составлять процент год производитель рассчитывать что доля вырасти процент . В дикси metro cash carry отмечать что продажа light магазин сеть крайне незначительный . появиться впервые рынок сша год продаваться страна . разница вкус максимально приблизить оригинальный что подтвердить процент респондент ход предварительный тест представитель . У главный конкурент компания pepsico российский портфель бренд pepsi есть низкокалорийный напиток pepsi light pepsi max . оценка компания занимать процент объём продажа торговый марка pepsi россия . canadean год продажа напиток бренд россия вырасти миллион литр год миллион литр . доля рынок безалкогольный газировать напиток увеличиться соответственно процент процент . В прошлое год российский продажа напиток впервые год практически не_увеличиться рост составить процент . |ngramms В_россия продажа_напиток продажа_напиток coca_cola coca_cola coca_cola coca_cola coca_cola coca_cola coca_cola coca_cola coca_cola coca_cola что_замена главный_бренд год_доля что_продажа появиться_впервые _ портфель_бренд объём_продажа торговый_марка миллион_литр миллион_литр В_прошлое_год год_практически рост_составить +1703 |text гендиректор российский компания уралкалий задержать минск перевести домашний арест . изменение мера пресечение содержание стража домашний арест рассказать интерфакс утром адвокат глава уралкалий басистовый . слово адвокат находиться сизый кгб белоруссия содержаться подобрать сотрудник кгб съёмный квартира район минск круглосуточный наблюдение . К глава уралкалий допустить мать сообщить адвокат добавить что надеяться скорый возвращение россия . источник интерфакс изменение мера пресечение стать возможный итог переговоры генпрокурор рф чайка белорусский власть . глава уралкалий быть арестовать минск конец встреча пригласить белорусский . подозревать организация преступный схема цель якобы являться захват контроль сбыт калийный удобрение . |ngramms российский_компания _ _ домашний_арест адвокат_глава сообщить_адвокат изменение_мера стать_возможный рф_ быть_арестовать пригласить_белорусский премьер_министр сбыт_калийный +1704 |text автомобильный концерн nissan перестать собирать седан nissan teana завод . сообщать ссылка заявление российский подразделение nissan . остановка производство связать сокращение спрос российский автомобильный рынок . В компания уточнять что произвести автомобиль продолжить распространять дилерский центр весна год . клиент быть доступ вид ремонт гарантийный обслуживание запасный часть . российский авторынок занимать год восемь место список крупный мировой автомобильный рынок итог месяц год опуститься позиция . россия пропустить вперёд бразилия франция канада италия южный корея . продажа новый легковой лёгкое коммерческий автомобиль lcv россия ассоциация европейский бизнес аеб первое полугодие год сократиться процент сравнение аналогичный период прошлое год составить тысяча единица . аеб ухудшить прогноз продажа год рынок легковушка lcv просесть процент миллион автомобиль миллион год . В начало год аеб прогнозировать падение российский рынок процент . |ngramms автомобильный_концерн санкт_петербург пресс_служба российский_подразделение остановка_производство автомобильный_рынок автомобильный_рынок В_компания место_в_список крупный_мировой новый_легковой лёгкое_коммерческий ассоциация_европейский_бизнес аналогичный_период_прошлое_год тысяча_единица миллион_автомобиль В_начало аеб_прогнозировать российский_рынок +1705 |text В россия есть частный инвестор готовый поучаствовать реализация проект сверхзвуковой капсульный поезд hyperloop . как рассказать интервью russia today воскресение главный исполнительный директор hyperloop transportation technologies бибоп грест настоящее время вестись переговоры . слово проект заинтересоваться российский правительство . грест пояснить что компания как правило привлекать частное спонсор государство . В россия большой расстояние большой плотность население . идеальный место строительство hyperloop ... осуществить проект россия анализировать вариант строительство труба различный город грест . случай задумка быть воплотить жизнь добраться москва можно быть минута . hyperloop система труба перемещение капсула пассажир представлять гибрид вакуумный поезд маглевый . предполагаться добиться средний скорость поезд километр час резко снизить сопротивление воздух одновременно отказаться магнит . поезд hyperloop двигаться герметичный труба давление не_превышать тысячная атмосферный . замысел принадлежать американский предприниматель маска основать компания spacex занимать пост генеральный директор tesla motors . сверхзвуковой поезд капсула лететь труба оставаться мечта маска конкуренция частное компания приближать реализация . маск решить построить испытательный трек техас срок не_определить . hyperloop transportation technologies построить трек север год . В год сообщаться что российский венчурный фонд caspian vc partners вести переговоры второе раунд инвестиция проект строительство сверхзвуковой поезд . писать план компания бизнесмен инвестировать hyperloop transportation technologies . В проект предполагаться oerlikon leybold vacuum дочка швейцарский фирма oerlikon . |ngramms В_россия В_россия частный_инвестор реализация_проект поезд_hyperloop рассказать_в_интервью исполнительный_директор вестись_переговоры российский_правительство что_компания как_правило большой_расстояние проект_в_россия строительство_труба различный_город санкт_петербург можно_быть километр_в_час принадлежать_американский предприниматель_ основать_компания занимать_пост генеральный_директор tesla_motors частное_компания решить_построить лос_анджелес год_сообщаться что_российский проект_строительство бизнесмен__ +1706 |text бывший ювелирный компания tiffany ледерхаас окун предъявить обвинение кража украшение сумма миллион доллар . сообщать издание york . как считать следствие год ледерхаас окун изъять сейф tiffany браслет кольцо платина золото бриллиант . впоследствии часть . обвинение ледерхаас окун подтвердиться грозить год тюремный заключение . бывший tiffany отпустить залог тысяча доллар писать wall street journal . адвокат ледерхаас окун tiffany не_прокомментировать предъявить обвинение . ледерхаас окун работать tiffany . год . быть компания иметь право забирать часть украшение магазин tiffany консультация потенциальный поставщик относительно цена . tiffany быть основать год . компания являться мировой лидер производство ювелирный украшение популярный считаться обручальный кольцо бриллиант . бренд tiffany работать ювелирный магазин мир . |ngramms вице_президент вице_президент миллион_доллар как_считать впоследствии_часть топ_менеджер тысяча_доллар wall_street_journal пресс_служба предъявить_обвинение иметь_право мировой_лидер +1707 |text ростуризм исключить реестр туроператор фирма . сообщаться приказ . doc ведомство . образ количество турфирма сократиться десять процент тысяча оператор . исключить компания резидент москва . исключить турфирма находиться остальной регион россия . как отмечаться сайт ассоциация туроператор россия атор опубликование приказ компания не_иметь право заниматься деятельность сфера выездной туризм . фирма быть исключить реестр поскольку не_войти обозначить срок отраслевой объединение турпомощь . продолжить работа оператор следовать вступить турпомощь направить документ включение реестр . турпомощь начало работа год . объединение быть создать оказание экстренный помощь турист испытывать финансовый трудность граница разорение оператор . вступительный взнос компания составить тысяча рубль срок вступление истечь . отраслевой объединение быть создать рамка изменение инициировать прошлое год ряд банкротство туроператор . громкий оказаться банкротство лант тур . В плохой финансовый состояние компания быть вынудить приостановить деятельность рубеж находиться тысяча клиент . У многий турист требовать деньга проживание быть оплатить оператор . клиент компания сообщать что владелец гостиница некоторый случай не_отдавать документ грозить тюрьма . В ситуация прийтись вмешаться тогдашний поручить выделить лант тур кредит вернуть турист домой . |ngramms реестр_туроператор санкт_петербург регион_россия как_отмечаться ассоциация_туроператор не_иметь_право фирма_быть продолжить_работа начало_работа быть_создать быть_создать финансовый_трудность компания_составить тысяча_рубль банкротство_туроператор финансовый_состояние компания_быть_вынудить клиент_компания некоторый_случай _ премьер_министр +1708 |text В россия итог год быть зарегистрировать миллион новый легковой машина учёт лёгкое коммерческий автомобиль . как сообщать автостат показатель процент выше уровень год . лидер продажа итог год стать автоваз автомобиль марка lada разойтись тираж тысяча единица . процент худой показатель год . иностранный автомобиль год популярный стать марка chevrolet тысяча зарегистрировать легковушка рост процент . третье место российский рынок выйти корейский kia показатель тысяча машина что процент выше уровень год . четвертовать строчка рейтинг занимать компания renault . В год россия зарегистрировать тысяча машина французский марка прирост процент . пятёрка лидер замыкать корейский компания hyundai россиянин тысяча машина что процент хороший уровень год . В десятка наиболее успешный автомобильный марка войти volkswagen тысяча машина рост процент toyota тысяча автомобиль плюс процент nissan тысяча легковушка рост процент ford тысяча машина плюс процент skoda показатель тысяча легковушка прирост процент . ассоциация европейский бизнес аеб следить российский автомобильный рынок итоговый дать год не_подводить . В год аеб прогнозировать уровень продажа легковой лёгкое коммерческий автомобиль миллион единица итог год . |ngramms В_россия год_быть новый_легковой лёгкое_коммерческий лёгкое_коммерческий как_сообщать процент_выше процент_выше лидер_продажа год_стать тысяча_единица марка_chevrolet российский_рынок тысяча_машина тысяча_машина тысяча_машина тысяча_машина тысяча_машина строчка_рейтинг год_в_россия французский_марка хороший_уровень В_десятка наиболее_успешный тысяча_автомобиль ассоциация_европейский_бизнес автомобильный_рынок аеб_прогнозировать уровень_продажа миллион_единица +1709 |text счётный палата россия выявить неэффективный использование средство фонд национальный благосостояние фнб получить ржд модернизация бама транссиб . релиз сп поступить редакция лента . . аудитор выяснить что большой часть сумма миллиард рубль остаться банковский депозит дальневосточный стройка направить миллиард . остаток средство фнб год быть начислить процент миллиард рубль . получить процент учесть общество состав доход финансовый деятельность расходоваться цель обеспечение текущий деятельность приводиться сообщение слово аудитор . В счётный палата причина низкий освоение средство фнб называть отсутствие утвердить проектный сметный документация объект быть строиться прошлое год . В результат запланировать срок модернизация байкать амурский транссибирский магистраль не_соблюдаться объект где предусматриваться выполнение строительный монтажный работа договор быть заключить . работа не_начать некоторые вестись утвердить проектный сметный документация разрешение строительство . проверка выявить серьёзный расхождение документ регламентировать реализация проект . показатель детальный план мероприятие проект утвердить правительственный комиссия транспорт сводный перечень утвердить ржд не_соответствовать параметр паспорт проект . В заключение сп сообщаться что согласно план актуализировать срок реализация проект увеличить год . корректировка год плановый показатель приблизить фактический исполнение . свидетельствовать низок качество планирование добавить аудитор . глава счётный палата очередь заявить что финансирование проект счёт средство фнб не_повлиять срок реализация не_поддержать соответствующий отрасль экономика . выделение год рамка антикризисный план средство фнб сумма миллиард рубль финансирование проект не_обосновать резюмировать . В аудитор deloitte прислать вывод что смета модернизация некоторый объект транссиб бама завысить процент . изучить смета второе путь разъезд вставка прислать вывод что можно быть построить миллиард сэкономить половина стоимость размер смета ржд миллиард . ржд рамка проект восточный полигон стоимость оцениваться триллион рубль реконструировать транссиб бам . пропускной способность ключевой железнодорожный магистраль вырастить нынешний миллион миллион тонна груз год увеличиться скорость доставка дальний восток . |ngramms палата_россия фонд_национальный поступить_в_редакция большой_часть миллиард_рубль миллиард_рубль миллиард_рубль средство_фнб средство_фнб средство_фнб средство_фнб год_быть _ _ утвердить_проектный утвердить_проектный В_результат запланировать_срок выполнение_строительный быть_заключить разрешение_на_строительство реализация_проект реализация_проект мероприятие_проект согласно_план что_финансирование отрасль_экономика год_в_рамка финансирование_проект можно_быть триллион_рубль миллион_тонна дальний_восток +1710 |text совет директор уралкалий назначить генеральный директор заместитель председатель совет директор . сообщаться калийный компания . прекратить полномочие . глава совет директор уралкалий подчеркнуть что новое гендиректор назначить изменение состав акционер . уралхий отчитаться покупка процент акция уралкалий миллиардер открытый рынок . новый акционер калийный компания стать группа онэксим . компания миллиардер купить процент бумага уралкалий фонд suleyman kerimov foundation бизнесмен . интерфакс сообщать ссылка неназванный источник что дружественный структура купить процент акция уралкалий неизвестный продавец . информация гендиректор акционер уралкалий сменить требование президент белоруссия . летом год уралкалий оказаться состояние конфликт официальный минск . причина стать отказ российский компания продажа продукция совместный трейдер белорусский калийный компания . уралкалий объяснить решение что конец год разрешить беларуськалия торговать обход бкк . решение российский компания вызвать обвал калийный рынок привести резкий спасть производство белоруссия . В конец минск задержать занимать пост гендиректор уралкалий . В отношение возбудить статья злоупотребление служебный полномочие . согласиться экстрадировать рф отношение возбудить . В конец привезти московский сизый впоследствии перевести домашний арест . |ngramms совет_директор совет_директор генеральный_директор председатель_совет_директор _ _ _ _ _ пресс_релиз калийный_компания калийный_компания калийный_компания __подчеркнуть новое_гендиректор процент_акция процент_акция __и__ открытый_рынок новый_акционер компания_миллиардер процент_бумага бизнесмен__ президент_белоруссия оказаться_в_состояние причина_стать российский_компания российский_компания что_в_конец пост_гендиректор В_отношение злоупотребление_служебный _согласиться В_конец топ_менеджер +1711 |text американский производитель продукт H . J . heinz company kraft foods group подписать соглашение слияние новый структура быть называться kraft heinz company . сообщение heinz . В отмечаться что акционер H . J . heinz company стать держатель процент ценный бумага объединить компания остальной процент достаться акционер kraft foods group . получить специальный дивиденд размер доллар акция . выплата сумма миллиард доллар быть профинансировать счёт инвестиция berkshire hathaway G capital . kraft heinz company как стать крупный производитель продукт питание напиток северный америка мир . согласно прогноз руководство годовой выручка компания составить примерно миллиард доллар . kraft heinz быть владеть восемь бренд стоимость превышать миллиард доллар бренд оцениваться миллиард доллар . что процесс слияние завершиться год . закрытие сделка kraft heinz company планировать увеличить уровень дивиденд акционер kraft . kraft foods group быть частью глобальный производитель снековы kraft foods . год kraft foods . быть разделить самостоятельный компания kraft foods group mondelez international . G capital бразильский фонд прямая инвестиция компания berkshire hathaway приобрести heinz год . |ngramms производитель_продукт быть_называться пресс_релиз что_акционер ценный_бумага объединить_компания миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар G_capital G_capital крупный_производитель продукт_питание северный_америка согласно_прогноз выручка_компания составить_примерно быть_владеть что_процесс закрытие_сделка планировать_увеличить быть_частью глобальный_производитель прямая_инвестиция _ +1712 |text голландский heineken начинать выпуск квас российский завод . писать газета коммерсантъ . завод калининград начать производство квас башкирский стерлитамак быть выпускаться шихан хабаровск иркутск русич . перечисленный марка продажа поступать пиво . В компания пояснить что переход безалкогольный пенный напиток вызвать желание загрузить освободиться мощность . В целое пивная отрасль простаивать процент производственный линия . предприятие статистика примерно заявить директор корпоративный отношение heineken болматовый . технология производство пиво квас похожий дополнительный вложение переоборудование не_требовать . новое сорт квас быть продаваться недалеко производить завод основное соседний регион . росстат целое рынок производство пиво россия год сократиться процент причём процент . падение рынок начаться ввод санкция девальвация рубль . В период год ставка акциз пиво быть увеличить рубль литр сыграть роль снижение потребление пиво россиянин . В настоящее время россия насчитываться пивная завод различный производитель . |ngramms российский_завод писать_газета начать_производство В_компания В_целое производственный_линия производство_пиво производство_пиво быть_продаваться падение_рынок девальвация_рубль быть_увеличить снижение_потребление В_настоящее_время +1713 |text совет директор пао аэрофлот избрать генеральный директор срок год . решение быть заседание совет состояться год председательство основание директива правительство российский федерация сообщение авиакомпания . возглавить аэрофлот год . аэрофлот быть глобальный план компания региональный уровень пассажиропоток миллион человек учёт дочерний компания миллион человек . В международный рейтинг авиакомпания аэрофлот дочка занимать ое место . В год президент россия поставить задача формирование первое россия полноценный авиационный холдинг . государство передать управление аэрофлот ряд региональный авиакомпания . С актив начаться построение группа аэрофлот . В итог преобразование нея войти крупный авиакомпания страна россия основать база региональный авиакомпания россия оренбургский авиалиния низкобюджетный авиакомпания победа дальневосточный авиакомпания создать база авиаперевозчик сахалинский авиатрасса владивосток . В сообщение отмечаться что настоящее прорыв стать создание первое история россия классический лоукостер авиакомпания победа состав группа аэрофлот . благодаря усилие быть важный поправка воздушный кодекс рф ввести невозвратный билет платный провоз багаж возможность нанимать пилот иностранный государство введение чёрный список деструктивный авиапассажир . изменение позволить гармонизировать российский воздушный законодательство сделать возможный развитие перевозка россия . низкобюджетный авиакомпания победа выполнить рейс год . оказать колоссальный влияние доступность авиаперелёт житель страна год работа миллион человек впервые смочь позволить путешествие самолёт . С начало полёт российский лоукостёр перевезти миллион человек . В год представить президент российский федерация стратегия развитие группа аэрофлот год . главный задача стать возвращение крупный авиакомпания мир элита мировой гражданский авиация . К год группа аэрофлот быть войти европейский мировой авиахолдинг . цель быть выполнить существенный опережение . год аэрофлот официально войти глобальный европейский традиционный перевозчик . В год устойчивый позиция российский авиахолдинг двадцатка сильнейший подтвердить ключевой отраслевой издание flight airline business air transport world . пассажиропоток аэрофлот многократно возрасти миллион человек год миллион человек год . С учёт дочерний авиакомпания качество группа пройти год перевезти миллион человек рекордный показатель новый время . бренд аэрофлот год подряд признаваться узнавать авиакомпания мир рейтинг ведущий международный агентство оценка бренд brand finance . стоимость бренд аэрофлот стабильно расти составлять миллиард миллион доллар . аэрофлот признанный премиальный перевозчик . качество сервис рейтинг звезда британский агентство skytrax звезда американский ассоциация apex . аэрофлот являться лауреат престижный международный премия семь признаваться хороший авиакомпания восточный европа версия skytrax дважды любимый иностранный авиакомпания китай версия flyer award . ведущий российский перевозчик быть назвать лидировать авиационный бренд мир результат вручение туристический worldtravel awards . аэрофлот стать крупный эксплуатант современный российский авиатехник . В парка компания самолёт новый поколение sukhoi superjet . В ближний год поставка новый лайнер мс . аэрофлот рассматривать возможность дополнительный увеличение парк самолёт отечественный производство . аэрофлот намеренный укреплять позиция статус глобальный лидер . менеджмент компания подготовить обновить стратегия развитие группа аэрофлот год быть ближний время представить президент россия . |ngramms совет_директор _ _ _ _ _ _ _ генеральный_директор российский_федерация российский_федерация план_компания региональный_уровень миллион_человек миллион_человек миллион_человек миллион_человек миллион_человек дочерний_компания международный_рейтинг президент_россия авиационный_холдинг региональный_авиакомпания региональный_авиакомпания В_итог нея_войти крупный_авиакомпания санкт_петербург дальневосточный_авиакомпания владивосток_ В_сообщение_отмечаться создание_первое благодаря_усилие кодекс_рф иностранный_государство чёрный_список развитие_ житель_страна С_начало полёт_российский представить_президент стратегия_развитие стратегия_развитие главный_задача стать_возвращение авиакомпания_мир авиакомпания_мир гражданский_авиация год_группа быть_выполнить С_учёт дочерний_авиакомпания год_перевезти рекордный_показатель международный_агентство стоимость_бренд миллион_доллар являться_лауреат хороший_авиакомпания восточный_европа российский_перевозчик быть_назвать стать_крупный современный_российский парка_компания sukhoi_superjet В_ближний новый_лайнер рассматривать_возможность самолёт_отечественный глобальный_лидер менеджмент_компания президент_россия__ +1714 |text директива назначение председатель совет директор ростелеком согласовать правительство . сообщить журналист представитель компания . кандидатура предложить минкомсвязи росимущество контролировать имя государство процент голосовать акция оператор . выбор председатель состояться заседание совет директор ростелеком . совет директор компания возглавлять профессор высокий школа экономика . С когда избранный новый состав совет дать структура работать председатель как кандидатура не_согласовать правительство . быть генеральный директор холдинг связьинвест год когда холдинг ликвидировать передача актив ростелеком . быть председатель совет директор ростелеком год . холдинг владеть контрольный пакет акция оператор . |ngramms _ _ _ _ председатель_совет_директор председатель_совет_директор представитель_компания _предложить голосовать_акция совет_директор совет_директор_компания профессор_высокий школа_экономика избранный_новый состав_совет генеральный_директор владеть_контрольный пакет_акция +1715 |text руководитель администрация президент выдвинуть качество кандидат совет директор ростелеком писать ведомость ссылка источник . новый состав совет быть избранный годовой собрание акционер летом год . государство контролировать процент оператор косвенно дочерний структура ростелеком . основный часть кандидат выдвигать росимущество владеть напрямую процент акция . список номинировать совет директор согласоваться правительство администрация президент . издание отмечать что войти состав совет повысить статус представитель государство входить советник министр массовый коммуникация сотрудник росимущество . слово источник издание аппарат правительство список согласовать немой присутствовать быть выдвинуть пост глава совет директор . опросить издание эксперт полагать что выдвижение связать планировать приватизация оператор необходимость повышать стоимость компания год капитализация ростелеком падать . выдвижение совет директор ростелеком подтвердить президент россия песок . образ государство демонстрировать значение придавать тема дальнейший развитие отрасль цитировать песков . государство протяжение год заявлять план приватизация ростелеком . В год провести не_удаться приватизация глава росимущество дергуновый называть маловероятный . сообщаться что ростелеком обратиться господдержка направить заявка привлечение средство размер десять миллиард рубль рамка механизм проектный финансирование . |ngramms руководитель_администрация президент__ состав_совет быть_избранный собрание_акционер основный_часть процент_акция администрация_президент издание_отмечать войти_в_состав массовый_коммуникация источник_издание аппарат_правительство совет_директор эксперт_полагать планировать_приватизация пресс_секретарь президент_россия_ дальнейший_развитие глава_росимущество средство_в_размер миллиард_рубль проектный_финансирование +1716 |text ирландский авиакомпания ryanair установить новый рекорд пассажиропоток перевезти финансовый год завершиться миллион пассажир сообщать wall street journal . В основное рост быть обеспечить счёт предварительный заказ . месяц загрузка самолёт авиакомпания вырасти процент . непосредственно объесть перевозка сократиться процент миллион сравнение месяц предыдущий год . связать что текущий год пасха европа отмечаться поздний соответственно туристический активность . В месяц компания добавить новый рейс основное дублинский лондонский аэропорт . ryanair являться крупный бюджетный перевозчик европа . компания оперировать флот самолёт осуществлять пассажирский перевозка направление . выручка год составить миллиард евро . перевозчик планировать год открыть полёт россия маршрут дублин москва дублин петербург . наметить открытие направление не_состояться . начать рейс линия быть отложить неопределённый срок . |ngramms установить_новый финансовый_год миллион_пассажир wall_street_journal В_основное быть_обеспечить предварительный_заказ самолёт_авиакомпания объесть_перевозка предыдущий_год текущий_год новый_рейс являться_крупный бюджетный_перевозчик пассажирский_перевозка год_составить миллиард_евро перевозчик_планировать год_открыть полёт_в_россия линия_быть +1717 |text руководство завод японский компания mitsubishi materials решить урезать зарплата качество наказание взрыв результат погибнуть человек двенадцать получить ранение . сообщать новость ссылка японский . директор завод потерять процент заработок непосредственный заместитель руководство различный уровень лишиться часть зарплата семь рядовой сотрудник связанный технологический процесс сократить вознаграждение процент . жест призвать показать солидарность жертва пострадавший взрыв . период время зарплата быть сократить не_разглашаться . завод mitsubishi materials находиться город йоккаити префектура миэ западный часть страна . сведение издание japan press причина взрыв стать химический реакция время технический работа . взрыв привести десятиминутный пожар вызвать масштабный разрушение . завод специализироваться выпуск полупроводник продукция основа кремний . компания mitsubishi materials являться лидер местный рынок полупроводниковый продукция . заниматься производство кремниевый подложка цемент запчасть . |ngramms руководство_завод японский_компания сообщать_риа_новость директор_завод технологический_процесс быть_сократить часть_страна компания_mitsubishi заниматься_производство +1718 |text easygroup кипрский бизнесмен стелиоса хадж stelios haji ioannou принадлежать низкобюджетный авиакомпания easyjet планировать открыть сеть супермаркет easyfoodstore . сообщаться заявление предприниматель разместить недавно создать сайт easyfoodstore.com . пилотный супермаркет планироваться разместить цокольный этаж девятиэтажный здание лондонский район . строение полностью принадлежать easygroup быть разместить гостиница спортзал этаж группа собираться сдать аренда офис . easyfoodstore задумываться как конкурент торговый сеть низкий цена aldi lidl . являться называть жёсткий дискаунтер hard discounters . устанавливать минимальный наценка товар достигать существенный экономия счёт сокращение площадь низкий ассортимент товар небольшой работник . жёсткий дискаунтер продавать основное товар собственный торговый марка . easygroup быть основать конец год . группа владеть бренд отличительный особенность являться наличие слово easy . В easygroup входить easyjet сеть кинотеатр отель спортзал . группа работать финансовый сектор общепит предоставлять транспортный услуга . |ngramms планировать_открыть быть_разместить группа_собираться торговый_сеть низкий_цена торговый_марка быть_основать группа_работать финансовый_сектор транспортный_услуга +1719 |text президент россия ход прямая линия эфир телеканал россия объяснить почему правительство разрешить руководитель госкомпания не_публиковать декларация доход . слово президент решение связать что совет директор крупный компания работать иностранный гражданин . подчеркнуть что не_видеть ничто страшный добровольный обнародование доход руководитель государственный компания . правительство кодекс поведение бизнес . реально не_работать . спросить мнение настойчиво рекомендовать руководитель компания предъявить доход добавить . В конец сообщить что компания подконтрольный государство разрешить не_раскрывать доход . В идти руководитель ржд газпром роснефть сечин . правительство постановление изменить порядок публикация сведение освободить обязанность руководитель открытый акционерный общество член семья . публиковать дать руководитель заместитель главное бухгалтер компания процент принадлежащий государство чей руководство назначаться правительство . тимаковый пояснить что коммерческий компания являться госслужащий бизнесмен . В кремль назвать решение изменение порядок публикация дать доход прерогатива кабинет министр . В год премьер подписать постановление обязать руководитель ржд роснефть газпром ряд организация раскрывать сведение доход сайт компания . руководитель корпорация быть предоставлять сведение доход имущество супруг несовершеннолетний ребёнок . сечин отказаться публиковать дать доход . глава ржд объяснять забота безопасность семья . глава роснефть заявить что указ президент содержаться требование предоставлять сведение доход не_распространяться . |ngramms президент_россия__ прямая_линия правительство_разрешить руководитель_госкомпания крупный_компания иностранный_гражданин _подчеркнуть государственный_компания добавить_ топ_менеджер топ_менеджер топ_менеджер подконтрольный_государство руководитель_ржд руководитель_ржд _ _сечин порядок_публикация порядок_публикация обязанность_руководитель акционерный_общество публиковать_дать принадлежащий_государство пресс_секретарь премьер_министр компания_являться В_кремль __подписать руководитель_корпорация отказаться_публиковать глава_ржд указ_президент +1720 |text уполномоченный защита право предприниматель составить новый список эмигрировать россия преследовать правоохранительный орган бизнесмен желающий вернуться родина . писать рбк ссылка источник . издание список девять человек называться трое . бывший депутат заксобрание пермский край обвинять хищение председатель жилищный кооператив ленинградский область артюшина инкриминироваться мошенничество глава компания макуриный вменять махинация недвижимость . четверо участник якобы мочь быть вычеркнуть список позиция выбор глава интерпол . советовать руководство организация не_поддерживать кандидатура россиянин . представитель опровергать версия . аналогичный список быть составить начало год . В войти десяток предприниматель вынужденный уехать россия необоснованный мнение преследование . омбудсмен передать документ президент предложить прекратить преследование фигурант список обмен возвращение россия . глава государство поручить правоохранительный орган отменить заочный арест международный розыск некоторый бизнесмен . имя быть дать гарантия неприменение мера пресечение связанный заключение стража . россия вернуться шестеро участник первое список . |ngramms _ _ _ новый_список правоохранительный_орган правоохранительный_орган девять_человек бывший_депутат ленинградский_область глава_компания мочь_быть быть_составить президент__ глава_государство международный_розыск быть_дать первое_список +1721 |text американский компания apple использовать google cloud platform облачный хранилище google хранение дать icloud . сообщать cnbc ссылка ios security guide . как отмечать телеканал apple периодически публиковать отчёт безопасность ранний публикация указываться использование компания хранение информация удалённый система amazon web services microsoft azure . обновить версия ios security guide что apple стать использовать google cloud platform microsoft azure список исчезнуть . В документ не_сообщаться когда компания начало впервые пользоваться услуга google . В apple microsoft запрос журналист не_ответить . сообщаться что версия ios найти баг позволять удалённый отключить устройство apple . В тестовый версия ios . баг исправить . |ngramms американский_компания использовать_google использовать_google как_отмечать В_документ компания_начало пользоваться_услуга +1722 |text российский железный дорога ржд ход визит россия бангкок заключить меморандум проект строительство железнодорожный инфраструктура морской угольный терминал остров калимантан . сообщать новость . меморандум ржд подписать таиландский компания banpu public company limited строительство железнодорожный инфраструктура морской угольный терминал калимантан . В ход визит быть подписать соглашение взаимопонимание интер рао инжиниринг компания силовой машина таиландский компания turbo machinery . . прибыть столица таиланд официальный визит . глава российский правительство проводить переговоры страна прают чан оча . В год минэкономразвития россия обсуждать министерство торговля индонезия ряд проект российско индонезийский сотрудничество создание сила ржд транспортный инфраструктура перевозка уголь остров калимантан . строительство объект начаться год . стоимость проект составлять миллиард доллар . О что ржд интересоваться проект строительство железнодорожный линия индонезия летом год глава компания . В год индонезийский газета jakarta сообщать что россия готовый инвестировать средство строительство железный дорога связывать провинция центральный восточный калимантан протяжённость километр . местный власть выступить проект соображение защита экология . губернатор провинция центральный калимантан заявить что мочь навредить тропический леса . |ngramms российский_железный_дорога премьер_министр премьер_министр россия__ проект_строительство железнодорожный_инфраструктура угольный_терминал угольный_терминал сообщать_риа_новость строительство_железнодорожный строительство_железнодорожный В_ход быть_подписать силовой_машина официальный_визит российский_правительство минэкономразвития_россия министерство_торговля стоимость_проект миллиард_доллар что_ржд глава_компания _ что_россия железный_дорога местный_власть что_это_мочь +1723 |text торговый сеть retail group входить магазин пятёрочка перекрёсток задумать увеличить доля белорусский продукт магазин . рассказать директор взаимодействие орган государственный власть передавать агентство бёлтый . думать что белорусский министерство торговля смочь проанализировать как нарастить объём продажа территория россия добавить . идти молочный продукция уточнить . сообщить что настоящее время продукция белоруссия занимать примерно доля как российский . беларусь являться стратегический партнёр зрение молочный категория . хотеть доля наращиваться резюмировать . В начало год претензия товар белоруссия неоднократно предъявлять россельхознадзор . В попытка реэкспорт территория страна европейский продукт попасть российский эмбарго текущий год быть ужесточить правило ввоз сельскохозяйственный продукция . retail group управлять сеть магазин перекрёсток пятёрочка карусель основать год . основный акционер являться процент основатель пятёрочка процент процент находиться свободный обращение . |ngramms торговый_сеть retail_group retail_group увеличить_доля орган_государственный _ передавать_агентство министерство_торговля объём_продажа молочный_продукция топ_менеджер стратегический_партнёр российский_эмбарго текущий_год сеть_магазин основный_акционер альфа_группа свободный_обращение +1724 |text компания goodyear представить международный автосалон женева инновационный модель шина . поступить редакция лента . . отмечаться что умный покрышка предназначить установка беспилотный автомобиль развивать концепция транспортный система будущее . главный отличие модель eagle традиционный шина что покрышка иметь форма шар . согласно расчёт goodyear сферический шина сделать автомобиль манёвренный безопасный смочь двигаться направление разворачиваться градус не_быть скользить участок покрыть снег лёд . соединение мяч кузов обеспечиваться посредством магнитный технология применяться конструкция поезд магнитный подушка . отсутствие традиционный механический подвеска позволять снизить уровень шум что повышать комфорт пассажир . образец intelligrip экстравагантный . С вид обычный шина оборудовать датчик помощь собирать информация дорожный покрытие климатический условие собственный температура давление . собранный параметр передаваться система управление беспилотный транспортный средство что позволять сократить тормозной путь автомобиль улучшить управляемость оптимизировать работа вспомогательный система . goodyear полагать что будущее умный шина стать частью автомобильный электронный помощник как esc электронный система контроль устойчивость bcs система управление тормоз scs система управление подвеска . |ngramms пресс_релиз транспортный_система согласно_расчёт система_управление система_управление система_управление транспортный_средство что_позволять что_в_будущее стать_частью система_контроль +1725 |text американский компания продажа фрукт chiquita объединиться ирландский конкурент fyffes . распространить сообщение chiquita . объединить компания получить название chiquitafyffes . совокупный продажа мочь превысить миллион коробка банан большой конкурент . В chiquita прогнозировать что совместный продажа fyffes достигнуть миллиард доллар год . слияние предприятие быть организовать обмен акция . владелец fyffes получить процент chiquitafyffes остальной доля быть принадлежать chiquita . fyffes обнародовать финансовый результат год . чистый прибыль компания выплата налог составить миллион евро выручка миллиард евро . chiquita год отчитаться чистый убыток миллион доллар выручка миллиард доллар . chiquita вести бизнес государство . расположить город штат северный каролина . chiquita реализовать продукция собственный бренд торговый марка fresh express . штат объединить компания составить тысяча человек . основный конкурент chiquitafyffes банановый рынок стать dole foods fresh del monte produce . доля производитель приходиться треть рынок банан мир . рейтинг крупный производитель банан возглавлять индия . следовать уганда китай . В десятка находиться эквадор бразилия индонезия колумбия камерун танзания . |ngramms американский_компания объединить_компания объединить_компания получить_название мочь_превысить миллиард_доллар миллиард_доллар быть_организовать обмен_акция быть_принадлежать финансовый_результат чистый_прибыль выплата_налог миллион_евро миллиард_евро вести_бизнес штаб_квартира собственный_бренд торговый_марка тысяча_человек основный_конкурент крупный_производитель +1726 |text государственный роснефть завершить сделка приобретение тнк вр . официальный роснефть . В результат консолидация сто процент акция тнк вр роснефть стать крупный мир публичный нефтегазовый компания объём добыча запас углеводород . ценный бумага тнк вр равный доля принадлежать британский вр консорциум российский акционер aar реновый access industries . доля aar роснефть выкупить миллиард доллар . доля вр получить российский нефтяной госкомпания миллиард доллар процент акция роснефть . вр дополнительно приобрести процент акция роснефть роснефтегаз . В результат сделка вр стать второе величина акционер роснефть доля процент учёт иметь вр пакет процент . как передавать новость президент россия назвать увеличение доля вр роснефть верный шагом приватизация госсобственность . В очередь как сообщать интерфакс руководитель вр дадли заявить встреча что британский компания поддерживать российский партнёр стоить гора . И услышать слух что хотеть акция роснефть не_верить имя добавить дадли . президент роснефть сечин рассказать что текущий год добыча нефть объединить компания достигнуть миллион тонна газа миллиард кубометр . сравнение год добыча нефть россия цду тэк составить миллион тонна газа миллиард кубометр . сечин указать что выручка объединить роснефть тнк вр год уровень триллион рубль . роснефть договориться покупка тнк вр осень год . В конец год компания начать процесс интеграция как занять год . сделка поглощение тнк вр роснефть стать крупный история отечественный бизнес . |ngramms пресс_релиз В_результат В_результат процент_акция процент_акция процент_акция крупный_в_мир нефтегазовый_компания запас_углеводород ценный_бумага британский_вр альфа_группа миллиард_доллар миллиард_доллар российский_нефтяной стать_второе передавать_риа_новость президент_россия__ увеличение_доля В_свой_очередь как_сообщать британский_компания российский_партнёр _сечин рассказать_ текущий_год добыча_нефть добыча_нефть объединить_компания миллион_тонна миллион_тонна миллиард_кубометр миллиард_кубометр триллион_рубль договориться_о_покупка В_конец компания_начать стать_крупный отечественный_бизнес +1727 |text красноярский компания славица выпустить фирменный рожок торговый марка бедный еврей аромат чернослив . сообщать портал нгс . новость . шоколадный вафельный рожок стоить рубль . обёртка изобразить государственный флаг израиль . новинка . недавно появиться . быть хохол ранний американец . часто фотографировать покупатель рассказать продавец киоск новосибирск . В компания комментарий отказаться . как писать нгс ответ просьба прокомментировать выпуск новое мороженое финансовый директор славица рассмеяться . председатель еврейский община набережная челны заявить что потребовать прекратить производство бедный еврей . Я попросить коллега привезти образец мороженое . Я завтра увидеть спросить производитель что приехать набережная челны разваливать толерантность ? О думать ? хотеть не_быть бедный еврей дать деньга бедный еврей не_быть ! где видеть бедный еврей ? издание бизнес . online . В случай отказ снять производство мороженое обещать обратиться суд . возмутить использование государственный флаг израиль согласование посольство страна . компания славица год выпустить мороженое обамка обвинение расизм антиамериканизм снять производство . |ngramms торговый_марка как_писать просьба_прокомментировать выпуск_новое финансовый_директор __заявить прекратить_производство В_случай обратиться_в_суд год_выпустить +1728 |text рыбный консервы шпрот мочь попасть санкционный список случай продление продовольственный эмбарго . сообщать ссылка руководитель росрыболовство . глава ведомство подчеркнуть что россия достаточно самообеспечить консервный продукция . У нет никакой проблема импорт консервы экзотический . мочь перекрыть страна не_находиться санкционный список африканский страна добавить . россельхознадзор ввести запрет импорт рыбный продукция латвия эстония . В партия консервированный шпрот быть обнаружить канцероген вещество вызывающий рак бензапирен . правительство россия допустить что срок действие продовольственный эмбарго продлиться . министр экономический развитие заявить что отмена эмбарго быть зависеть снятие санкция россия . считать что инициатива отмена ограничение исходить ес . запрет импорт ряд продовольственный товар сша австралия канада евросоюз норвегия быть ввести россия год . ограничение установить ответ антироссийский санкция страна вызвать ситуация украина . запрет вводиться год касаться ввоз россия государство фрукт овощ молочный мясной продукция . год список пополниться живой рыба . итог месяц ввоз рыба россия упасть процент тысяча тонна сравнение аналогичный период прошлое год . |ngramms санкционный_список санкционный_список _ глава_ведомство что_россия нет_никакой добавить_ россельхознадзор_ввести быть_обнаружить правительство_россия что_срок министр_экономический_развитие __заявить что_инициатива быть_ввести ситуация_на_украина тысяча_тонна аналогичный_период_прошлое_год +1729 |text власть сша разрешить uc rusal компания принадлежащий дерипаск заключать новое контракт старое партнёр сообщение управление контроль иностранный актив минфин сша ofac . уточняться что резидент сша партнёр можно заключать соглашение uc rusal компания дерипаск попасть санкция случай сотрудничество длиться год . не_попасть санкция как предусмотреть американский закон партнёр компания дерипаск прийтись предоставить требование ofac документ подтверждать что продавать покупать продукция объём что ранний . дерипаск компания попасть санкция американский минфин . ведомство продлить крайний срок заключение сделка резидент сша . В дальнейший руководство uc rusal материнский компания en вести переговоры вашингтон дерипаск представитель сократить доля предприятие уровень процент . В стать что компания холдинг en мочь зарегистрироваться создавать россия офшор официально специальный административный район . |ngramms власть_сша _дерипаск новое_контракт иностранный_актив минфин_сша компания_дерипаск американский_закон партнёр_компания покупать_продукция срок_заключение В_дальнейший +1730 |text туроператор инарта вояж организовать рф тур греческий остров родос прекратить деятельность . сообщать ассоциация туроператор россия ссылка участник рынок . сайт компания информация приостановка деятельность нет . телефон указанный контактный дать не_отвечать . судить курс валюта указанный состояние год сайт год не_обновляться . информация приостановка работа инарта вояж появиться туристический . турпром писать что инарта вояж исключить единый реестр туроператор . инфорация турпром финансовый трудность компания начаться минувший летом . причина затруднение мочь стать активный демпинг сторона конкурент греческий направление . турбизнес сообщать что трудность быть клиент инарта вояж . В конец год турист прийтись повторно оплачивать проживание краковский отель как бронь аннулировать отсутствие оплата сторона инарта вояж . В компания объяснить затруднение перечисление деньга технический реорганизация офис . впоследствии информация турбизнес потеря пострадавший клиент быть возместить . инарта вояж работать российский рынок выездной туризм середина год . компания начало отправлять российский турист отдых греция . В год инарта вояж организовывать тур израиль индия европа прибалтика . |ngramms прекратить_деятельность ассоциация_туроператор участник_рынок приостановка_деятельность курс_валюта приостановка_работа единый_реестр финансовый_трудность мочь_стать В_компания пострадавший_клиент российский_турист В_последний_год шри_ланка +1731 |text В производство легковой автомобиль россия снизиться процент сравнение год сообщение росстат . месяц быть выпустить тысяча автомобиль . сравнение год производство легковой машина сократиться процент . снижение производство происходить фон падение продажа автомобиль россия . ассоциация европейский бизнес аеб сообщить что продажа новый легковой лёгкое коммерческий автомобиль lcv россия год упасть процент сравнение прошлое год составить тысяча штука . сокращение продажа быть ожидать ажиотажный спрос автомобиль конец год . фон девальвация рубль реализация новый легковой машина lcv увеличиться процент год составить тысяча штука . итог год ассоциация ожидать падение продажа легковушка россия процент миллион штука . министр промышленность торговля мантур заявить что снижение производство автомобиль год составить процент . |ngramms легковой_автомобиль быть_выпустить тысяча_автомобиль легковой_машина снижение_производство снижение_производство продажа_автомобиль ассоциация_европейский_бизнес что_продажа новый_легковой новый_легковой лёгкое_коммерческий прошлое_год тысяча_штука тысяча_штука сокращение_продажа автомобиль_в_конец девальвация_рубль год_и_составить ассоциация_ожидать падение_продажа миллион_штука промышленность_и_торговля _мантур год_составить +1732 |text почта россия увеличить доля доставить срок корреспонденция регион процент второе квартал год процент второе квартал . сообщение предприятие ссылка результат проверка роскомнадзор . показатель выполнение срок доставка магистральный межобластной маршрут пройти год улучшиться регион страна . второе квартал норматив соблюдаться регион страна второе квартал год регион процент корреспонденция быть доставить адресат установленный срок . внутриобластной письменный корреспонденция итог квартал доставляться получатель установленный срок процент случай . показатель год вырасти процентный пункт . В москва показатель выполнение контрольный срок роскомнадзор составить соответственно процент . заключить прямая договор ведущий авиакомпания провести открытый конкурс автоперевозка подписать соглашение федеральный пассажирский компания ужесточить контроль срок прохождение отправление сортировочный узел . шаг позволить сократить срок межобластной доставка корреспонденция генеральный директор фгуп почта россия страшновый . контрольный срок пересылка письменный корреспонденция город федеральный значение административный центр субъект россия быть утвердить постановление правительство рф год . |ngramms почта_россия почта_россия увеличить_доля результат_проверка показатель_выполнение показатель_выполнение срок_доставка регион_страна регион_страна быть_доставить установленный_срок установленный_срок процент_случай процентный_пункт санкт_петербург контрольный_срок контрольный_срок пассажирский_компания позволить_сократить генеральный_директор федеральный_значение административный_центр россия_быть правительство_рф +1733 |text компания трансаэро улучшить позиция рейтинг безопасный авиакомпания мир . рейтинг ежегодно составляться международный агентство jacdec специализироваться анализ информация безопасность полёт . В исследование крупный авиакомпания мир . трансаэро оказаться год строчка рейтинг год улучшить позиция . итог год компания занять место . составление рейтинг агентство jacdec рассчитывать индекс безопасность компания основание анализ девять ключевой параметр авиационный безопасность количество катастрофа привести человеческий потеря случай повреждение самолёт привести разрушение серьёзный авиационный происшествие . В целое год стать мрачный мировой авиаотрасль количество погибший катастрофа воздушный транспорт увеличиться сравнение год погибнуть пассажир . В аутсайдер рейтинг оказаться компания malaysia airlines лайнер прошлое год потерпеть крушение украина индийский океан . В результат катастрофа перевозчик занять позиция рейтинг итог год быть место . |ngramms авиакомпания_мир авиакомпания_мир международный_агентство безопасность_полёт В_исследование строчка_рейтинг компания_занять авиационный_безопасность В_целое воздушный_транспорт оказаться_компания индийский_океан В_результат год_он_быть +1734 |text федеральный таможенный служба рф ужесточить оформление проверка кондитерский продукция произвести украина . сообщать новость ссылка глава ассоциация укркондпром куда входить крупный производитель украина балдинюк . балдинюк что ужесточение проверка впервые начаться переживать очередной виток начаться . слово российский таможенник подвергать сомнение сертификат происхождение товар украинский производитель . глава укркондпром оценить сокращение поставка украинский кондитер рф примерно процент . В цифра слово балдинюк не_входить полный прекращение поставка корпорация roshen быть запретить решение роспотребнадзор . В фтс россия информация ужесточение проверка украинский кондитер комментировать отказаться . В конец роспотребнадзор запретить импорт россия продукция кондитерский компания roshen заявить что не_соответствовать санитарный требование . В время проверка провести страна таможенный союз не_выявить наличие конфета roshen повышенный содержание вредный вещество . |ngramms таможенный_служба кондитерский_продукция сообщать_риа_новость глава_ассоциация куда_входить крупный_производитель украинский_производитель сокращение_поставка прекращение_поставка корпорация_roshen пресс_служба комментировать_отказаться запретить_импорт кондитерский_компания В_то_же_время таможенный_союз вредный_вещество +1735 |text чистый прибыль сотовый оператор мегафон первое квартал год снизиться процент сравнение квартал год миллиард рубль . сообщаться отчётность компания . основный причина падение прибыть убыток курсовой разница валюта . В отчётный квартал составить миллиард рубль миллион рубль год . поскольку подавлять часть деятельность мегафон приходиться россия дать случай идти снижение курс рубль отношение доллар евро . убыток определить основный разница чистый прибыль первое квартал текущий год прошлое . год чистый прибыль быть равный миллиард рубль . образ практически уменьшение прибыть миллиард рубль связать снижение курс рубль отношение иностранный валюта . выручка компания составить миллиард миллиард первое квартал прошедшее год . одновременно увеличиться миллиард рубль миллиард рубль операционный расход необходимый обеспечение работа компания . В результат операционный прибыль уменьшиться миллиард рубль сравнение миллиард рубль первое квартал год . капитальный затрата оператор увеличиться сравнение квартал год составить миллиард рубль . свободный денежный поток уменьшиться процент миллиард рубль . чистый долг состояние год составить миллиард рубль . выручка оператор россия первое квартал год вырасти процент миллиард рубль показатель oibda вырасти процент сравнение показатель год миллиард рубль . рентабельность oibda составить процент . |ngramms чистый_прибыль чистый_прибыль чистый_прибыль сотовый_оператор миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль отчётность_компания причина_падение В_отчётный миллион_рубль дать_случай курс_рубль курс_рубль первое_квартал текущий_год иностранный_валюта выручка_компания прошедшее_год операционный_расход В_результат операционный_прибыль капитальный_затрата год_и_составить свободный_денежный_поток чистый_долг год_составить +1736 |text qualcomm обвинить китайский производитель искажение количество устройство цель уменьшение лицензионный выплата . А китайский регулятор постановить что патент компания давать монопольный положение рынок . мочь привести огромный штраф . сообщать . национальный комиссия развитие реформа national development reform commission ndrc заявить что qualcomm завышать цена базовый патент standard essential patent злоупотреблять рыночный положение . род патент компания обязать лицензировать желающий справедливый дискриминационный основание как использоваться базовый отрасль технология . qualcomm владеть патент ключевой элемент G G беспроводный технология . производитель вынудить соответствовать имя продукция мочь корректно взаимодействовать устройство компания . ndrc заявить что начало расследование завышение стоимость патентный отчисление компания qualcomm китай сравнение остальной мир жалоба . американский компания мочь быть наказать сумма составлять процент выручка финансовый год что составлять миллиард доллар . информация государственный издание securities times регулировать орган решить что компания qualcomm иметь монопольный положение рынок . закон китай быть монополист не_запретить qualcomm быть наказать ndrc решить что американец злоупотреблять позиция рынок . аберл derek aberle президент qualcomm признать что скорее прийтись сделать выплата затрудниться назвать объесть . В очередь полагать что некоторый китайский компания занижать количество производить G устройство . qualcomm обменяться обвинение китайский регулятор компания фон сильный финитог третье квартал . финансовый год . американский фирма получить чистый прибыль размер миллиард доллар что процент выше год хороший прогноз аналитик . хороший финитог не_хватить компенсировать негатив скандал китай открытие торг биржа nasdaq акция упасть примерно процент сравнение стоимость закрытие предыдущий торговый сессия . . цена составлять доллар . |ngramms китайский_производитель китайский_регулятор что_qualcomm компания_обязать начало_расследование компания_qualcomm остальной_мир американский_компания мочь_быть финансовый_год финансовый_год что_составлять миллиард_доллар миллиард_доллар что_компания В_свой_очередь что_некоторый китайский_компания третье_квартал американский_фирма чистый_прибыль процент_выше торговый_сессия цена_составлять +1737 |text процесс оздоровление задолженность компания мечело сбербанк идти нормальный . заявить президент крупный россия кредитный организация передавать интерфакс . слово сбербанк серьёзно реструктурировать обязательство мечело большой часть переложить здоровый актив . добавить что угольный актив мечело чувствовать хороший сравнение металлургический . объесть реструктурировать долг компания не_сообщить . совокупный чистый долг мечело текущий год составлять миллиард доллар . глава сбербанк добавить что не_понимать что акция мечело резко упасть . слово снижение котировка мечело узнать заверить что компания не_происходить ничто не_знать сбербанк . акция мечело ход торг московский биржа рухнуть процент . В связать обвал котировка сомнение инвестор относительно финансовый стабильность компания фон расти долг . В начало сообщаться что мечело обратиться кредитор просьба ковенантный каникулы пересмотр условие выдача заём . В мечело объяснить резкий снижение стоимость акция рыночный спекуляция . проверка сделка ценный бумага компания начать цб . московский биржа акция мечело вырасти процент . |ngramms крупный_в_россия кредитный_организация _ _добавить долг_компания чистый_долг текущий_год миллиард_доллар глава_сбербанк резко_упасть В_начало резкий_снижение стоимость_акция ценный_бумага +1738 |text басманный суд москва заочно арестовать гендиректор уралкалий объявить международный розыск . как сообщать заявить суд . как уточнять росбалт удовлетворить ходатайство следствие арест месяц . срок начать отсчитывать время как руководитель компания быть доставить россия . источник издание что учёт суд решение соблюсти формальность направление ходатайство экстрадиция белоруссия . президент белоруссия заявить что передать москва компенсировать нанести ущерб . глава государство оценить потеря республика ситуация уралкалий миллиард доллар . россия слово потерять миллиард доллар . заявлять что минск мочь передать россия арестовать . ск рф сообщить что отношение завести уголовный статья злоупотребление полномочие . изначально обвинять нарушение статья белорусский кодекс обвинение переквалифицировать статья хищение . гендиректор уралкалий быть задержать белоруссия конец . руководитель находиться домашний арест съёмный квартира минск . обвинять проходить акционер уралкалий . версия ск белоруссия предприниматель пытаться захватить контроль канал сбыт время работа белорусский калийный компания бкк . бкк лето год являться совместный трейдер уралкалий беларуськалия . В конец прошлое год сначала издать указ возможность белорусский компания торговать обход бкк сотрудничество отказаться уралкалий . развал картель привести обвал акция крупный компания отрасль цена калийный удобрение предсказать существенный спад . |ngramms суд_москва арестовать_гендиректор международный_розыск как_сообщать пресс_секретарь _ _ как_уточнять быть_доставить источник_издание суд_решение президент_белоруссия __заявить глава_государство оценить_потеря миллиард_доллар миллиард_доллар _заявлять мочь_передать ск_рф топ_менеджер топ_менеджер злоупотребление_полномочие сбыт_ калийный_компания являться_совместный В_конец прошлое_год _издать крупный_компания существенный_спад +1739 |text почта банк федерация компьютерный спорт россия фкс россия объявить начало стратегический партнерство запуск совместный долгосрочный программа направить развитие киберспорт россия . К конец год банк планировать привлечь порядок тысяча новый клиент геймер киберспортсмен . инвестиция почта банка проект составить десяток миллион рубль год сообщить лента . кредитный организация . основный элемент программа почта банка фкс россия стать вывод рынок новый карта геймер уникальный вертикальный дизайн запуск портал cyberlab начинающий киберспортсмен поддержка банк важный российский турнир киберспорт . первое этап линейка карта быть доступный вариант дизайн . вариант дизайн определиться итог открытый конкурс объявить почта банк . В результат открытый онлайн голосование хороший работа отправиться оценка жюри банк привлечь ведущий эксперт дизайн российский игровой индустрия . индустрия киберспорт развиваться стремительный темп иметь огромный потенциал рост . аудитория россия миллион человек ядро аудитория поклонник киберспорт миллион человек . некоторый исследование ежегодно трата геймер игра расти среднее процент год президент председатель правление почта банка . проанализировать целевой аудитория любить блог социальный сеть активно покупать интернет создать продукт давать владелец финансовый выгода доступ эксклюзивный контент . уверенный что геймер достоинство оценить вертикальный формат стильный тематический дизайн карта очередь директор развитие розничный бизнес почта банка . российский киберспортивный рынок достаточно игрок . стратегический партнерство лидер российский банковский рынок почта банк разумеется сигнал зрелость индустрия большой потенциал киберспортивный аудитория подчеркнуть президент федерация компьютерный спорт россия . почта банк выступить генеральный партнёр кубок россия киберспорт . отборочный этап кубок начаться продлиться . основной этап кубок россия стартовать завершиться . время финал кубок россия киберспорт состояться тюмень почта банк вручить специальный денежный приз наиболее ценный игрок финал турнир valuable dota . победитель быть выбрать команда присутствующий финал . cyberlab портал где киберспортсмен начинать путь любитель профессионал . смочь прокачать навык руководство звёздный наставник выбрать хороший оборудование сервис готовиться выступление турнир фкс . |ngramms почта_банк почта_банк почта_банк почта_банк почта_банк спорт_россия объявить_о_начало стратегический_партнерство направить_на_развитие К_конец год_банк планировать_привлечь новый_клиент почта_банка почта_банка почта_банка почта_банка проект_составить миллион_рубль кредитный_организация быть_доступный вариант_дизайн вариант_дизайн открытый_конкурс В_результат хороший_работа потенциал_рост миллион_человек миллион_человек председатель_правление _ _ целевой_аудитория социальный_сеть директор_по_развитие розничный_бизнес лидер_российский подчеркнуть_президент россия__ генеральный_партнёр быть_выбрать +1740 |text президент исполнительный директор японский компания nissan motor гон решить уйти отставка . сообщать press ссылка заявление автоконцерн . пост заменить компания хироть саикава приступить выполнение обязанность . Я продолжить контролировать направлять компания как самостоятельный единица рамка альянс renault nissan mitsubishi . смочь уделять большой время стратегический развитие расширение альянс гон . как отмечать гон сохранить должность председатель совет директор nissan . гон занимать руководящий пост концерн являться президент nissan motor председатель совет директор французский renault возглавлять совет директор mitsubishi motors . пост занять как nissan приобрести процент акция mitsubishi . как сообщаться год альянс быть помочь mitsubishi преодолеть финансовый кризис стать результат скандал подтасовка показатель топливный эффективность автомобиль . nissan motor крупный автопроизводитель япония входить состав альянс renault nissan . штат компания конец прошлое год насчитывать тысяча человек отмечать новость . |ngramms исполнительный_директор японский_компания сообщать_associated_press топ_менеджер продолжить_контролировать альянс_renault альянс_renault большой_время стратегический_развитие как_отмечать сохранить_должность председатель_совет_директор председатель_совет_директор совет_директор процент_акция финансовый_кризис входить_в_состав штат_компания прошлое_год тысяча_человек +1741 |text хороший экономический показатель аэрофлот итог год объясняться успех цифровизация бизнес процесс процесс сервис услуга . заявить генеральный директор авиаперевозчик интервью телеканал россия . согласно оценка компания bain сегодняшний аэрофлот цифровизация занимать место мир авиакомпания . А продажа сайт являться лидер россия как . прошлое год миллиард рубль билет сайт . примерно миллиард доллар что довольно существенно . рассказать что объесть выручка год составить миллиард рубль что процент год . операционный прибыль составить миллиард рубль . рост примерно процент . чистый прибыль составить миллиард рубль . что показатель компания есть доля называть сантимент рынок курсовой разница . У возврат pdp произойти предоплата самолёт размещать депозит . быть валюта сделать . И когда возвращаться курс . добавить доход примерно миллиард рубль объяснить генеральный директор аэрофлот . |ngramms генеральный_директор генеральный_директор _ оценка_компания являться_лидер миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль год_составить операционный_прибыль чистый_прибыль компания_есть +1742 |text итальянский концерн fiat договориться покупка процент акция американский автопроизводитель chrysler пенсионный фонд профсоюз работник автопромышленность сша uaw retiree medical benefits trust известный как veba trust . сообщаться fiat . В результат сделка итальянский компания принадлежать процент chrysler получить полный контроль американский производитель . стоимость сделка составить миллиард доллар . сначала fiat перечислить миллиард доллар остаться средство продавец акция получить завершение сделка . миллион доллар фонд uaw trust выплатить chrysler . публикация акция итальянский компания вырасти процент евро . состояние москва котировка скорректироваться вниз евро . сделка завершиться необходимость ipo первичный размещение акция биржа отпасть . chrysler подать заявка ipo конец год . объявить выход биржа компания вынудить uaw trust мочь договориться fiat стоимость процент акция фонд оценивать пакет миллиард итальянец миллиард доллар . С помощь ipo рамка планироваться разместить процент акция сторона рассчитывать установить справедливый стоимость бумага chrysler . сторона переговоры купля продажа акция год . uaw trust получить право требовать chrysler проведение ipo год . соглашение пенсионный фонд fiat выкупить акция chrysler образ спасти банкротство . как крупный производитель chrysler серьёзно пострадать кризис автоиндустрия начаться результат распространение финансовый кризис год отрасль мировой экономика . |ngramms договориться_о_покупка процент_акция процент_акция процент_акция американский_автопроизводитель пенсионный_фонд пенсионный_фонд известный_как пресс_релиз пресс_релиз В_результат итальянский_компания итальянский_компания американский_производитель сделка_составить миллиард_доллар миллиард_доллар миллиард_доллар завершение_сделка миллион_доллар первичный_размещение компания_вынудить С_помощь сторона_рассчитывать стоимость_бумага продажа_акция получить_право проведение_ipo выкупить_акция крупный_производитель финансовый_кризис мировой_экономика +1743 |text аэрофлот провести популярный блогер сеть instagram рамка проект профессия аэрофлот . сообщаться поступить редакция лента . . российский инстагра блогер посетить рабочий место десять сотрудник авиакомпани . организатор вновь выступить член союз фотохудожник россия . блогер давно хотеть познакомиться специалист аэрофлот ежедневно отвечать безопасность безупречный качество обслуживание пассажир . У сотрудник удаться пообщаться время проект хобби увлечение привычка главный что объединять многолетний опыт удивительный профессионализм любовь работа рассказать . работа можно посмотреть хештег профессииаэрофлот В настоящее время численность персонал аэрофлот составлять тысяча человек . летом год аэрофлот проводить территория предприятие аэромара крупный кейтеринговый компания сфера бортовый питание . фотосъёмка серия trainingaeroflot пройти год тренажерный комплекс шереметьево прошлое год центр техобслуживание самолёт аэрофлот . |ngramms сеть_instagram пресс_релиз поступить_в_редакция рабочий_место выступить__ член_союз качество_обслуживание что_объединять можно_посмотреть В_настоящее_время численность_персонал тысяча_человек прошлое_год +1744 |text сеть быстрый питание традиционный русский кухня теремок рисковать закрыться год . twitter сообщить основатель сеть пожаловаться падение продажа усиление конкуренция . доход сеть падать связывать падение покупательный способность россиянин снижаться год подряд . рассказать что сеть ресторан сокращать издержка закрывать убыточный запланировать рекламный бюджет год . запланировать новый год . не_помочь конец написать ответ предложение пользователь соцсеть запуск рекламный кампания . основатель теремок посетовать усиление конкуренция рост арендный ставка . аренда не_выдерживать . приходить новое игрок . крафтовый . азиатский кухня указать . сеть теремок быть основать год . В ресторан торговый сеть составлять причём ресторан . В сложность компания работать тысяча человек . немногий бренд фастфуд специализироваться русский кухня . В работа ресторан теремок рассказать портал business insider . чистота похвалить ресторан аутентичность продвижение русский национальный кухня доступность цена большинство блюдо стоить дорогой доллар . волна бурный обсуждение тренд импортозамещение введение продовольственный эмбарго готовность запустить русский фастфуд брат кончаловский . проект есть как дом откладываться итоговый судьба пора неясный . |ngramms быстрый_питание традиционный_русский основатель_сеть _ падение_продажа сеть_ресторан написать_ пользователь_соцсеть рекламный_кампания нью_йорк нью_йорк тысяча_человек русский_национальный __и_ есть_как +1745 |text роснефть считать что газпром тормозить внесудебный решение вопрос доступ газотранспортный система гтс сахалин . сообщать ссылка источник знакомый ход рассмотрение . слово источник странный неконструктивный позиция газпром тормозить реализация проект дальневосточный спг . внесудебный решение вопрос доступ газотранспортный система сахалин безусловно . договорённость быть достигнуть встреча министр энергетика рф новак глава роснефть сечин год . газпром не_предпринять никакой шаг роснефть выбрать путь антимонопольный судебный разбирательство пояснить источник . федеральный антимонопольный служба фас вновь рассмотреть вопрос нарушение антимонопольный законодательство sakhalin energy отказывать доступ гтс роснефть . роснефть просить оператор sakhalin energy доступ свободный мощность магистральный газопровод проект сахалин транссахалинский трубопроводный система . sakhalin energy оператор проект сахалин единственный рф действующий проект производство спг . газпром заявлять что акционер проект сахалин мочь направлять газ сжижение завод принадлежащий sakhalin energy . строительство завод остров газовый монополия считать целесообразный . В рамка проект осваиваться пильтун астохский лунский месторождение сахалинский шельф извлекать запас оцениваться миллион тонна нефть миллиард кубометр газа . акционер оператор проект компания sakhalin energy газпром процент royal dutch shell процент японский mitsui процент mitsubishi процент . |ngramms решение_вопрос газотранспортный_система газотранспортный_система реализация_проект дальневосточный_спг быть_достигнуть министр_энергетика рф_ _сечин никакой_шаг судебный_разбирательство пояснить_источник федеральный_антимонопольный_служба антимонопольный_законодательство оператор_проект оператор_проект действующий_проект что_акционер газовый_монополия В_рамка_проект миллион_тонна_нефть миллиард_кубометр_газа +1746 |text крупный швейцарский банк bsi согласиться выплатить миллион доллар соглашение минюст сша обмен отказ судебный разбирательство подозрение налоговый нарушение . американский ведомство . В сообщение отмечаться что рамка договорённость кредитный организация согласиться предоставить дать клиент сша оставаться инкогнито намереваться избежать уплата налог . bsi стать банк пойти досудебный урегулирование конфликт рамка программа досудебный договорённость швейцарский банка запустить год . предусматривать что швейцарский банка мочь пойти сделка власть сша расследовать факт уклонение уплата налог американец . минюст сша bsi помогать клиент создавать фиктивный корпорация маскировать траст выпускать обезличить кредитный дебетовый карта указание имя фамилия владелец . |ngramms согласиться_выплатить миллион_доллар судебный_разбирательство пресс_релиз американский_ведомство В_сообщение_отмечаться что_в_рамка кредитный_организация уплата_налог уплата_налог швейцарский_банка швейцарский_банка власть_сша помогать_клиент +1747 |text роспотребнадзор выдать компания ids borjomi international свидетельство государственный регистрация грузинский минеральный вода боржоми россия . сообщаться производитель . В сообщение отмечаться что поставка возобновиться ближний время . новость сообщать ссылка неназванный сотрудник ids borjomi georgia что поставка возобновиться ранний год . точный срок как стать известный майский праздник . поставка распространение боржоми россия быть осуществлять ids borjomi russia . компания принадлежать право бренд святой источник эдельвейс миргородский . поставка грузинский вино боржоми россия быть запретить год фон политический разногласие москва тбилиси . официально качество причина запрет называться нарушение норма . возвращение продукция российский рынок начать активно обсуждаться смена правительство грузия конец год . состояние середина российский рынок ids borjomi international разрешить вернуться винный компания киндзмараули марань винный дом . |ngramms пресс_релиз В_сообщение_отмечаться что_поставка что_поставка ближний_время точный_срок стать_известный год_на_фон причина_запрет санитарно_эпидемиологический начать_активно дом_ +1748 |text член экипаж российский авиакомпания вим мочь покинуть международный аэропорт город медина долг компания . О что заложник ситуация стать пилот новость подтвердить посольство россия саудовский аравия . застрять экипаж уточнить . слово вопрос находиться контроль росавиация . ведомство располагать деталь связанный финансовый компания очередь генконсульство рф саудовский аравия заниматься вопрос уточнить представитель посольство . С компания вим прекратить выполнять чартерный рейс отсутствие финансы . граница находиться тысяча российский турист причём процент турция . В росавиация что задолженность вим составлять миллиард рубль . правоохранительный орган возбудить уголовный статья ук рф мошенничество . генеральный директор авиакомпания компания кочнева предъявить обвинение хищение денежный средство пассажир . пообещать полностью завершить чартерный программа проблемный авиакомпания . возвращение пассажир родина взять контроль минтранс . решить что перевозка пассажир регулярный рейс вим быть осуществлять включительно . |ngramms член_экипаж российский_авиакомпания международный_аэропорт долг_компания ситуация_стать пресс_секретарь _ _ российский_турист В_росавиация миллиард_рубль правоохранительный_орган ук_рф генеральный_директор денежный_средство вице_премьер перевозка_пассажир регулярный_рейс быть_осуществлять +1749 |text дочерний компания китайский sinopec закрыть разработка нефтяной месторождение провинция восток китай . заявление холдинг сообщать . отмечаться что месторождение наименее рентабельный портфель компания . благодаря прекращение разработка sinopec смочь сэкономить операционный расход миллион юань миллион доллар . нефтедобывающий компания вынудить пересматривать инвестиционный производственный план фон избыток предложение мировой нефтяной рынок объём миллион баррель . В наращивание добыча страна опека замедление экономика китай давление ряд фактор полтора год стоимость баррель марка brent упасть втрое . В настоящее время опека россия демонстрировать рекордный уровень нефтедобыча . производство нефть сша год снизиться процент . В середина год страна россия саудовский аравия катар венесуэла договориться заморозка нефтедобыча условие что производитель присоединиться инициатива . новый раунд переговоры ключевой нефтедобывающий государство проходить тегеран . В немой представитель иран ирак итог переговоры неизвестный . sinopec являться нефтяной гигант китай . В год корпорация добыть миллион баррель нефть что процент маленький предыдущий год . |ngramms дочерний_компания нефтяной_месторождение операционный_расход миллион_доллар компания_вынудить нефтяной_рынок миллион_баррель миллион_баррель полтора_год стоимость_баррель В_настоящее_время рекордный_уровень В_середина В_немой итог_переговоры процент_маленький предыдущий_год +1750 |text госкорпорация роснано стать владелец процент акция крупный российский производитель микросхема компания микрон . сообщение микрон . изменение состав акционер микрон произойти итог дополнительный эмиссия акция рамка быть разместить миллион акция стоимость рубль сумма миллиард рубль . госкорпорация получить доля микрон обмен процент акция ситроникс совместный проект роснано микрон создание производство микросхема нанометр . ситроникс итог сделка полностью перейти контроль микрон . вхождение роснано состав акционер крупный микроэлектронный актив афк система демонстрировать эффективный развитие частный государственный партнерство россия принцип развиваться высокий технология мир заявить генеральный директор оао микрон академик рана . В настоящее время состав акционер микрон входить зао рти микроэлектроника процент акция оао роснано процент акция российский федерация лицо федеральный агентство управление государственный имущество процент акция группа компания микрон крупный восточный европа снг производитель экспортёр микросхема входящий отраслевой холдинг оао рти основный акционер являться афк система . |ngramms стать_владелец процент_акция процент_акция процент_акция процент_акция процент_акция крупный_российский состав_акционер миллион_акция миллиард_рубль совместный_проект акционер_крупный актив_афк высокий_технология генеральный_директор _ В_настоящее_время российский_федерация федеральный_агентство группа_компания восточный_европа холдинг_оао основный_акционер +1751 |text ввп украина год снизиться процент инфляция достигнуть процент . заявить министр финансы страна шлапак передавать . заявить что дефицит государственный бюджет составить процент социальный выплата сокращаться не_быть . украина яценюк заявить что украина вернуться экономический рост год . что расход социалка нужно сократить ради поддержка армия . В яценюк оценивать экономический спад год уровень процент . В время агентство S P считать что спад составить процент . что год украина ждать околонулевой экономический рост . В прошлое год ввп украина не_измениться . В ситуация существенно ухудшиться как глобальный конъюнктура военный действие страна парализовать работа целое сектор экономика . что касаться инфляция стремительный взлёт год объясняться девальвация гривна начало год просесть доллар процент . |ngramms министр_финансы что_дефицит государственный_бюджет премьер_министр украина_ что_украина экономический_рост экономический_рост экономический_спад В_то_же_время что_спад В_прошлое_год военный_действие юго_восток сектор_экономика что_касаться девальвация_гривна +1752 |text служащий таможня европейский союз год изъять поддельный товар сумма миллиард доллар сша . сообщать presse . как стать опубликовать отчёт еврокомиссия основный масса изъять продукция составить сигарета лекарство виагра . год изъять примерно сорок миллион товарный единица усмотреть вероятный нарушение право интеллектуальный собственность . страна происхождение подделка лидировать китай основный средство доставка контрафакт европа оказаться почта нея приходиться примерно процент конфискация . приблизительно процент случай почта удаваться задержать посылка медицинский препарат улучшение качество жизнь . стоимость изъять подделка примерно соответствовать показатель предыдущий год . изъять товарный единица значительно снизиться год быть миллион . большинство изъять товар европейский таможенник уничтожить . |ngramms европейский_союз год_изъять год_изъять миллиард_доллар товарный_единица товарный_единица нарушение_право процент_случай качество_жизнь предыдущий_год год_они_быть +1753 |text компания procter gamble P G решение инвестирование миллиард рубль развитие собственный завод новомосковск тульский область . решение быть зафиксировать соглашение подписать рамка петербургский международный экономический форум пмэф компания губернатор регион . поступить редакция лента . . В сообщение отмечаться что инвестиция пойти модернизация увеличение объём российский производство продукция P G новомосковск создание новый рабочий место расширение сотрудничество местный поставщик . В рамка модернизация завод компания вложить средство развитие новый экологически чистый технология применение позволить сделать производство полностью безотходный год . как отмечать компания год завод новомосковск сократить потребление электроэнергия вода выброс атмосфера процент . производство завод использовать процент вторичный бумага производство упаковка стиральный порошковый . реализация объявить инвестиционный программа рассчитать ближний год наращивание локализация производство крупный категория средство уход дом средство уход ткань средство уход ребёнок . В год P G инвестировать миллиард рубль развитие производственный центр бренд gillette . |ngramms миллиард_рубль миллиард_рубль развитие_собственный решение_быть международный_экономический_форум губернатор_регион _ пресс_релиз поступить_в_редакция В_сообщение_отмечаться что_инвестиция увеличение_объём российский_производство создание_новый рабочий_место В_рамка завод_компания вложить_средство как_отмечать сократить_потребление завод_использовать инвестиционный_программа санкт_петербург +1754 |text автоконцерн mitsubishi возобновить сборка внедорожник pajero sport завод псм русый калуга . заявить губернатор калужский область передавать . напомнить что выпуск модель японский автопроизводитель прекратить год . когда внедорожник поставить конвейер не_уточнить . глава регион сообщить что предприятие приостановить производство организация выпуск лёгкое коммерческий автомобиль peugeot citroen . агентство отмечать что снятие производство mitsubishi pajero sport модель россия поставляться завод таиланд . С год компания производить завод калуга обновить версия mitsubishi outlander . В год россия начать восстанавливаться спрос новое легковой автомобиль трехлетний падение . месяц быть тысяча автомобиль что хороший прошлогодний результат процент свидетельствовать дать ассоциация европейский бизнес аеб . В продажа легковой лёгкое коммерческий машина вырасти семь процент год тысяча штука . |ngramms область__ _не_уточнить глава_регион приостановить_производство лёгкое_коммерческий лёгкое_коммерческий агентство_отмечать компания_производить обновить_версия год_в_россия легковой_автомобиль тысяча_автомобиль свидетельствовать_дать ассоциация_европейский_бизнес машина_вырасти семь_процент тысяча_штука +1755 |text миллиардер выдвинуть кандидатура совет директор банка возрождение писать газета коммерсантъ . сделать попросить наследник основатель кредитный организация умерший год . С уход возрождение утратить правительство подмосковье . деловой авторитет опыт организация работа банка призвать изменить хороший положение кредитный организация . дань память бизнесмен умерший издание . В совет директор возрождение входить человек менеджер банка . возглавлять руководящий орган владеть пакет акция процент . процент акция унаследовать ребёнок основатель банка . В настоящее время пакет находиться доверительный управление . банк возрождение основать год . входить крупный российский банк рейтинг портал banki.ru год занимать позиция . иметь большой количество клиент столичный регион обслуживать крупный предприятие государственный структура . учредитель бывший президент компания онэксим долгий время проработать банковский бизнес . В год стать председатель правление банка международный финансовый компания поздний возглавлять онэксим банк росбанк . |ngramms миллиардер__ кредитный_организация кредитный_организация _ _ _ работа_банка совет_директор пакет_акция процент_акция _и__ В_настоящее_время крупный_российский год_занимать большой_количество крупный_предприятие государственный_структура президент_компания долгий_время год_стать председатель_правление финансовый_компания +1756 |text авиакомпания россия совместно аэромара разработать обновить меню бортовый питание рейс авиакомпания вылетать шереметьево . официальный сообщение сайт авиаперевозчик . В авиакомпания отмечать что блюдо выдержать тонко взвесить сочетаемость ингредиент . закуска основный блюдо десерт использоваться исключительно высококачественный натуральный продукт . В меню класс бизнес появиться новое россия блюдо фритат шпинат сыр пармезан говядина соус курица пикатта запечь соус терияк треск кунжут венгерский гуляш лопатка многий . десертный карта побаловать пассажир сливовый клафутить кофейный панакоттой малиновый флан шубаном яблочный карамельный начинка . пассажир класс эконом дальнемагистральный рейс быть предложить выбор вид горячее десерт традиционный горячее прохладительный напиток . соответствие индивидуальный предпочтение пассажир быть предложить вариант специальный бортовый питание . аэромара являться частью группа аэрофлот обслуживать питание большинство рейс . авиакомпания россия входить группа аэрофлот . совокупный маршрутный сеть авиакомпания насчитывать направление . В год россия перевезти миллион пассажир закрепить место тройка лидер дать показатель гражданский авиация рф . |ngramms шеф_повар быть_предложить быть_предложить являться_частью входить_в_группа маршрутный_сеть миллион_пассажир гражданский_авиация +1757 |text украинский предприятие поставить ввс саудовский аравия транспортный самолёт ан пользователь интернет предлагать назвать бандёра . авиастроительный группа . соответствующий меморандум поставка лайнер быть подписать компания taqnia aeronautics . президент taqnia aeronautics али ali mohammed слово приводиться сообщение назвать подписание меморандум важный шагом сотрудничество страна . подписать соответствующий документ взаимодействие проект новое транспортный самолёт ан совместный продвижение специальный вариант самолёт ан . выбор польза ан сделать внимание хороший характеристика самолёт . хамдить добавить что саудовец привлекать цена самолёт низкий эксплуатационный расход сравнение лайнер аналогичный класс . слово саудовский аравия намерить эксплуатировать ан продвигать рынок страна ближневосточный регион перспектива наладить совместный производство . В гп объявить facebook конкурс выбор народный имя новое самолёт ан пользователь интернет предложить назвать имя лидер организация украинский националист бандёр предложение оставлять страница предприятие соцсеть . голосование продолжиться хороший вариант выбрать лайковый . В настоящее время лидировать бандёр . пользователь предлагать назвать лайнер киборг чумак надежда феникс есть предложение выбрать имя ивандорн . полёт ан совершить год . новый транспортник способный перевозить тонна груз расстояние свыше километр тонна расстояние километр . |ngramms украинский_предприятие транспортный_самолёт транспортный_самолёт пользователь_интернет пользователь_интернет предлагать_назвать предлагать_назвать пресс_релиз быть_подписать _ _ al_ghamdi подписание_меморандум соответствующий_документ самолёт_ан самолёт_ан цена_самолёт аналогичный_класс совместный_производство объявить_в_facebook выбор_народный предложить_назвать лидер_организация украинский_националист В_настоящее_время выбрать_имя тонна_груз +1758 |text газпром sap намерить создать территория россия совместный предприятие производство российский программный обеспечение автоматизация бизнес процесс управление предприятие . газпром поступить редакция лента . . решение содержаться меморандум взаимопонимание подписать рамка петербургский международный экономический форум пмэф заместитель председатель правление пао газпром член правление sap se штефаном рис . документ нацелить повышение надёжность эксплуатация развитие система газпром база программный обеспечение sap внедрение инновация область информационный технология сообщение . программный обеспечение быть разрабатываться интерес газовый холдинг мочь быть адаптировать специфика деятельность потенциальный потребитель . планироваться что совместный предприятие начать функционировать конец год . sap se являться разработчик программный обеспечение автоматизация бизнес процесс управление предприятие оказывать услуга технический поддержка консультирование внедрение система основа . газпром российский энергетический компания . заниматься геологоразведка добыча транспортировка хранение переработка продажа газа газовый конденсат нефть . доля компания мировой запас газа процент . процент акция корпорация принадлежать государство лицо росимущество . пакет процент владеть государственный компания роснефтегаз росгазификация соответственно . |ngramms намерить_создать совместный_предприятие совместный_предприятие программный_обеспечение программный_обеспечение программный_обеспечение программный_обеспечение процесс_управление процесс_управление пресс_релиз подписать_в_рамка международный_экономический_форум заместитель_председатель_правление член_правление информационно_управляющий информационный_технология газовый_холдинг мочь_быть являться_разработчик технический_поддержка внедрение_система энергетический_компания продажа_газа доля_компания запас_газа процент_акция принадлежать_государство процент_владеть государственный_компания +1759 |text глава роснефть сечин генеральный директор китайский национальный нефтехимический компания chemchina подписать соглашение основный условие создание совместный предприятие . официальный сайт роснефть . В соответствие условие подписать документ сторона построить территория опережать развитие большой камень приморский край завод производство полимерный покрытие краска ежегодный мощность тысяча тонна продукция быть осуществлять совместный деятельность . В роснефть chemchina провести экономический обоснование проект необходимый мероприятие подготовка создание совместный предприятие . В результат реализация проект россия быть создать крупный предприятие выпуск специальный морской арктический судовой покрытие лидер сегмент промышленность . продукция завод найти применение работа судостроительный комплекс звезда дальний восток россия создавать поручение президент рф . В роснефть chemchina создать рабочий группа разработка новый полимерный покрытие морской судно различный класс арктический . судостроительный комплекс звезда создаваться база дальневосточный центр судостроение судоремонт дцсс консорциум роснефтегаз роснефть газпромбанк . пилотный загрузка комплекс обеспечивать роснефть заключить дцсс соглашение размещение заказ строительство новый морской техника судно мощность . |ngramms _сечин генеральный_директор китайский_национальный _ основный_условие совместный_предприятие совместный_предприятие подписать_документ завод_по_производство тысяча_тонна быть_осуществлять научно_исследовательский В_результат реализация_проект быть_создать продукция_завод дальний_восток рф__ рабочий_группа разработка_новый судно_различный дальневосточный_центр комплекс_обеспечивать заказ_на_строительство морской_техника +1760 |text росатом поставить нужда гособоронзаказ минобороны роскосмос авиационный промышленность компактный суперкомпьютер снабдить отечественный программный обеспечение . рассказать глава госкорпорация интервью телеканал нтв . есть супермощный эвм как стоять федеральный ядерный центр есть достаточно компактный суперкомпьютер поставить . значительно большой быть предусмотреть программа когда создавать . рассказать . что сегодняшний госкорпорация полностью разработать система когда суперкомпьютер мочь быть сделать отечественный железо включая элементный база программный обеспечение . подчеркнуть что система использование импортный комплектовать . госкорпорация росатом объединять предприятие организация атомный отрасль россия . российский корпорация состояние конец год занимать первое место мир проектировать реактор атомный электростанция единица что составлять процент проектировать блок аэс мир . |ngramms программный_обеспечение программный_обеспечение глава_госкорпорация _ ядерный_центр быть_предусмотреть рассказать_ полностью_разработать мочь_быть _подчеркнуть научно_технический отрасль_россия российский_корпорация год_занимать первое_место что_составлять +1761 |text газпром нефть роснефть заинтересоваться покупка нефтеперерабатывающий завод зунг вьетнам . номер писать газета коммерсантъ ссылка неназванный источник . как указывать издание роснефть есть преимущество борьба актив как практически монополизировать прокачка нефть трубопровод восточный сибирь тихий океан всто . газпром нефть не_удаться получить всто существенный квота транспортировка сырьё . компания petrovietnam оценивать сто процент акция нпз миллиард доллар . информация источник коммерсант сначала газпром нефть намерить получить предприятие процент акция увеличить доля большой процент . вьетнамский сторона ставить условие приобретение доля зунг обеспечение поставка завод нефть россия . В газпром нефть хотеть поставлять вьетнам восемь миллион тонна нефть год значительный квота всто невозможно . выделение квота компания выступать роснефть мощность трубопровод нужный поставка нефть китай . полгода газпром нефть прокачать всто тысяча тонна сырьё . роснефть ежегодно транспортировать трубопровод миллион тонна нефть год быть прокачивать миллион тонна . интерес поставка всто проявлять лукойл башнефть сургутнефтегаз . |ngramms газпром_нефть газпром_нефть газпром_нефть газпром_нефть газпром_нефть нефтеперерабатывающий_завод писать_газета как_указывать восточный_сибирь процент_акция процент_акция миллиард_доллар сторона_ставить миллион_тонна_нефть миллион_тонна_нефть поставка_нефть тысяча_тонна год_быть миллион_тонна +1762 |text развитие бизнес россия тормозить отсутствие развитый рынок капитал ощутимый проблема деловой климат рассказать интервью рбк основатель крупный хедж фонд мир bridgewater associates рэй . решение проблема невозможный рост российский экономика . впрочем когда думать как далеко россия продвинуться где быть год начинать верить что страна хороший перспектива утешить миллиардер . мнение существовать основный критерий влиять развитие экономика наличие эффективный относительно дешёвый система образование размер внешний долг страна природный ресурс наличие развитый рынок капитал бизнес культура . обратить внимание опасность мочь представлять система искусственный интеллект важный решение особенно построить машинный обучение . ключевой вопрос машинный обучение быть алгоритм работать прошлое работать будущее . машинный обучение работать есть большой выборка пример учиться компьютер неизменный правило игра как шахматы где компьютер нет равный . мир где жить ситуация мочь меняться будущее мочь радикально отличаться прошлое объяснить . В ситуация отсутствие понимание как искусственный интеллект создавать собственный алгоритм будущее становиться опасный . размер личный состояние оцениваться миллиард доллар . основать имя фонд конец год управлять миллиард доллар . |ngramms развитие_бизнес рынок_капитал рынок_капитал рассказать_в_интервью российский_экономика хороший_перспектива природный_ресурс ключевой_вопрос есть_большой правило_игра ситуация_мочь будущее_мочь состояние_ миллиард_доллар миллиард_доллар основать_имя +1763 |text фас возбудить отношение компания не_выплачивать сбор записывать устройство российский союз правообладатель рсп возглавлять режиссёр . номер писать газета ведомость ссылка письмо служба правительство . В импортёр быть завести войти компания самсунг электроникс русый компани панасоник являться российский представительство одноимённый производитель электроника . фас возбудить отношение местный подразделение китайский производитель bbk . прочий список недобросовестный импортёр попасть российский завод микроэлектроника ангстрем . как отмечать издание предприятие выразить недоумение претензия фас рсп сообщить что импортировать кремниевый пластина микросхема невозможный запись музыкальный видеоинформация . О что фас возбудить отношение импортёр записывать устройство стать конец список компания не_раскрываться . быть возбудить часть статья закон О защита конкуренция недобросовестный конкуренция . компания грозить штраф тысяча рубль . первое расследование фас факт неуплата сбор рсп импортёр записывать звук видео устройство . рсп подавать импортёр техника жалоба правоохранительный орган . первое уголовный факт неуплата авторский сбор отношение компания быть возбудить год ход ничто . рсп уполномочить взимать производитель импортёр видеотехника носитель информация сбор размер процент стоимость продукция . привлечь средство идти миллиард рубль частично направляться собственный нужда рсп распределяться обладатель авторский право исполнитель . значительный часть импортёр добровольно заключить договор рсп уплата сбор . В министерство экономический развитие называть деятельность союз непрозрачный неэффективный . В ведомство обращать внимание что размер выплата отдельный автор ничто не_регламентировать обоснованный . |ngramms фас_возбудить фас_возбудить фас_возбудить записывать_устройство записывать_устройство российский_союз режиссёр__ писать_газета российский_представительство производитель_электроника местный_подразделение китайский_производитель российский_завод как_отмечать_издание быть_возбудить быть_возбудить защита_конкуренция грозить_штраф тысяча_рубль стоимость_продукция привлечь_средство миллиард_рубль авторский_право значительный_часть В_министерство экономический_развитие обращать_внимание размер_выплата +1764 |text холдинг планет гостеприимство развивать россия сеть sbarro расторгать контракт американский партнёр sbarro . rambler service сообщить российский компания . В результат разрыв отношение количество sbarro россия сократиться . компания год быть стратегический партнёр американский корпорация sbarro обладать эксклюзивный право развитие бренд франчайзинг россия страна снг балтия центральный восточный европа . планет гостеприимство развивать собственный ресторан sbarro мастер франшиза примерно управлять партнёр субфраншиза . управление разрыв отношение российский компания мочь взять американский sbarro . В государственный инспекция труд москва выявить сеть ресторан сбарро непогашенный долг зарплата проверка повод проводить прокуратура . В конец сообщаться что компания планет гостеприимство оператор сеть сбарро ёлка палка уволить тысяча сотрудник . информация содержаться материал профсоюз представить заседание российский комиссия регулирование отношение . поздний планета гостеприимство опровергнуть информация массовый сокращение персонал . профсоюз подтверждать что часть сотрудник писать заявление приостановка работа . неделя работник сеть ресторан сбарро ёлка палка выйти акция протест требовать погасить долг зарплата . американский компания sbarro падение спрос подать заявление собственный банкротство год . долг быть конвертировать акция компания рассчитаться кредитор apollo global management babson capital management . компания закрыть сотня пиццерия повысить рентабельность бизнес . компания планет гостеприимство основать год . В портфель бренд представить популярный российский международный ресторанный марка sbarro ёлка палка yamkee маленький япония восточный базар viaggio кофесто . как сообщаться сайт оператор сегодняшний суммарный оборот компания входить тройка лидер отрасль целевой сегмент объединять ресторан россия рубеж . численность персонал компания тысяча человек . |ngramms rambler_news_service российский_компания российский_компания В_результат разрыв_отношение год_быть стратегический_партнёр американский_корпорация развитие_бренд восточный_европа сеть_ресторан сеть_ресторан В_конец что_компания тысяча_сотрудник социально_трудовой сокращение_персонал что_часть приостановка_работа акция_протест погасить_долг американский_компания падение_спрос собственный_банкротство долг_быть акция_компания портфель_бренд популярный_российский сообщаться_на_сайт оборот_компания тройка_лидер численность_персонал тысяча_человек +1765 |text холдинг станкопёр входить ростёха центр аддитивный технология наладить выпуск современный принтер сообщаться разместить сайт промышленный компания . прогноз год рамка заключённый договорный отношение станкопром центр аддитивный технология быть разработать запустить серийный производство промышленный машина совместный производство . преимущество отечественный принтер являться возможность работать специальный бензомаслостойкий термостойкий ударопрочный пластик . текущий дать технология находиться стадия разработка документация сертификация отмечаться сообщение . В настоящее время партнёр создать отечественный принтер обеспечивать высокий точность возможность использование материал производитель . разработка быть продемонстрировать подмосковный коломна рамка выездной заседание президиум совет президент россия модернизация экономика инновационный развитие . |ngramms пресс_релиз разместить_на_сайт быть_разработать серийный_производство совместный_производство отмечаться_в_сообщение В_настоящее_время премьер_министр _ президент_россия +1766 |text китайский компания ningbo junhuey стать новый владелец российский сеть магазин фототехник foto.ru . сообщать cnews ссылка foto.ru . условие сделка foto.ru ningbo junhuey не_раскрываться . уточняться что передача акция foto.ru китайский компания произойти взаимный договорённость сторона . сеть foto.ru владеть физический лицо основатель бизнес . имя не_сообщаться . новый владелец foto.ru планировать развивать компания расширять ассортимент фотоаксессуар студийный оборудование представить магазин сеть . В год ningbo junhuey намерить вывести продукция российский европейский американский рынок . ningbo junhuey быть основать год . заниматься производство фотографический оборудование включая вспышка штатив лампа прожектор . протяжение год китайский компания являться основный партнёр foto.ru . компания foto.ru работать российский рынок год . управление сеть находиться магазин москва российский город . фототехник база розничный сеть работать год . |ngramms китайский_компания китайский_компания китайский_компания новый_владелец новый_владелец сеть_магазин пресс_служба условие_сделка передача_акция договорённость_сторона физический_лицо имя_не_сообщаться интернетом_проект магазин_сеть американский_рынок заниматься_производство основный_партнёр санкт_петербург российский_город интернет_магазин розничный_сеть +1767 |text российский промышленный группа en объявить назначение дерипаск генеральный директор компания сообщаться поступить лента . . сохранить должность президент группа . дерипаск сменить должность артем . en group объединять крупный актив дерипаск восточный сибирь . В являться крупный акционер русало процент владеть крупный частный российский энергокомпания евросибэнерго ряд структура . компания расположить москва зарегистрировать остров джерси . консолидированный выручка en group год составить миллиард доллар . |ngramms российский_промышленный _дерипаск генеральный_директор_компания пресс_релиз должность_президент крупный_актив восточный_сибирь являться_крупный крупный_частный штаб_квартира компания_расположить год_составить миллиард_доллар +1768 |text продажа компьютер год сократиться десять процент . исследование international corporation idc опубликовать . idc что обвал продажа стать рекордный история наблюдение год мир быть миллион компьютер . В качество причина снижение интерес покупатель настольный компьютер idc назвать развитие портативный устройство смартфон планшет . фактор стать адаптация программный обеспечение мобильный устройство пользователь стать необязательно приобретать компьютер работа . сведение специалист компьютер лидировать провести время пользователь опережать планшет смартфон . В год idc прогнозировать снижение продажа пк семь процент . итог год дилер быть отгрузить миллион единица пк . |ngramms продажа_компьютер год_сократиться десять_процент стать_рекордный В_качество причина_снижение программный_обеспечение мобильный_устройство снижение_продажа миллион_единица +1769 |text nike подписать восьмилетний спонсорский контракт национальный баскетбольный ассоциация сша нба начать действовать год . релиз сайт nike . американский производитель спортивный одежда обувь стать поставщик чей логотип появиться команда входящая нба . сумма сделка не_разглашаться bloomberg составить миллиард доллар . нынешний поставщик экипировка нба являться немецкий компания adidas контракт истекать год . В adidas объявить что намеренный продлевать отношение нба . В компания решение объяснить изменение стратегия рамка adidas сосредоточиться разработка новый продукт спонсирование отдельный игрок . акция nike сообщение сделка вырасти процент доллар начало год ценный бумага подорожать процент . nike сотрудничать нба выпускать трикотажный изделие . помимо компания производить одежда обувь официальный организация олимпийский баскетбольный команда сша usa basketball . |ngramms начать_действовать американский_производитель сумма_сделка миллиард_доллар немецкий_компания В_компания новый_продукт ценный_бумага компания_производить +1770 |text консорциум инвестор гонконг оаэ задуматься покупка reebok adidas ag . сообщать wall street journal wsj ссылка источник . jynwel capital инвестиционный подразделение компания принадлежащий семья миллиардер лоу фонд аффилировать правительство аба планировать направить письмо совет директор adidas . сообщаться что сумма сделка мочь составить миллиард евро миллиард доллар . издание отмечать что непонятно как adidas отреагировать предложение . adidas купить reebok год примерно миллиард евро создание компания производство обувь спортивный одежда конкурировать nike . В когда быть объявить сделка adidas reebok занимать третье место рынок обувь сша процент соответственно как отмечаться исследование sportsonesource . год доля марка сократиться процент adidas процент reebok . В время nike вырасти процент процент текущий год . adidas немецкий промышленный концерн специализироваться выпуск спортивный обувь одежда инвентарь основать год . иметь предприятие германия свыше дочерний фирма страна . В россия компания владеть приблизительно магазин . концерн выпускать продукция бренд adidas reebok rockport rbk ccm hockey taylor golf . чистый прибыль второе квартал год снизиться процент годовой выражение составить миллион евро . выручка компания вырасти процент миллиард евро . |ngramms консорциум_инвестор wall_street_journal подразделение_компания принадлежащий_семья направить_письмо совет_директор сумма_сделка мочь_составить миллиард_евро миллиард_евро миллиард_евро миллиард_доллар издание_отмечать компания_по_производство спортивный_одежда когда_быть третье_место процент_соответственно год_доля В_то_же_время спортивный_обувь В_россия выпускать_продукция чистый_прибыль миллион_евро выручка_компания +1771 |text биотехнологический компания biocad марокканский фармацевтический компания sothema labs объявить запуск североафриканский рынок препарат произвести технология российский компания . В год быть согласовать запуск марокко производство российский ритуксимаб бевацизумаб препарат предназначить лечение онкологический заболевание . помимо марокко планироваться продвижение препарат сенегал габон кот ивуаре . поступить редакция лента . . препарат поступить продажа . взгляд получить яркий доказательство что российский компания способный успешно конкурировать международный рынок традиционный глобальный лидер генеральный директор biocad . успешный пример трансфер передача технология производство препарат основа моноклональный антитело страна северный африка фон отказ подобный проект сторона западный компания подчеркнуть . слово выход полный производственный мощность партнёр планировать получить процент релевантный рынок препарат лечение онкологический заболевание . североафриканский рынок высокотехнологичный лекарство основа моноклональный антитело ритуксимаб бевацизумаб трастузумаб эксперт оцениваться миллион доллар марокканский миллион доллар . благодаря что российский компания являться поставщик биоаналог дать онкологический препарат мочь стать лидер дать область . С начало работа марокканский компания объявление лонч год необходимый передача валидация технология исследование стабильность качество производить препарат регистрация лекарственный препарат . поддержка правительство рф быть достигнуть договорённость локализация производство готовый лекарственный форма субстанция biocad алжир мощность стратегический партнёр компания . ритуксимаб бевацизумаб предназначить терапия рак . российский компания создать биоаналог дорогостоящий бевацизумаб спрос высокий рынок как развитый развивающийся страна . разница цена оригинальный препарат биоаналог компания biocad превышать процент . biocad крупный биотехнологический международный инновационный компания россия . офис представительство компания расположить сша бразилия китай индия вьетнам египет страна . год компания biocad быть заключить экспортный контракт сумма свыше миллион доллар . |ngramms компания_biocad компания_biocad компания_biocad рынок_препарат рынок_препарат российский_компания российский_компания быть_согласовать пресс_релиз поступить_в_редакция поступить_в_продажа что_российский_компания что_российский_компания глобальный_лидер генеральный_директор _ _ технология_производство подобный_проект западный_компания производственный_мощность партнёр_планировать миллион_доллар миллион_доллар миллион_доллар мочь_стать С_начало правительство_рф быть_достигнуть стратегический_партнёр компания_в_россия компания_расположить быть_заключить +1772 |text завод японский автоконцерн nissan сократить человек . сообщить служба занятость город . предполагаться сокращение человек год причина оптимизация численность штат . высвобождать гражданин предложить вакансия предприятие рассказать сотрудник служба занятость . конвейер завод не_работать . писать что nissan планировать уволить сотрудник что завод перейти работа смена . В некоторый расположить ленинградский область промышленный предприятие стать испытывать сложность доставка турецкий комплектовать . произойти фон антитурецкий экономический санкция ввести российский правительство ответ уничтожение турецкий ввс российский бомбардировщик су сирия . представитель ниссан мотор русый лента . что срок оформление таможенный документ увеличиться втрое . ранний груз турция растаможиваться . вопрос решаться никакой угроза производство нет отмечать . петербургский завод nissan собирать модель murano pathfinder qashqai производство внедорожник pathfinder осень временно приостановить . проектный мощность предприятие составлять тысяча автомобиль год . завод смена работать тысяча человек уточнять . |ngramms завод_японский санкт_петербург оптимизация_численность сотрудник_служба планировать_уволить ленинградский_область промышленный_предприятие стать_испытывать турецкий_комплектовать экономический_санкция российский_правительство что_срок оформление_таможенный петербургский_завод nissan_собирать проектный_мощность предприятие_составлять тысяча_автомобиль тысяча_человек +1773 |text благотворительный фонд помогать ребёнок нарушение слух . фонд запустить проект новый сервис адресный благотворительность сбербанк собирать проверить жизненный история . проект получить название услышать мир . необходимый многоканальный слуховой аппарат помочь мальчик развиваться наравне ребёнок . родитель надеяться что покупка аппарат помочь ребята вернуться нормальный жизнь что смочь услышать пение птица собственный смех найти любимый музыка . стараться не_терять детишки суметь оказать помощь . Я удовольствие следить успех общаться пора взрослый человек . играть музыка хотеть вовлекать прекрасный мир как можно большой аудитория невозможно пройти мимо проблема кто сила здоровье способный воспринимать музыка звук рассказать чувство малик . В программа фонд участвовать ребёнок ждать слуховой аппарат . помочь мочь . сделать пожертвование можно пара клик программа участвовать проверить благотворительный организация репутация не_поставить сомнение . |ngramms благотворительный_фонд _ _ помогать_ребёнок запустить_проект получить_название _и_ _и_ что_покупка нормальный_жизнь смочь_услышать оказать_помощь играть_музыка как_можно +1774 |text федеральный антимонопольный служба фас возбудить нарушение антимонопольный законодательство отношение газпром факт недопуск роснефть газотранспортный система гтс проект сахалин . сообщать . представитель газпром явиться фас дача объяснение факт нарушение подписание протокол административный правонарушение . заявление что фас намереваться возбудить отношение дочерний компания газпром сахалин энерджи инвестмент компани лтд . прозвучать текущий год . служба заявлять что дочка газпром не_выполнить предписание рассмотреть заявка роснефть подключение трубопровод проект сахалин . итог рассмотрение заявка сахалин энерджи заключить договор предоставление доступ отказать соответствующий технический обоснование . роснефть обратиться компания сахалин энерджи являться оператор нефтегазовый проект сахалин цель подключение транссахалинский трубопроводный система предоставление услуга транспортировка газа газопровод . В ответ обращение сахалин энерджи фактически отказать заключение вышеуказанный договор . мнение роснефть совместный использование мощность газопровод сахалин являться оптимальный решение позиция эффективный работа государственный компания роснефть газпром . В компания отмечать что подход обеспечивать максимизация доход государство соглашение раздел продукция срп исключение необходимость создание избыточный газотранспортный мощность сахалин . сахалин энерджи оператор проект сахалин единственный россия действующий проект производство сжидить природный газа спг . В рамка проект осваиваться пильтун астохский лунский месторождение сахалинский шельф извлекать запас оцениваться миллион тонна нефть миллиард кубометр газа . |ngramms федеральный_антимонопольный_служба антимонопольный_законодательство газотранспортный_система что_фас дочерний_компания текущий_год совместный_использование мощность_газопровод государственный_компания оператор_проект действующий_проект природный_газа В_рамка_проект миллион_тонна_нефть миллиард_кубометр_газа +1775 |text мобильный оператор yota сообщить новость сбой работа сеть . В компания что специалист активно работать исправление неполадка . К сожаление возможный сложность подключение сеть пояснить yota пообещать устранить неисправность ближний время . сотовый оператор билайн мтс рассказать агентство городской новость москва что работать штатный режим . остаться часть абонент мегафон москва нижний новгород тольятти уфа самар рязань город . горячий линия компания уведомлять пользователь неполадка обещать устранить часы . оператор yota компания скартело работать инфраструктура мегафон специализироваться предоставление услуга мобильный интернет . |ngramms мобильный_оператор работа_сеть В_компания что_специалист сотовый_оператор рассказать_агентство городской_новость остаться_часть нижний_новгород предоставление_услуга +1776 |text чистый прибыль группа российский железный дорога ржд год составить миллиард рубль миллиард рубль убыток год . сообщить старший экономика финансы компания михайлов передавать rambler service . положительный результат быть обусловить как улучшение результат операционный деятельность сокращение негативный эффект переоценка валютный обязательство холдинг ход брифинг консолидированный отчётность . выручка группа увеличиться процент составить триллион рубль . михайлов существенный рост доход предоставление логистический услуга процент миллиард рубль . доход грузовой перевозка вырасти процент триллион рубль доход пассажирский перевозка снизиться процент миллиард рубль . чистый долг группа итог год увеличиться восемь процент достигнуть миллиард рубль . объесть капитальный вложение год сократиться миллиард рубль миллиард год . вырасти субсидия федеральный местный бюджет процент миллиард рубль . расход ржд итог увеличиться процент триллион рубль . В план группа сокращение валютный доля кредитный портфель замещение рублёвый заимствование добавить михайлов . что фон курсовой волатильность сложно рассчитать эффективный ставка размещение валютный бонд . В начало россия увеличить уставный капитал ржд миллиард рубль реализация инвестиционный проект . |ngramms чистый_прибыль российский_железный_дорога год_составить миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль вице_президент финансы_компания rambler_news_service положительный_результат быть_обусловить операционный_деятельность выручка_группа процент_и_составить триллион_рубль триллион_рубль триллион_рубль существенный_рост грузовой_перевозка пассажирский_перевозка чистый_долг восемь_процент капитальный_вложение год_сократиться кредитный_портфель что_на_фон В_начало премьер_министр россия__ уставный_капитал инвестиционный_проект +1777 |text чистый прибыль ростелеком продолжаться деятельность сфера услуга фиксировать второе квартал год снизиться процент сравнение аналогичный период прошедшее год миллиард рубль . сообщаться отчётность компания . ростелеком отчётность квартал выделить результат продолжаться деятельность услуга фиксировать что произойти выделение мобильный актив совместный предприятие ртк холдинг . ростелеком не_остаться мобильный бизнес что вызвать необходимость представление отчётность сравнимый результат остаться фиксировать бизнес . выручка ростелеком продолжаться деятельность составить миллиард рубль миллиард рубль второе квартал год . консолидированный показатель включать дать прекратить мобильный бизнес чистый прибыль ростелеком квартал вырасти сравнение показатель годичный давность процент миллиард рубль выручка снизиться процент миллиард рубль . компания вдвое увеличить капитальный вложение развитие сеть миллиард рубль второе квартал год миллиард рубль текущий год . В прошедшее год продолжить снижаться абонент местный фиксировать телефонный компания упасть миллион пользователь миллион . соответственно выручка вид фиксировать уменьшиться . местный упасть процент миллиард рубль внутризоновый сократиться процент миллиард рубль междугородный международный снизиться процент миллиард рубль . В время количество абонент новый услуга рослый сильно пользователь широкополосный доступ интернет шпд увеличиться год тысяча миллион абонент пользователь платный телевидение тысяча миллион пользователь . выручка шпд стать большой процент составить миллиард рубль платный тв вырасти процент миллиард рубль . |ngramms чистый_прибыль чистый_прибыль продолжаться_деятельность продолжаться_деятельность продолжаться_деятельность аналогичный_период прошедшее_год прошедшее_год миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль отчётность_компания мобильный_бизнес мобильный_бизнес что_вызвать вдвое_увеличить капитальный_вложение миллион_пользователь миллион_пользователь В_то_же_время количество_абонент миллион_абонент стать_большой процент_и_составить +1778 |text bloomberg подсчитать что богатый человек мир потерять миллиард доллар фон новость великобритания где сторонник прекращение членство страна евросоюз одержать победа референдум . сведение убыток быть получить основа анализ дать включить bloomberg billionaires . В обвал глобальный фондовый рынок миллиардер лишиться процент стоимость актив . сложность располагать триллион доллар . большой потеря понести испанский бизнесмен ортег основатель компания inditex бренд zara oysho massimo dutti bershka pull bear stradivarius . ортег обеспечить человек европа остаться миллиард доллар . девять человек потерять миллиард доллар . сооснователь microsoft глава amazon безос . В великобритания пройти референдум вопрос дальнейший пребывание страна ес . сторонник brexit сокращение словосочетание british exit есть выход блок победить процент голос . |ngramms богатый_человек миллиард_доллар миллиард_доллар миллиард_доллар быть_получить фондовый_рынок триллион_доллар бизнесмен_ основатель_компания девять_человек _ глава_amazon процент_голос +1779 |text замглавы администрация президент ближний время возглавить наблюдательный совет росатом вместо занимать пост настоящее время . писать газета ведомость ссылка источник близкий руководство корпорация . информация издание назначение состояться неделя . вполне логично быть заменить . нужно сохранить преемственность беседа ведомость высокопоставленный чиновник администрация президент . источник госкорпорация что перестановка не_произойти что не_подыскать новый должность . официальный комментарий кремль росатом газета не_располагать . возглавить наблюдательный совет росатом год месяц покинуть пост спикер госдума занимать . В год стать полномочный представитель россия контактный группа урегулирование ситуация украина . быть назначить заместитель руководитель администрация президент год . С быть генеральный директор госкорпорация росатом год главый федеральный агентство атомный энергия росатом база поздний быть создать корпорация . |ngramms президент__ _ писать_газета заменить_ администрация_президент администрация_президент новый_должность официальный_комментарий _возглавить покинуть_пост представитель_россия ситуация_на_украина быть_назначить генеральный_директор федеральный_агентство атомный_энергия быть_создать +1780 |text немецкий автопроизводитель audi потратить ближний год развитие бизнес миллиард доллар сообщать financial times . быть крупный инвестиционный программа история компания . большой часть деньга процент audi вложить создание новый модель внедрение новый технология . основной инвестиция пойти обновление завод германия . компания собираться открыть новое завод мексика бразилия . В план автопроизводитель входить расширение год линейка модель . менеджер компания обещать увеличить годовой продажа автомобиль миллион миллион штука . новый модель называться гибридный газовый версия audi sportback audi tt новое поколение кроссовер . компания audi group входить немецкий автоконцерн volkswagen . как отмечать ft bmw являться лидер рынок автомобиль представительский класс . |ngramms немецкий_автопроизводитель миллиард_доллар инвестиционный_программа большой_часть новый_модель новый_модель новый_технология завод_в_германия собираться_открыть компания_обещать увеличить_годовой продажа_автомобиль миллион_штука новое_поколение как_отмечать являться_лидер +1781 |text аналитика инвестиционный компания сравнить привлекательность акция российский нефтегазовый компания дать рекомендация покупка бумага роснефть . дать информация содержаться новый отчёт подготовить эксперт ведущий инвестдом . период низкий цена нефть хороший время покупать акция роснефть лукойл отчёт credit suisse . мнение эксперт лукойл восприниматься рынок как безопасный инвестиция сравнение роснефть что делать акция предпочтительный условие низкий цена нефть . согласный подход . высококлассный портфель добывать актив роснефть неукоснительный стремление сокращение затрата обеспечить компания устойчивый чистый денежный поток лукойл что не_ставить сомнение выплата дивиденд компания указываться документ . компания удаться продлить срок кредит помощь предоплата год рефинансировать миллиард доллар . В год предстоять рефинансировать миллиард аналитика полагать что выполнимый задача роснефть . аналитика считать что цена нефть остаться низкий генерация свободный денежный поток стать проблема лукойл время как сильный операционный показатель роснефть быть выгодно смотреться сравнение конкурент . эксперт делать выбор польза госкомпания . акция роснефть иметь потенциал рост акция лукойл писать отчёт morgan stanley . высокий дивидендный доходность акция лукойл привлекательный получение роснефть авансовый платёж способствовать снижение нагрузка осуществление инвестиция сегмент разведка добыча . В morgan stanley положительно расценивать достигнутый компания значительный снижение эксплуатационный затрата стабильный добыча привлекательный оценка сравнение предыдущий период . менять рекомендация относительно акция лукойл держать акция роснефть иметь рекомендация покупать включать список наиболее предпочтительный ценный бумага отчёт . повысить рекомендация держать покупать отношение гдр акция роснефть указываться отчёт raiffeisenbank . аналитика банка не_прогнозировать кредитный риск роснефть год указывать что компания исключить неденежный убыток чистый прибыть год мочь выплатить достаточно высокий дивиденд акционер . В очередь аналитика goldman sachs указывать отчёт что роснефть демонстрировать доходность свободный денежный поток высокий уровень российский нефтяной структура протяжение квартал удивлять рынок способность контролировать капиталовложение операционный затрата уделять основный внимание генерирование свободный денежный поток время когда рынок капитал степень закрытый российский нефтяной компания . |ngramms инвестиционный_компания акция_российский нефтегазовый_компания период_низкий цена_на_нефть цена_на_нефть цена_на_нефть хороший_время сокращение_затрата денежный_поток выплата_дивиденд компания_удаться продлить_срок миллиард_доллар свободный_денежный_поток свободный_денежный_поток свободный_денежный_поток операционный_показатель потенциал_рост _нагрузка относительно_акция ценный_бумага что_компания чистый_прибыть мочь_выплатить достаточно_высокий В_свой_очередь российский_нефтяной операционный_затрата рынок_капитал нефтяной_компания +1782 |text современный технологичный решение позволять ускорить бизнес процесс повысить эффективность . кто заниматься планирование стратегия развитие компания новый год мегафон предлагать простой технологичный решение . О сообщаться компания поступить лента . . решение мониторинг активно использовать бизнес многие управленец . услуга позволять объединить объект бизнес единый информационный сеть управлять дистанционно что обычно требовать серьёзный ресурс . С помощь новое решение можно отслеживать исправность местоположение автопарк получать уведомление событие автоматический отчёт датчик работа объект видеокамера повысить уровень безопасность скорость реакция экстренный событие . подключение услуга мониторинг мегафон давать возможность максимально эффективно использовать удалённый объект компания существенно сократить затрата обслуживание направить освободиться ресурс сотрудник реализация задача . услуга электронный документооборот помочь упростить ускорить неизбежный обычный формат долгий процесс подписание документ . подключение нужный бумага быть содержаться привычный бухгалтерский система как . визировать сотрудник партнёр смочь помощь цифровой подпись подписант мочь находиться офис город . В результат бизнес экономить время подписание обмен документ расход курьерский почтовый доставка процесс работа документ становиться защитить . оптимизировать расход информирование клиент повысить эффективность рекламный кампания нужно автоматизировать работа обычно выполнять отдельный сотрудник . мегафон заявлять что способствовать услуга мобильный информирование . позволять помощь sms рассылка автоматический режим информировать клиент работа сервис новый акция продукт получать обратный . целевой аудитория можно выбрать точечный указать определённый возраст регион . следовательно создаваться прямая канал клиент как существующий новый . услуга помогать расширить бизнес счёт проведение высокоэффективный целевой маркетинговый кампания ориентировать правильный аудитория . сократить время обработка звонок повысить качество общение клиент мегафон предлагать подключить услуга виртуальный атс . давать возможность серьёзный затрата организовать современный функция приём обработка вызов . возможность интеграция популярный crm система голосовой меню приветствие очередь запись порядок адресация звонок sms визитка функция виртуальный атс позволить ответить обращение клиент повысить лояльность . есть возможность подключение номер формат что статистика способствовать рост поток клиентский обращение процент . В результат автоматизация управление процесс приём обработка звонок сотрудник смочь уделять количество время клиент что очередь помочь повысить количество контакт . качество работа сотрудник отслеживаться помощь функция запись разговор есть необходимость можно корректировать процесс взаимодействие клиент . сумма привести рост качество работа бизнес целое . система контроль звонок номер помочь оценить эффективность канал коммуникация оптимизировать расход реклама понизить стоимость привлечение новый удержание существующий клиент отмечать мегафон . |ngramms стратегия_развитие пресс_релиз активно_использовать что_обычно С_помощь работа_объект повысить_уровень давать_возможность давать_возможность объект_компания существенно_сократить подписание_документ бумага_быть В_результат В_результат рекламный_кампания целевой_аудитория можно_выбрать прямая_канал сократить_время повысить_качество есть_возможность способствовать_рост помочь_повысить качество_работа качество_работа система_контроль оценить_эффективность привлечение_новый +1783 |text правительство исключить роснано план приватизация год . соответствующий распоряжение подписать опубликовать сайт кабмина . согласно стратегия роснано год передача компания частное собственник не_предусмотреть документ . утвердить программа приватизация предполагать продажа процент роснано год . как отмечать интерфакс решение быть сделать принятие год новый стратегия . как сообщать глава роснано стратегия год предусматривать трансформация госкомпания фонд прямая инвестиция разделение функция владение управление актив . реализация функция год быть создать ук управлять компания роснано процент принадлежать роснано процент владеть . что новый конфигурация позволить привлечь нанопроект конец год миллиард доллар частное инвестор . согласно план роснано полностью выйти капитал ук период год выполнить обязательство государство обеспечить выручка продажа нанопродукция портфельный компания уровень миллиард рубль . итог год продажа составить миллиард рубль . В сообщить что текущий год ук есть возможность покупка процент акция процент . конкретный решение вхождение руководство уставный капитал ук не_принять . роснано быть создать год путём реорганизация российский корпорация нанотехнология . компания содействовать реализация государственный политика развитие наноиндустрия выступать соинвестор нанотехнологический проект . основный направление деятельность роснано являться оптый наноэлектроника машиностроение металлообработка солнечный энергетика медицина биотехнология энергосберегающий решение наноструктурировать материал . |ngramms план_приватизация соответствующий_распоряжение премьер_министр _ _ опубликовать_на_сайт программа_приватизация как_отмечать быть_сделать новый_стратегия как_сообщать прямая_инвестиция управление_актив быть_создать быть_создать управлять_компания процент_принадлежать процент_владеть что_новый миллиард_доллар частное_инвестор согласно_план капитал_ук выручка_от_продажа миллиард_рубль миллиард_рубль продажа_составить _сообщить текущий_год топ_менеджер есть_возможность уставный_капитал год_путём российский_корпорация государственный_политика основный_направление +1784 |text разделение газпром ближний год не_быть . заявить интервью новость глава федеральный антимонопольный служба россия фас . думать что правительство занять внятный позиция никакой разделение ближний год не_быть . В условие кризис не_быть рисковать серьёзный преобразование подчеркнуть . глава фас что многие животное когда наступать плохой погода заморозка окукливаться сидеть ожидание тёплый время . газпром видимо предписать окуклиться смысл что всерьёз трогать не_быть что обеспечивать газ страна приносить доход бюджет заявить глава антимонопольный ведомство . как понимать масштабный реорганизация быть затруднительный не_наступить тёплый время развитие экономика . В настоящее время газпром являться собственник единый система газоснабжение есг россия . выполнять заявка независимый производитель доступ система . изменение порядок доступ независимый производитель газотранспортный система газпром настаивать роснефть . президент роснефть сечин периодичок направлять письмо минэнерго предложение реформирование внутренний рынок газа . В сечин что газпром допускать независимый производитель гтс усмотрение соответствующий нормативный база нет согласование длиться месяцами что приводить неисполнение договор штраф . В год минэнерго выступать разделение газовый холдинг . ведомство отвергнуть соответствующий предложение фас . идея разделение газпром впервые появиться правительство конец . разделение компания выступать экономический ведомство руководство . министерство предлагать оставить газотранспортный система контроль государство добыча переработка продажа топливо отдать частник . |ngramms федеральный_антимонопольный_служба _ _ _ что_правительство условие_кризис глава_фас приносить_доход заявить_глава антимонопольный_ведомство В_настоящее_время единый_система независимый_производитель независимый_производитель независимый_производитель изменение_порядок газотранспортный_система газотранспортный_система _сечин премьер_министр внутренний_рынок газовый_холдинг соответствующий_предложение экономический_ведомство продажа_топливо +1785 |text В акватория керченский пролив приступить сооружение пролёт морской опор крымский мост . участок где начаться работа расположить остров тузел фарватер керчь еникальский канал сообщаться сайт проект . строитель предстоять возвести море пролёт протяжённость километр . участок остров фарватер перемещать суши акватория нить металлоконструкция автодорожный мост длина километр масса тысяча тонна рассказать замначальник управление федеральный автомобильный дорога тамань заказчик . сооружение морской пролёт выполняться метод продольный надвижка заранее подготовить суша стенд проводиться укрупнение сегмент пролёт . двигать акватория скользящий направлять помощь мощный домкрат . следом стенд укрупняться очередной пролёт вновь проводиться операция движение нить пролётный строение сторона фарватер . И продолжаться пора пролёт не_оказаться проектный положение . одновременно идти сооружение опора трасса крымский мост середина быть готовый свыше опора вестись сборка пролёт сухопутный участок идти работа бетонирование плита проезжий часть . стройка трудиться тысяча человек . мост керченский пролив длина километр стать протяжённый россия . соединить крымский полуостров материковый частью страна автомобильный полоса железный дорога . движение автомобиль открыться год железнодорожный линия быть ввести временной эксплуатация . |ngramms крымский_мост крымский_мост начаться_работа сообщаться_на_сайт тысяча_тонна _ управление_федеральный автомобильный_дорога проектный_положение сооружение_опора быть_готовый тысяча_человек крымский_полуостров частью_страна железный_дорога автомобиль_открыться железнодорожный_линия временной_эксплуатация +1786 |text дочка новатэк крупный россия независимый производитель газа выиграть конкурс получение участок недра ямало ненецкий автономный округа включать нефтегазоконденсатный месторождение . официальный федеральный агентство недропользование роснедра . как указываться сообщение компания новатэк таркосаленефтегаз предложить участок миллиард рубль . начальный цена актив составлять миллиард рубль указывать . кто претендовать участок не_сообщаться . запас нефть месторождение оцениваться сорок миллион тонна запас газа шестьдесят миллиард кубометр . У новатэк ямал есть проект . дочерний предприятие производитель новатэк юрхаровнефтегаз год получить право освоение геофизический салмановский утренний участок . база месторождение новатэк совместно газпром реализовать проект строительство завод заняться выпуск сжидить природный газа спг . получить завод спг предполагаться экспортировать страна азиатско тихоокеанский регион . В прошлое год компания договориться создание газовый сп . помочь повысить производство спг ямал быть способствовать освоение месторождение полуостров гыдать ямало ненецкий ао . |ngramms крупный_в_россия независимый_производитель выиграть_конкурс автономный_округа восточно_тазовский восточно_тазовский пресс_релиз федеральный_агентство миллиард_рубль миллиард_рубль актив_составлять миллион_тонна запас_газа миллиард_кубометр дочерний_предприятие северо_обский восточно_тамбейский южно_тамбейский строительство_завод природный_газа прошлое_год помочь_повысить производство_спг быть_способствовать освоение_месторождение +1787 |text российский железный дорога ржд подготовить модель развитие рынок железнодорожный перевозка предусматривать консолидация парк грузовой вагон . писать коммерсантъ ссылка документ . В настоящее время большой часть грузовой вагон принадлежать частное оператор . предложение представить государственный железнодорожный компания разрабатывать институт проблема естественный монополия ипать . согласно имя ржд хотеть вернуть вагон надеяться предотвратить возвращение полный государственный регулирование тариф перевозка как быть реформа монополия владеть основной частью российский вагон . параллельно госкомпания предлагать ряд мера ограничить расширение конкуренция сторона владелец частное вагон увеличение плата простой запрет продление нормативный срок служба . основной направление дальнейший либерализация железнодорожный рынок очередь появление частный локомотивный тяга альтернативный перевозчик ржд надеяться отсрочить . выступать усиление позиция отрасль железнодорожный госкомпания хотеть снижение ответственность грузоотправитель отмечать издание . впрочем целевой модель ржд быть разработать смена руководство монополия конец возглавить . издание не_смочь уточнить компания разделять новый президент ржд перечисленный идея . окончательный вариант модель развитие рынок железнодорожный перевозка представить минэкономразвития . В настоящее время оперирование российский компания находиться примерно миллион грузовой вагон . крупный владелец вагон являться грузовой компания входить ucl holding федеральный грузовой компания дочка ржд новый перевозочный компания rail garant globaltrans совфрахт нефтетранссервис сг транс увз логистика . проблема избыток вагон оцениваться тысяча штука привести снижение арендный ставка упасть рубль вагон сутки конец . В результат многие оператор вагон стать испытывать сложность обслуживание лизинговый платёж текущий обслуживание подвижный состав финансовый трудность . крупный половина год перестать закупать новый подвижный состав что повлечь остановка работа вагоностроительный предприятие . фон сложиться ситуация некоторый оператор globaltrans фгк пгк нефтетранссервис предложить передать вагон управление ржд как быть либерализация рынок грузовой перевозка . В ржд целесообразность манёвр не_комментировать . |ngramms российский_железный_дорога модель_развитие модель_развитие железнодорожный_перевозка железнодорожный_перевозка грузовой_вагон грузовой_вагон грузовой_вагон В_настоящее_время В_настоящее_время большой_часть частное_оператор железнодорожный_компания согласно_имя хотеть_вернуть частью_российский основной_направление железнодорожный_госкомпания отмечать_издание целевой_модель быть_разработать смена_руководство _ не_смочь_уточнить президент_ржд окончательный_вариант российский_компания находиться_примерно крупный_владелец грузовой_компания грузовой_компания тысяча_штука В_результат стать_испытывать лизинговый_платёж подвижный_состав подвижный_состав финансовый_трудность год_перестать остановка_работа сложиться_ситуация некоторый_оператор предложить_передать грузовой_перевозка +1788 |text американский видеохостинг youtube принадлежащий google потратить миллиард доллар покупка сервис видеоигра twitch . воскресение сообщать variety ссылка осведомить источник . покупка twitch стать крупный сделка история youtube . О объявить ближний время . сторона ждать одобрение министерство юстиция сша . представитель компания информация никак не_комментировать . компания google купить youtube миллиард доллар год . twitch ведущий сайт видеотрансляция компьютерный игра быть запустить год . компания сервис ежемесячно посещать миллион посетитель миллион загружать видео . twitch иногда использовать как неофициальный презентация продукт . канал microsoft показать геймплей игра xbox не_выпустить время mmo world tanks . |ngramms миллиард_доллар миллиард_доллар крупный_сделка ждать_одобрение представитель_компания компания_google миллион_посетитель использовать_как +1789 |text philip morris запустить великобритания продажа электронный сигарета . В перспектива компания мочь полностью отказаться производство поставка рынок обычный табачный изделие передавать . В philip morris пояснять что принцип действие альтернативный табачный изделие заключаться нагрев табак сжигание как классический сигарета . В результат потребление курильщик никотин снижаться процент . глава philip morris каланцопулос заявить интервью что вести переговоры правительство страна где присутствовать компания постепенный отказ распространение обычный сигарета . philip morris вложить разработка электронный сигарета миллиард доллар . каланцопулос что компания осознать факт что продукция наносить вред здоровье потребитель . И единственно правильный решение считать найти коммерциализировать решение снизить вред минимум . власть европейский страна бороться вредный привычка различный способ запрет курение общественный место продажа сигарета стандартизировать упаковка . philip morris international крупный мир производитель табачный изделие . продукция корпорация продаваться страна . |ngramms электронный_сигарета электронный_сигарета В_перспектива компания_мочь В_результат заявить_в_интервью правительство_страна миллиард_доллар что_компания вред_здоровье европейский_страна различный_способ общественный_место крупный_в_мир +1790 |text половина сотня наиболее многообещающий компания сша оказаться связанный выпуск программный обеспечение . таков результат исследование журнал forbes проанализировать сотня частное компания сша . первое место рейтинг занять производить мобильный крупный торговый сеть . второе место оказаться финансовый компания finance предоставлять кредит ненадёжный заёмщик высокий процент . софтверный фирма virtual instruments разработчик мониторинг компьютерный сеть крупный компания расположиться третье место . forbes составление рейтинг использовать довольно сложный методология . В журнал прислать вывод что объесть выручка стоимость бизнес говорят успех перспектива . В конечный итог компания оцениваться рост как доход количество создавать рабочий место качество управленческий команда торговый маржа партнерство доле рынок . количественный показатель оценка использоваться беседа представитель фирма . В рейтинг участвовать частное непубличный компания существовать собственный средство оборот ресурс учредитель привлекать кредитный венчурный финансирование . |ngramms сша_оказаться программный_обеспечение результат_исследование журнал_forbes частное_компания первое_место торговый_сеть оказаться_финансовый крупный_компания объесть_выручка компания_оцениваться рабочий_место представитель_фирма В_рейтинг +1791 |text крупный производитель вино крым госкомпания массандра планировать судиться украина бренд . заявить интерфакс генеральный директор компания . слово гендиректор массандра стать ответ прозвучать заявление министерство аграрный политика продовольствие украина план наладить выпуск вино одноимённый торговый марка завод страна сохранить бренд украина . как сообщить советник министр агрополитик продовольствие юридический право торговый марка не_использоваться год теряться . бренд массандра украина не_использовать год . первоочередной задача дать украинский предприятие юридический возможность выпускать массандровский вино соответствующий торговый марка . В крымский госкомпания представитель министерство не_согласиться . вино массандра мочь рождаться крым . массандра создать граф князь исконно исторически российский предприятие . слово компания намерить отстаивать интерес везде где потребоваться . посоветовать минагропрод украина защитить внутренний винный рынок страна фальсификат . слово продукция иметься местный рынок огромный количество фальсифицировать новый свет выпускаться харьков фальсифицировать массандровский вино херсонский область . год министерство аграрный политика продовольствие украина заявлять намерение перерегистрировать киев крымский госпредприятие сохранить самобытный украинский бренд . идти завод массандра новый свет магарача . массандра виноград винодельческий комбинат одноимённый посёлок южный берег крымский полуостров . коллекция вино предприятие миллион бутылка являться крупный мир быть занести книга рекорд . предприятие состав входить восемь винодельческий хозяйство принадлежать тысяча гектар земля тысяча гектар виноградник . совет министр крым осень год передать массандра управление президент россия . |ngramms крупный_производитель генеральный_директор компания__ слово_гендиректор выпуск_вино торговый_марка торговый_марка торговый_марка как_сообщить _ _ украинский_предприятие российский_предприятие компания_намерить рынок_страна новый_свет новый_свет южный_берег крымский_полуостров вино_предприятие крупный_в_мир книга_рекорд совет_министр крым_осень год_передать президент_россия +1792 |text группа компания русский платина обратиться просьба выделение господдержка вид государственный гарантия кредит . сообщать независимый газета ссылка источник правительство . источник компания принадлежащий предприниматель требоваться мера миллиард рубль . сумма необходимый русский платина реализация инвестпроект красноярский край источник . В год рамка xi красноярский экономический форум русский платина заявить что инвестировать развитие красноярский край миллиард рубль . подписание документ состояться присутствие заместитель председатель правительство рф аркадия . средство быть пойти проект добыча обогащение руда черногорский месторождение выход проектный мощность производительность миллион тонна руда год запуск предприятие добыча обогащение руда южный часть месторождение норильск выход проектный мощность миллион тонна руда год . осень год доля нефтяной бизнес компания alliance oil . часть средство сделка быть пойти компания русский платина реализация красноярский край сообщить материал независимый газета генеральный директор центр политический информация . ведомость осень год брат мавлить приобрести люксовыя туристический курорт forte village местечко сант ди пул сардиния сотня миллион евро . часть средство мочь быть вывести рубеж считать . русский платина получить право разработка месторождение норильск черногорский летом год пора мочь начать освоение проблема выделение земля инфраструктура сторона норильский власть . добавиться трудность компания получение кредитный деньга что быть вынужденный обратиться правительство . группа компания русский платина ведущий предприятие россия мир добыча драгоценный металл платиноид . В актив компания входить крупный мир месторождение россыпный платина кондёр расположить хабаровский край унция год . |ngramms группа_компания группа_компания русский_платина русский_платина русский_платина русский_платина русский_платина русский_платина государственный_гарантия независимый_газета независимый_газета _ _ _ _ _ миллиард_рубль миллиард_рубль красноярский_край красноярский_край красноярский_край экономический_форум инвестировать_в_развитие подписание_документ заместитель_председатель правительство_рф аркадия_ проектный_мощность проектный_мощность миллион_тонна миллион_тонна горно_добывать южный_часть часть_средство часть_средство генеральный_директор центр_политический _приобрести миллион_евро мочь_быть разработка_месторождение быть_вынужденный обратиться_в_правительство компания_входить крупный_в_мир +1793 |text липецкий кондитерский фабрика росить входящая украинский корпорация roshen год планировать уволить сотрудник второе полугодие падение объём производство . сообщить исполнять обязанность директор городской центр занятость население липецк передавать интерфакс . сегодняшний орган служба занятость обратиться человек половина иметь высокий образование . четверо трудоустроить зарегистрировать качество безработный направить переобучение сообщить . особенно непростой ситуация слово складываться прошлое год . В время слово бойковый часть уволиться работник фабрика надеяться вернуться предприятие ослабление политический напряжённость отношение россия украина . численность сотрудник предприятие постоянно уменьшаться . состояние год фабрика трудиться тысяча человек текущий год остаться сотрудник . В конец имущество липецкий фабрика быть арестовать следственный комитет рф рамка расследование уголовный мошенничество возмещение ндс бюджет миллион рубль . суд интеллектуальный право оставить изменение акт нижестоящий судно взыскание липецкий предприятие росить миллион рубль незаконный использование товарный знак певунья . год руководство фабрика росить липецк известить центр занятость регион увольнение рабочий инженер . основной причина увольнение стать сокращение производство фон резкий падение спрос . В год фабрика быть вынудить дважды приостановить работа скопление продукция склад поскольку торговый сеть население регион стать маленький покупать продукция произвести липецк . В год липецкий фабрика являться российский подразделение принадлежащий украинский президент компания roshen дважды приостанавливать производство . иск холдинг объединить кондитер повод использование товарный знак тверская районный суд москва наложить арест счёт roshen россия . затоваренность склад поскольку спрос продукция резко упасть . |ngramms кондитерский_фабрика корпорация_roshen год_планировать объём_производство исполнять_обязанность _ высокий_образование В_то_же_время россия_и_украина сотрудник_предприятие тысяча_человек текущий_год В_конец липецкий_фабрика липецкий_фабрика быть_арестовать следственный_комитет миллион_рубль липецкий_предприятие незаконный_использование товарный_знак товарный_знак основной_причина падение_спрос быть_вынудить приостановить_работа торговый_сеть стать_маленький покупать_продукция российский_подразделение принадлежащий_украинский президент__ компания_roshen суд_москва наложить_арест резко_упасть +1794 |text крупный российский автопроизводитель камаз компания sap лидер рынок корпоративный приложение рамка петербургский экономический форум пмэф подписать соглашение стратегический сотрудничество . sap иметься распоряжение лента . . соглашение предусматривать совместный работа компания цифровой трансформация камаз концепция industry . применение облачный технология sap . В эксперт заняться проработка инновационный решение предназначить удалённый мониторинг транспортный средство поддержка система автономный движение прогнозирование оказание услуга рамка концепция connectedcar сообщение . документ предусматривать сотрудничество российский автопроизводитель sap сфера как модернизация реинжиниринг производство развитие финансовый услуга сервис повышение производительность труд выход новое рынок сбыт увеличение экспортный поставка обеспечение конкурентный преимущество отечественный рынок . эффективный современный производство неотделимый применение инновационный . стремиться совершенствовать автомобиль марка уровень лидер мировой автомобилестроение запустить программа цифровой трансформация бизнес генеральный директор камаз . слово автопроизводитель рассматривать sap как стратегический партнёр чей технология позволить достигнуть хороший результат . как генеральный директор sap снг цифровой трансформация необходимость современный бизнес стремиться оставаться эффективный . особенно значимый производство представлять сложный многоуровневый система включать производственный логистический бюрократический процесс нуждаться точный отладка . В настоящее время камаз выполняться проект внедрение облачный crm система saphybriscloudforcustomer . предусматривать трансформация сбытовый бизнес модель компания соответствие современный концепция автопроизводитель переходить управление сквозной цепочка взаимоотношение производитель дилер конечный потребитель контролировать полный цикл продажа автомобиль стадия работа клиент . камаз находиться место мир производитель тяжёлый грузовой автомобиль место объём выпуск дизельный двигатель . компания занимать процент российский рынок грузовик . чистый убыток камаз первое квартал год составить миллиард рубль рсб . |ngramms крупный_российский экономический_форум стратегический_сотрудничество пресс_релиз соглашение_предусматривать совместный_работа инновационный_решение транспортный_средство документ_предусматривать российский_автопроизводитель финансовый_услуга рынок_сбыт экспортный_поставка конкурентный_преимущество эффективный_современный ит_система лидер_мировой запустить_программа генеральный_директор генеральный_директор _ _ стратегический_партнёр технология_позволить хороший_результат В_настоящее_время продажа_автомобиль место_в_мир производитель_тяжёлый грузовой_автомобиль место_по_объём дизельный_двигатель компания_занимать российский_рынок чистый_убыток год_составить миллиард_рубль +1795 |text авиакомпания трансаэро находиться процесс присоединение группа аэрофлот объявить перевод московский рейс аэропорт домодедово внуково . сообщаться распоряжение генеральный директор перевозчик передавать интерфакс . рейс авиакомпания начинать год время московский вылетать прибывать аэропорт внуково документ . ссылка акционер авиаперевозчик председатель совет директор внуково сообщить что трансаэро мочь перевести столичный рейс аэропорт . слово стратегия компания разработать год совместно руководство воздушный гавань предусматривать действие . что позволить повысить эффективность эксплуатация парк возможность стыковка рейс сократить административный расход счёт уменьшение арендовать площадь . причина трансаэро покинуть шереметьево год . трансаэро перейти операционный управление аэрофлот . В настоящее время осуществляться процесс интеграция авиакомпания группа аэрофлот . В начало министр транспорт максим сообщить что трансаэро продолжить осуществлять операционный деятельность примерно зима . слово процесс связанный переход компания контроль аэрофлот занять полгода . трансаэро занимать место объём перевозка страна . В парк входить самолёт . |ngramms генеральный_директор _ рейс_авиакомпания председатель_совет_директор __сообщить стратегия_компания что_это_позволить повысить_эффективность административный_расход операционный_управление В_настоящее_время министр_транспорт максим__сообщить продолжить_осуществлять операционный_деятельность +1796 |text польский газовый нефтяной компания pgnig официально уведомить газпром начало процедура арбитражный разбирательство . концерн подготовить иск стокгольмский арбитраж газпром газпром экспорт . предмет спорый являться долгосрочный ценовый условие контракт закупка природный газа год сообщать pgnig . компания пояснять что размер исковый требование срок рассмотрение дать этап рассмотрение не_указываться . как отмечать pgnig переговоры отводиться месяц не_дать положительный результат быть решение обратиться арбитражный суд что предусмотреть договор . председатель правление завиш mariusz zawisza подчеркнуть что несмотря подача иск суд компания открытый диалог бизнес партнёр . слово pgnig готовый заключить соглашение быть гарантировать компания клиент выгодный основать реалия рыночный цена . как пояснить новость источник газпром экспорт сенсация нет арбитраж предусмотреть стандартный контракт переговоры обычно продолжаться . официально газпром экспорт газпром ситуация не_комментировать . pgnig направить газпром запрос пересмотр цена газ поставлять страна рамка ямальский соглашение . компания решение опираться существенный перемена произойти европейский энергетический рынок год . В ответ газпром предложить польша специальный условие поставка газа нефтегазовый компания pgnig . конкретный цена топливо польша сторона не_называть . согласно действующий контракт россия поставлять польша миллиард кубометр газа ежегодно год условие брать платить . потребление польша составлять миллиард кубометр . год средний цена газ газпром польша составлять доллар тысяча кубический метр . впоследствии стоимость быть снизить процент равно остаться высокий европа . В год газпром согласиться длительный переговоры снизить ряд европейский партнёр контрактный цена газ среднее процент . прочий скидка получить французский gdf suez немецкий wingas словацкий spp турецкий botas итальянский edison sinergie italiane австрийский econgas . причина шаг стать удешевление газа спотовой рынок счёт расширение добыча сша . |ngramms нефтяной_компания газпром_экспорт газпром_экспорт газпром_экспорт ценовый_условие природный_газа компания_пояснять исковый_требование как_отмечать положительный_результат быть_принять_решение арбитражный_суд председатель_правление иск_в_суд заключить_соглашение рыночный_цена как_пояснить цена_на_газ цена_на_газ цена_на_газ В_ответ поставка_газа нефтегазовый_компания согласно_действующий миллиард_кубометр_газа миллиард_кубометр доллар_за_тысяча быть_снизить ряд_европейский +1797 |text В двигатель лайнер boeing выпустить год мочь обнаружиться технический неполадка . сообщать ссылка дать general electric производить двигатель . компания существовать вероятность что двигатель самолёт мочь выйти строй время полёт как случиться дважды начало год неделя . инцидент произойти самолёт air china . В general electric что возможный причина сбой работа двигатель являться дефект деталь выпускать итальянский avio spa . окончательно причина появление дефект не_установить . деталь быть использовать самолёт boeing находиться эксплуатация лайнер находиться производство . general electric начало поставка авиакомпания необходимый запчасть замена дефектный . В компания подчеркнуть что неполадка двигатель никой образ мочь привести возгорание взрыв . В текущий год авиакомпания столкнуться неполадка двигатель самолёт boeing идти dreamliner лайнер мечта . С середина год полёт dreamliner быть приостановить возобновиться конец . причина стать нештатный ситуация возникать возгорание аккумулятор лайнер приводить перегрев батарея . В boeing не_смочь установить окончательный причина перегрев решить внести изменение конструкция батарея . |ngramms лайнер_boeing двигатель_самолёт инцидент_произойти air_china возможный_причина быть_использовать самолёт_boeing самолёт_boeing находиться_в_эксплуатация авиакомпания_необходимый текущий_год лайнер_мечта С_середина быть_приостановить причина_стать +1798 |text крупный мировой производитель алкогольный напиток diageo опровергнуть сообщение выпуск висок johnnie walker россия компания поступить лента . . корпорация заявлять что продукция бренд johnnie walker быть импортироваться россия шотландия . возможный разлив шотландский висок россия писать коммерсантъ . информация издание производство предполагаться разместить петербургский завод ладога где diageo выпускать водка смирновъ специально создать российский рынок ром shark tooth . объём импорт висок россия неуклонно расти протяжение год год впервые упасть процент высокий ставка акциз . diageo являться крупный поставщик напиток рф занимать процент рынок . diageo британский компания крупный мировой производитель алкогольный напиток класс премиум . находиться лондон . выпускать крепкий алкогольный напиток всемирно известный бренд johnnie walker white horse captain morgan gordon . |ngramms мировой_производитель мировой_производитель алкогольный_напиток алкогольный_напиток алкогольный_напиток пресс_релиз шотландский_висок производство_предполагаться ликеро_водочный российский_рынок объём_импорт год_впервые ставка_акциз являться_крупный британский_компания штаб_квартира известный_бренд +1799 |text российский турфирма сант приостанавливать деятельность . сообщать ссылка представитель компания . В компания пояснить что остановка работа связать ситуация российский туристический рынок . представитель туроператор подчеркнуть что пострадать человек . сант готовить документ обращение страховой компания либерти страхование . единый федеральный реестр туроператор размер страховой покрытие составлять тысяча рубль . информация официальный сайт туроператор сант заниматься организация отдых доминикана оаэ куб египет турция таиланд россия ближний зарубежье . приостановка деятельность объявить турфирма нева . решение быть невозможность исполнять обязательство турист заказчик . поздний закрыться компания роза ветер мир экспо тур . В перестать работать туроператор идеал тур лабиринт интаэр старый атлас милан тур . ростуризм результат банкротство ряд туроператор нынешний сезон пострадать тысяча человек . |ngramms представитель_компания В_компания остановка_работа ситуация_на_российский туристический_рынок страховой_компания реестр_туроператор тысяча_рубль заниматься_организация ближний_зарубежье деятельность_объявить перестать_работать _старый ряд_туроператор сезон_пострадать тысяча_человек +1800 |text гендиректор citroen россия покидать пост истечение срок контракт сообщать рбк . продолжить работа центральный офис citroen . имя новое глава российский citroen не_называться функционал руководитель перейти гендиректор peugeot россия . мнение эксперт реструктуризация система управление psa peugeot citroen осуществляться рамка сокращение расход глобальный холдинг россия фон падение объём продажа автомобиль . возглавить citroen россия начало год . возглавить российский подразделение peugeot год . сообщать что руководство psa peugeot citroen намерить сократить количество модель предлагать российский рынок . В марка citroen слабый спрос прекратить продавать рф флагманский модель линейка ds хэтчбек . В причина россия покинуть купе peugeot rcz . подсчёт ассоциация европейский бизнес аеб продажа новый легковой автомобиль lcv малотоннажный грузовик россия снизиться процент сравнение месяц предыдущий год тысяча машина . итог год ассоциация ожидать падение продажа легковушка россия процент миллион штука . |ngramms _ _ _ _ срок_контракт центральный_офис имя_новое глава_российский система_управление сокращение_расход падение_объём продажа_автомобиль российский_подразделение что_руководство сократить_количество ассоциация_европейский_бизнес продажа_новый легковой_автомобиль предыдущий_год тысяча_машина ассоциация_ожидать падение_продажа миллион_штука +1801 |text китайский zhejiang geely holding group стать новый владелец британский компания manganese bronze holdings mbh производитель лондонский такси . официальный zhejiang geely . сумма сделка составить миллион фунт стерлинг миллион доллар . мвн оказаться тяжёлый финансовый положение объявить собственный банкротство прошлое год . zhejiang geely оказаться крупный кредитор мвн . заявка приобретение процент акция фирма китайский сторона подать конец . фирма geely auto гонконгский подразделение zhejiang geely владеть процент ценный бумага mbh . как zhejiang geely сделка быть согласовать pricewaterhousecoopers быть назначить внешний управлять mbh . В китайский компания пообещать продолжить сборка завод мвн ковентри . mbh быть основать год . производство заняться год фирма carbodies austin . год mbh быть единственный поставщик такси лондон год монополия нарушить daimler разрешить использовать минивэн mercedes benz vito лондонский улица . |ngramms group_стать новый_владелец британский_компания пресс_релиз сумма_сделка миллион_фунт_стерлинг миллион_доллар финансовый_положение собственный_банкротство прошлое_год крупный_кредитор процент_акция китайский_сторона ценный_бумага сделка_быть китайский_компания пообещать_продолжить быть_единственный +1802 |text количество российский семья покупать кофе молоко шоколад год сократиться объём продажа товар наоборот вырасти . свидетельствовать дать исследовательский холдинг ромиро называть товарный позиция простой удовольствие . семья покупать шоколад молоко кофе сократиться процент соответственно заявить аналитика . что кто продолжить потребление продукт увеличить объём покупка шоколадный плитка стать покупать большой процент молоко процент кофе процент . ромиро сообщить помимо молоко кофе шоколад составлять индекс кофе молоко бутилировать вода . В количество семья приобретать вырасти процент объём покупка упасть процент . потеря существенно индекс повлиять не_смочь благодаря что показатель остаться июньский уровень . сохранение прежний показатель индекс поспособствовать рост цена перечисленный товар . продукт входящая индекс кофе молоко сравнение прошлое месяц подорожать . вод процент молоко процент шоколад процент . большой прибавить цена кофе процент отмечаться исследование . тенденция россиянин экономия холдинг отмечать конец . исследование что россиянин принцип сократить повседневный расход . |ngramms год_сократиться объём_продажа свидетельствовать_дать процент_соответственно увеличить_объём покупать_большой показатель_индекс что_россиянин +1803 |text В bonduelle назвать россия стратегический рынок компания . заявить президент генеральный директор группа bonduelle бондюэль сообщение группа прислать редакция лента . . россия являться стратегический рынок группа bonduelle зрение объём продажа как удобный площадка организация экспорт развитие бизнес страна снг заявить . слово начинать финансовый год россия занимать первое место рынок группа объём продажа продукция бренд bonduelle . В период год объесть продажа компания россия вырасти процент тысяча тонна тысяча тонна . как рассказать генеральный директор bonduelle development бондюэль компания видеть огромный потенциал развитие рост российский рынок . В ближний план развитие российский консервный производство счёт запуск производственный линия завод тимашевск расширение ассортимент продукция . позволить предлагать потребитель продукция высокий качество произвести россия заметить бондюэль . группа bonduelle основать год франция настоящее время насчитывать сотрудник иметь годовой оборот миллиард евро являться мировой лидер область переработка овощ . группа осуществлять деятельность направление консервированный овощ заморозить овощ свежий овощ готовый салат продавать продукция бренд как bonduelle cassegrain arctic gardens globus страна . bonduelle работать россия год . иметь портфель бренд bonduelle fusion bonduelle globus vernet хуторок компания являться лидер российский рынок консервированный овощ . агропромышленный комплекс bonduelle расположить кубань включать завод склад сельскохозяйственный угодье площадь гектар склад аренда . завод bonduelle россия выпускать сложность миллион банка консервы что составлять тонна консервированный продукт год . |ngramms стратегический_рынок генеральный_директор генеральный_директор являться_стратегический объём_продажа финансовый_год первое_место продажа_продукция год_объесть компания_в_россия тысяча_тонна тысяча_тонна как_рассказать огромный_потенциал В_ближний развитие_российский производственный_линия высокий_качество заметить_ год_в_франция миллиард_евро мировой_лидер осуществлять_деятельность работать_в_россия компания_являться российский_рынок +1804 |text поставка новый российский пассажирский лайнер мс мочь составить тысяча единица год . как передавать сообщить министр промышленность торговля рф мантур выполнение заявить экономический характеристика создание эффективный современный система интегрировать логистический поддержка послепродажный обслуживание формирование выгодный финансовый модель продажа позволить выйти совокупный объесть поставка мс тысяча самолёт период год мантур . слово российский самолёт позволить авиаперевозчик снизить эксплуатационный расход процент сравнение лайнер аналогичный класс процент сравнивать модернизированный версия . лайнер мс совершить полёт . как сообщение компания производитель иркут продолжительность полёт составить минута проходить высота метр скорость километр час . план полёт включать проверка самолёт устойчивость управляемость управляемость двигатель . В соответствие программа ход полёт выполнить имитация заход посадка последующий проходом полоса набор высота разворот сообщение компания . завершение полёт лётчик испытатель пилотировать лайнер заявить что полётный задание выполнить полностью . полёт пройти штатный режим . замечание препятствовать продолжение испытание не_выявить приводиться слово иркут . президент корпорация заявить что ближний год сегмент мс мировой спрос составить новый лайнер . ближний среднемагистральный пассажирский самолёт мс создаваться смена устаревший суд тип . лайнер способный взять борт пассажир . максимальный расстояние полёт тысяча километр . портфель заказ мс составлять самолёт машина заключить твёрдый проавансированный контракт . В конец начало год лётный экземпляр мс быть поставить аэрофлот . |ngramms поставка_новый российский_пассажирский лайнер_мс лайнер_мс мочь_составить тысяча_единица сообщить_министр промышленность_и_торговля рф_ заявить_ эффективный_современный финансовый_модель объесть_поставка российский_самолёт аналогичный_класс полёт_составить километр_в_час _ пресс_релиз президент_корпорация __заявить что_в_ближний новый_лайнер пассажирский_самолёт лайнер_способный тысяча_километр В_конец +1805 |text группа онэксим негосударственный пенсионный фонд нпф благосостояние получить процент группа компания гк связной . сообщаться сайт онэксим . оптимистично смотреть возможность стабилизировать ситуация группа компания связной поддерживать банка кредитор различный компания связной менеджмент компания группа заявление . отмечаться что рамка сделка долговой нагрузка связной быть существенно сократить . стать что компания входящая группа онэксим направить основный владелец группа компания связной ноготкова уведомление дефолт долг залог выступать контрольный пакет акция холдинговый компания группа . помимо онэксим кредитор связной являться сбербанк промсвязьбанк московский кредитный банк . гк связной иметь тысяча салон сотовый основной владелец максим ноготок . В гк входить связной банк онлайн enter сеть ювелирный салон pandora . |ngramms пенсионный_фонд группа_компания группа_компания группа_компания сообщаться_на_сайт менеджмент_компания что_в_рамка существенно_сократить входящая_в_группа _ основный_владелец пакет_акция кредитный_банк тысяча_салон основной_владелец +1806 |text госкорпорация ростёха создать совместный предприятие литовский компания avia solutions group строительство аэропорт раменский . сообщать агентство интерфакс . сторона подписать сертификат инвестиционный договор создание оао рампорт аэро . предприятие провести модернизация аэродром раменский база быть развиваться экспериментальный государственный гражданский авиация . О что avia solutions group строительство аэропорт стать год . претендент контракт быть компания аэропорт толмачево входить новапорт бизнесмен роман набрать маленький балл avia solutions . объесть инвестиция строительство оцениваться миллиард рубль . замысел ростех раменский стать аэропорт московский авиаузел . планироваться что пассажир аэропорт смочь начало год год быть способный обеспечить пропускной способность миллион пассажир обработка тысяча тонна груз год . |ngramms провести_модернизация гражданский_авиация строительство_аэропорт контракт_быть миллиард_рубль аэропорт_московский год_быть способный_обеспечить миллион_пассажир тысяча_тонна +1807 |text российский учёный разрабатывать цифровой модель судный экипаж помочь повысить эффективность морской перевозка арктика . новость сообщить всероссийский институт экспериментальный физика рфяц внииэф входящий росатом . В ядерный центр подчеркнуть что безэкипажный судовождение наиболее перспективный направление применение информационный технология область морской речной транспорт . В создание цифровой модель машина стать возможный существенно улучшить конструкция корпус отказаться надстройка разместить часть грузовой трюм оптимизировать соотношение размерений судный не_бояться неблагоприятный влияние резка качка обитаемость экипаж исключить система обеспечение жизнедеятельность увеличивать площадь грузовой отсек срок плавание . оценка специалист большой доля затрата судовождение приходиться создание инфраструктура жизнеобеспечение персонал корабль . процент инцидент суд происходить вина экипаж ущерб допустить ошибка судовождение оцениваться полтора миллион доллар . проект создание безэкипажный судный арктика являться совместный проект саровский ядерный центр фгуп крыловский государственный научный центр институт океанология имя российский академия наука . В конец проект быть представить совещание агентство стратегический инициатива . В настоящее время мир отмечаться тенденция увеличение речной морской перевозка фон снижение квалифицировать персонал . В обозначиться инновационный направление создание безэкипажный судно . В область разработка вести великобритания норвегия нидерланды франция китай группа компания ес . |ngramms цифровой_модель цифровой_модель повысить_эффективность морской_перевозка научно_исследовательский ядерный_центр ядерный_центр перспективный_направление информационный_технология стать_возможный существенно_улучшить часть_грузовой большой_доля миллион_доллар совместный_проект имя_ российский_академия быть_представить В_настоящее_время группа_компания +1808 |text арбитражный суд автономный округа югра отказать удовлетворение заявление пермский компания авиализинг признание банкрот авиакомпания ютэйр . сообщать . сообщаться что инвестиционный компания авиализинг подать суд иск признание авиакомпания ютэйр банкрот уступить право требование авиаперевозчик . быть передать право сумма исковый требование миллион рубль . суд рассматриваться иск взыскание задолженность авиаперевозчик . сумма обязательство компания кредитор превышать миллиард рубль . крупный иск подать сумма порядок миллиард рубль . В конец лента . сообщить что арбитражный суд москва удовлетворить заявление арест денежный средство иной имущество авиакомпания ютэйр компания ютэйр лизинг сумма миллион доллар . служба судебный пристав иск арестовать принадлежащий авиакомпания ютэйр вертолёт аэропорт тобольск тюмень . год девять арбитражный апелляционный суд рассмотреть жалоба авиакомпания ютэйр определение суд арест деньга имущество рамка иск . |ngramms арбитражный_суд ханты_мансийский автономный_округа инвестиционный_компания иск_о_признание альфа_банк альфа_банк альфа_банк альфа_банк альфа_банк быть_передать исковый_требование миллион_рубль иск_о_взыскание обязательство_компания миллиард_рубль миллиард_рубль иск_подать В_конец арбитражный_суд_москва удовлетворить_заявление денежный_средство имущество_авиакомпания миллион_доллар служба_судебный девять_арбитражный апелляционный_суд +1809 |text российский государственный компания не_быть испытывать неразрешимый проблема разрыв отношение немецкий концерн siemens . заявить передавать . критический проблема нет есть производитель мир тип продукция производить многие вид продукция начинать производить заявить . чиновник что случай siemens не_идти полный отказ поставка оборудование россия ограничение касаться исключительно компания госучастие . министр энергетика россия новак заявить что изделие siemens российский рынок мочь быть заместить продукция компания . немецкий концерн объявить что получить достоверный информация модернизация перемещение крым турбина быть поставить летом год проект тамань краснодарский край . В siemens что быть сделать нарушение контрактный обязательство . компания намерить добиться возвращение оборудование тамань предотвратить новое поставка крым . концерн объявить разрыв лицензионный соглашение российский партнёр поставка оборудование электростанция . поставка турбина полуостров siemens мочь обвинить нарушение санкционный режим российский регион . |ngramms государственный_компания немецкий_концерн немецкий_концерн вице_премьер _ проблема_нет вид_продукция что_в_случай поставка_оборудование поставка_оборудование ограничение_касаться министр_энергетика россия_ что_изделие мочь_быть что_получить поставить_летом краснодарский_край В_siemens что_это_быть компания_намерить добиться_возвращение поставка_в_крым соглашение_с_российский siemens_мочь обвинить_в_нарушение санкционный_режим российский_регион +1810 |text группа втб объявить приобретение сотовый оператор россия миллиард доллар учёт чистый долг миллиард доллар . сообщаться сайт втб . надеяться что втб продолжить развивать бизнес компания развивающийся рынок россия . В очередь ab планировать сконцентрировать усилие развитие приоритетный компания рынок швеция норвегия нидерланды казахстан заявить глава mats granryd . как заявить агентство новость заместитель председатель втб втб ожидать что приобретение россия рост чистый прибыть компания повыситься процент выручка процент . компания россия принадлежать шведский группа ab . основной акционер шведский инвестиционный группа investment ab kinnevik российский бизнес являться основный . В россия являться количество абонент доход сотовый оператор . конец год оператор быть миллион пользователь . В некоторый регион россия контракт россия популярный контракт оператор большой тройка мтс мегафон вымпелком . итог год чистый прибыль оператор составить миллион доллар выручка миллиард доллар . россия обладать лицензия оказание услуга сотовый стандарт gsm регион россия не_иметь возможность работать москва формально отсутствие свободный частота . оператор неоднократно заявлять что заинтересовать получение лицензия оказание услуга стандарт G lte конкурс не_смочь обойти оператор большой тройка . В год писать что российский бизнес интересоваться телекоммуникационный холдинг garsdale контролировать мегафон . холдинг собираться купить россия покупка разделить актив компания оператор большой тройка группа ростелеком . |ngramms группа_втб сотовый_оператор сотовый_оператор миллиард_доллар миллиард_доллар миллиард_доллар чистый_долг сообщаться_на_сайт продолжить_развивать бизнес_компания В_свой_очередь заявить_глава _ _ _ как_заявить заместитель_председатель чистый_прибыть шведский_группа инвестиционный_группа российский_бизнес являться_основный В_россия миллион_пользователь В_некоторый регион_россия регион_россия большой_тройка большой_тройка большой_тройка чистый_прибыль миллион_доллар возможность_работать неоднократно_заявлять получение_лицензия что_российский телекоммуникационный_холдинг собираться_купить актив_компания +1811 |text добыча традиционный месторождение газпром нефть остаться рентабельный цена нефть доллар баррель . заявление как передавать сделать гендиректор компания интервью телеканал россия . слово цена топливо добыча традиционный обустроить месторождение равно быть продолжаться приносить прибыль . месторождение новый бурение цена доллар баррель позволить наращивать добыча вести бурение добавить . В мировой цена нефть продолжить снижение достигнуть минимум фиксироваться год . стоимость февральский фьючерс нефть brent лондонский биржа ice futures снизиться процент доллар баррель . министр финансы силуановый допустить временной снижение цена нефть доллар баррель . В конец прошлое год лукойл федун заявить что минимальный уровень рентабельность добыча компания доллар баррель . большинство компания разрабатывать новое проект уровень рентабельность мнение составлять доллар баррель . девять месяц год совокупный добыча газпром нефть вырасти процент миллион тонна нефтяной эквивалент . итог год компания планировать увеличить добыча углеводород процент сравнение год когда нефтекомпания добыть миллион баррель нефтяной эквивалент . |ngramms газпром_нефть газпром_нефть цена_на_нефть цена_на_нефть цена_на_нефть доллар_за_баррель доллар_за_баррель доллар_за_баррель доллар_за_баррель доллар_за_баррель доллар_за_баррель как_передавать гендиректор_компания _ быть_продолжаться топ_менеджер министр_финансы В_конец прошлое_год вице_президент минимальный_уровень большинство_компания новое_проект девять_месяц год_совокупный миллион_тонна компания_планировать добыча_углеводород миллион_баррель +1812 |text девять месяц год количество sim карта сфера технология автоматизированный аппарат российский рынок вырасти процент миллион штука сравнение аналогичный период год . исследование оператор мтс . количество sim карта россия процент составлять sim карта мтс . промежуток текущий год количество sim карта оператор вырасти миллион штука что процент большой аналогичный период прошлое год . В москва период количество sim карта сеть мтс увеличиться тысяча штука достигнуть миллион . доля город составлять процент количество sim карта сеть мтс . что касаться сфера применение год лидер оставаться транспортный область доля sim карта отрасль sim карта оператор итог девять месяц составить процент рост процентный пункт сравнение конец год . идти система безопасность процент банкомат терминал процент телематический система жкх учёт вода тепло свет использование лифт домофон промышленность составлять процент . наименьший доля получить медицина процент отрасль умный страхование процент потребительский электроника процент . machine machine название технология позволять различный устройство обмениваться информация . банкомат платёжный терминал мочь автоматически передавать информация gsm сеть различный операция . M входить индустрия интернет вещий . |ngramms девять_месяц девять_месяц год_количество миллион_штука миллион_штука оператор_мтс текущий_год карта_оператор карта_оператор процент_большой аналогичный_период_прошлое_год санкт_петербург тысяча_штука что_касаться год_лидер процентный_пункт система_безопасность платёжный_терминал интернет_вещий +1813 |text итог автоваз тысяча автомобиль восемь месяц год тысяча . официальный компания . В немой подчёркиваться что сравнение рост продажа составить процент умалчиваться что сравнить показатель месяц год получиться обвал процент . В целое восемь месяц продажа автоваз сократиться процент . лидер автомобиль выпускать российский компания продолжать оставаться granta нея прийтись треть продажа . второе место идти largus тысяча авто третье lada тысяча . В материал автоваз подчёркиваться что девять автомобиль уходить экспорт . В целое восемь месяц рубеж быть отправить тысяча машина . основный рынок сбыт автоваз являться страна бывший советский республика . обвал продажа автоваз происходить фон снижение активность российский рынок связанный замедление темп рост экономика . прогноз компания pricewaterhousecoopers продажа автомобиль россия итог год мочь сократиться процент . В первое полугодие снижение показатель подсчёт ассоциация европейский бизнес составить процент . |ngramms тысяча_автомобиль восемь_месяц восемь_месяц восемь_месяц пресс_релиз В_немой рост_продажа В_целое В_целое российский_компания тысяча_авто В_материал быть_отправить тысяча_машина рынок_сбыт темп_рост продажа_автомобиль В_первое_полугодие ассоциация_европейский_бизнес +1814 |text заседание радиочастота гкрч назначить планироваться решение проведение аукцион распределение оператор частота мегагерц . лента . сообщить источник отрасль осведомить план гкрч . частота быть предназначить строительство сеть беспроводный широкополосный доступ поколение G технология lte российский регион исключение москва московский область крым севастополь . В случай комиссия признать частота диапазон ограниченный ресурс выставить торг стать история российский отрасль случаем когда радиочастотный ресурс быть распределяться основа аукцион . право частота оператор получать бесплатно основание специальный решение гкрч результат безденежный конкурс . И случай решение выделение частота не_зависеть размер плата готовый быть внести компания . плат быть одинаковый оператор вноситься получение частота время пользование . объесть плата определяться объём получить частотный ресурс . страна частота получить оператор ход аукцион предложить высокий цена . мнение источник лента . продажа частота аукцион позволить решить проблема называть бумажный компания практически бесплатно получать право частота не_строить сеть рассчитывать время уступить ресурс деньга . счёт аукцион получиться реализовать механизм участник выигрыш государство получить дополнительный средство бюджет оператор предоставлять услуга база устаревший технология диапазон мгц получить компенсация выиграть аукцион компания . планировать аукцион диапазон частота работать оператор предоставлять услуга мобильный телевидение технология mmds беспроводный wimax волгоградский оренбургский ростовский область чувашия краснодарский ставропольский камчатский край автономный округа . аналитический компания J son partners consulting абонентский база пользователь мобильный lte составить россия миллион человек конец первое квартал год . составлять примерно процент общемировой количество пользователь G . год россия коммерческий эксплуатация запустить lte сеть субъект рф . основной использовать диапазон мегагерц band . наибольший абонент оператор скартело yota недавно купить мегафон . лицензия услуга lte иметь оператор большой четвёрка мтс вымпелком билайн ростелеком . проблема нехватка частотный ресурс lte остро стоить оператор как наиболее выгодный частотный диапазон плотно занятый работать коммерческий сеть радиоэлектронный средство военный навигационный специальный назначение . |ngramms проведение_аукцион строительство_сеть российский_регион московский_область В_случай российский_отрасль быть_внести объём_получить позволить_решить получить_дополнительный предоставлять_услуга предоставлять_услуга получить_компенсация ростовский_область ханты_мансийский автономный_округа первое_квартал составлять_примерно количество_пользователь год_в_россия коммерческий_эксплуатация субъект_рф наиболее_выгодный +1815 |text авиакомпания flydubai заявить намерение тесно сотрудничать компетентный ведомство крушение лайнер . сообщение разместить сайт компания . быть тесно работать компетентный ведомство . быть предоставлять возможный информация как смочь . быть регулярно предоставлять обновить дать заявление перевозчик . компания boeing выяснять деталь крушение лайнер заявить агентство sputnik официальный представитель компания . курс сообщение команда выяснять дальнейший деталь заявить представитель компания boeing дуга doug alder . пассажирский boeing лететь дубай потерпеть крушение ночь . самолёт упасть левый полоса аэропорт посадка условие плохой видимость . мчс борт лайнер находиться человек пассажир член экипаж . погибнуть . факт крушение лайнер следственный комитет россия возбудить уголовный . |ngramms ростов_на_дону ростов_на_дону ростов_на_дону компания_boeing заявить_агентство официальный_представитель представитель_компания самолёт_упасть взлетно_посадочный член_экипаж следственный_комитет +1816 |text председатель совет директор группа реновый вексельберг войти совет директор управлять компания ук роснано . официальный оао роснано . руководящий орган ук роснано войти человек . В председатель правление управлять компания председатель совет директор оао роснано президент объединить авиастроительный корпорация глава вэб . заседание совет директор оао роснано быть решение досрочно прекратить полномочие единоличный исполнительный орган компания передать ук . быть утвердить долгосрочный бизнес план развитие роснано год . как указывать интерфакс план предполагать что роснано текущий год вложить нанотехнологический проект миллиард рубль . управлять компания роснано быть создать как середина прошлое год оао роснано быть новый стратегия развитие . В соответствие компания быть решить разделить функция управление владение актив . В дальнейший ук быть курировать формирование новый инвестиционный фонд область нанотехнология . информация новость венчурный фонд управление ук роснано предполагаться запустить год . являться миноритарный акционер ук принадлежать процент акция . |ngramms председатель_совет_директор председатель_совет_директор совет_директор совет_директор управлять_компания управлять_компания пресс_релиз председатель_правление компания__ _ _ объединить_авиастроительный_корпорация быть_принять_решение прекратить_полномочие исполнительный_орган быть_утвердить как_указывать миллиард_рубль быть_создать стратегия_развитие быть_решить В_дальнейший быть_курировать инвестиционный_фонд __являться миноритарный_акционер +1817 |text крупный публичный компания акция торговаться биржа стать активно менять руководитель . исследование структурный подразделение аудиторский компания pricewaterhousecoopers pwc поступить редакция лента . . В процент тысяча опросить компания год произойти смена генеральный директор . В pwc отмечать что рекордный значение год проведение исследование . аналитика прислать вывод что год вырасти крупный компания намеренно выбирать новый руководитель собственный сотрудник . что привлечение внешний специалист становиться целенаправленный решение не_вызвать необходимость документ . внешний специалист составить процент руководитель привлечь рамка план обеспечение преемственность год год быть процент . год ряд отрасль где произойти серьёзный изменение доля руководитель привлечь сторона превышать средний показатель отмечаться исследование . К отрасль относиться телекоммуникация процент новый руководитель год быть привлечь внешний специалист коммунальный услуга процент здравоохранение процент энергетика процент . управлять консультант исследование разработка ceb shl что пара год компания поменять высокий руководитель представиться возможность . традиционный подход управление сочетать транзакционный администраторский трансформационный лидерский роль способный помочь решение комплексный организационный задача пояснять . В новый условие слово требоваться руководитель брать сетевой функция создание взаимосвязь подразделение построение стимулирование контакт . руководитель способный выполнять функция крайне мало . автор исследование pwc констатировать что год мир стать неудачный женщина гендиректор доля снизиться уровень процент десять новый руководитель привлечь год . низкий показатель год . |ngramms публичный_компания поступить_в_редакция генеральный_директор рекордный_значение проведение_исследование год_вырасти крупный_компания новый_руководитель новый_руководитель новый_руководитель внешний_специалист внешний_специалист внешний_специалист ряд_отрасль где_произойти серьёзный_изменение превышать_средний год_быть _ В_новый автор_исследование +1818 |text министерство юстиция комиссия ценный бумага биржа сша sec начать расследование коррупционный преступление подозреваться сотрудник microsoft . сообщать wall street journal ссылка неназванный источник . информация издание следствие подозревать бывший представитель компания кнр выплата откат китайский чиновник . американский власть получить сведение неназванный информатор что работать microsoft представитель компания кнр поручать передавать деньга чиновник обмен подписание контракт поставка программный обеспечение . информатор уволиться microsoft год . проверяться возможный microsoft взяточничество румыния . следствие подозревать посредник производитель дача взятка представитель румынский министерство коммуникация . microsoft мочь обвинить что компания получать контракт италия обмен подарок туристический поездка чиновник . расследование вестись соответствие закон сша коррупция рубеж год запрещать американский компания организация чей акция торговаться биржа сша давать взятка рубеж . В настоящее время американский власть расследовать десяток связанный нарушение закон мир . |ngramms ценный_бумага биржа_сша начать_расследование wall_street_journal следствие_подозревать следствие_подозревать представитель_компания представитель_компания американский_власть американский_власть контракт_на_поставка программный_обеспечение мочь_обвинить что_компания туристический_поездка закон_сша американский_компания чей_акция В_настоящее_время +1819 |text В рамка восточный экономический форум вэф владивосток подписать соглашение акционер строительство нитка газопровод северный поток . передавать корреспондент лента . вэф . слово руководитель проект строительство эксплуатация нитка северный поток маттиас состав новое консорциум войти газпром E . shell basf wintershall omv engie . российский газовый концерн быть процент консорциум engie процент остальной процент . добавить что вопрос какой конфигурация партнёр быть строить сухопутный отвод новый магистраль не_решить . агентство интерфакс источник газпром сообщить что вопрос являться наиболее сложный переговоры партнёр проект . слово глава wintershall мереный вопрос структура инвестор сухопутный отвод сестринский трубопроводный компания wintershall gascade зависеть консультация регулятор . меморандум намерение предусматривать совместный строительство нитка северный поток подписать газпром E . shell omv . проект проявить интерес дочерний компания basf wintershall engie . новое нитка годовой мощность миллиард кубометр пройти российский побережье дно балтийский море германия . действующий газопровод северный поток включать нитка протяжённость километр пропускной способность миллиард кубометр год . проходить дно балтийский море соединять энергосистема евросоюз крупный месторождение природный газа . сухопутный продолжение северный поток территория фрг являться трубопровод nel opal . газпром начать поставка энергоноситель северный поток год . акционер nord stream оператор северный поток являться газпром процент немецкий wintershall E . ruhrgas принадлежать процент нидерландский gasunie французский engie доля процент . |ngramms В_рамка экономический_форум подписать_соглашение нитка_газопровод северный_поток северный_поток северный_поток северный_поток северный_поток северный_поток северный_поток передавать_корреспондент проект_строительство консорциум_войти российский_газовый _добавить являться_наиболее предусматривать_совместный дочерний_компания миллиард_кубометр миллиард_кубометр действующий_газопровод природный_газа начать_поставка +1820 |text рф увеличить уставный капитал ржд миллиард рубль реализация инвестиционный проект . соответствующий распоряжение опубликовать сайт кабмина . В соответствие федеральный бюджет год распоряжение уставный капитал оао ржд направляться взнос размер миллиард рубль сообщение . средство пойти развитие железнодорожный инфраструктура пользование . В миллиард рубль выделить комплексный реконструкция участок железный дорога имя максим котельниково тихорецкий крымский обход краснодарский железнодорожный узел . миллиард рубль выделить строительство железнодорожный линия прохоровка журавка чертковый батайск миллион рубль проектирование высокоскоростной железнодорожный магистраль москва казань . стать что ржд закупить год новый локомотив миллиард рубль . обновление тяговый подвижный состав являться затратный стать инвестиционный программа ржд . анонсировать правительство инвестпрограмма железнодорожный монополия год составлять миллиард рубль . В год отмечать что процент инвестиция предназначить приобретение новый локомотив подвижный состав . инвестиция быть направить проект модернизация транссиб бама железный дорога обход краснодар развитие московский транспортный узел подход порт азовый черноморский балтийский бассейн строительство железный дорога обход украина . министр транспорт максим прошлое год заявлять что реализация проект обеспечение надёжность безопасность инфраструктура планироваться направить миллиард рубль . |ngramms премьер_министр премьер_министр рф__ уставный_капитал уставный_капитал миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль инвестиционный_проект соответствующий_распоряжение федеральный_бюджет год_распоряжение пойти_на_развитие железнодорожный_инфраструктура железный_дорога железный_дорога железный_дорога максим_ максим_ железнодорожный_линия миллион_рубль что_ржд подвижный_состав подвижный_состав инвестиционный_программа год_составлять _ приобретение_новый московский_транспортный министр_транспорт прошлое_год реализация_проект +1821 |text лондон фон скандал отравление бывший полковник гру скрипалить намеренный пересмотреть документ порядок российский предприниматель иммигрировать великобритания виза инвестор . сообщать bloomberg ссылка министр внутренний королевство эмбер радда . решение власть страна коснуться предприниматель россия получить разрешение въезд королевство год отмечать агентство . получить виза инвестор обязаться вложить экономика великобритания порядок миллион доллар большой . страна мэй заявить что лондон нет место представитель коррумпировать российский элита деньга . предложить полиция обратить пристальный внимание состоятельный россиянин великобритания требовать объяснение происхождение капитал писать издание . В великобритания год вступить сила закон О криминальный финансы . позволять суд королевство направлять иностранный владелец актив территория страна запрос требование объяснить происхождение имущество средство . владелец случай быть доказать что подозрительный имущество приобрести средство честной источник доход . власть страна выдать ордер арест имущество принадлежащий российский гражданин . скрипаль дочь быть обнаружить британский солсбери . находиться бессознательный состояние . поздний стать что быть отравить нервно паралитический вещество . лондон обвинить случиться россия москва отвергать обвинение . |ngramms российский_предприниматель сообщать_bloomberg решение_власть отмечать_агентство миллион_доллар премьер_министр нет_место писать_издание В_великобритания вступить_в_сила источник_доход власть_страна арест_имущество российский_гражданин дочь_ быть_обнаружить +1822 |text объесть поставка газпром западный центральный европа год вырасти процент составить миллиард кубометр сообщать новость ссылка дать газпром экспорт . средний цена поставка сократиться сравнение прошлое год процент составить доллар тысяча куб . В прошлое год европейский экспорт газовый монополия сократиться процент миллиард кубометр цена газ быть существенно выше доллар . образ текущий год выручка быть составить миллиард доллар миллиард доллар . В целое экспорт газпром прошлое год упасть процент миллиард кубометр . существенный сокращение поставка газа наблюдаться страна бывший ссср падение процент . поставка западный европа упасть процент зато центральный вырасти процент . зампред правление концерн предсказать что газпром удаться поставить экспорт дальний зарубежье свыше миллиард кубометр газа . позволить компания превысить выручка год миллиард доллар . В год экспорт газпром дальний зарубежье составить миллиард кубометр . |ngramms объесть_поставка центральный_европа миллиард_кубометр миллиард_кубометр миллиард_кубометр миллиард_кубометр сообщать_риа_новость газпром_экспорт средний_цена прошлое_год процент_и_составить доллар_за_тысяча В_прошлое_год газовый_монополия цена_на_газ быть_существенно миллиард_доллар миллиард_доллар миллиард_доллар В_целое поставка_газа бывший_ссср зампред_правление _ дальний_зарубежье дальний_зарубежье миллиард_кубометр_газа компания_превысить год_экспорт +1823 |text крупный российский продовольственный retail group не_смочь найти покупатель магазин перекрёсток экспресс начать закрывать . писать коммерсантъ ссылка источник . слово десять объект быть отдать пятёрочка остальной закрытый не_вписаться формат . В сократить размер сеть повторно предложить продажа покупатель не_найтись остаться магазин закрыть . собеседник издание рынок недвижимость указывать что расторгать договор аренда сеть . О что retail group решить сеть перекрёсток экспресс стать осень год . сеть состоять торговый остаться есть полтора маленький . идти активный оптимизация сеть ход закрываться неэффективный магазин продолжаться поиск покупатель остаться актив . год состав retail group быть тысяча магазин тысяча пятёрочка . В прошлое год выручка вырасти процент триллион рубль чистый прибыль процент миллиард рубль ebitda процент миллиард рубль . |ngramms крупный_российский retail_group retail_group retail_group быть_отдать собеседник_издание поиск_покупатель год_в_состав тысяча_магазин В_прошлое_год триллион_рубль чистый_прибыль миллиард_рубль миллиард_рубль +1824 |text мобильный гид афиша . ресторан uber запустить совместный акция рамка предлагать бесплатный поездка такси бонус заведение . сообщаться сайт афиша . акция продлиться год город новосибирск . бронирование столик ресторан подборка убершеф сайт приложение афиша . ресторан пользователь получать промый код бесплатный поездка uber комплимент бесплатный десерт напиток . акция нужно проделать следующий шаг установить мобильный приложение афиша . ресторан uber доступно ios android приложение афиша . ресторан страница акция убершеф выбрать понравиться ресторан нажать забронировать столик . форма бронирование соответствующий окошко необходимый ввести промый код получение комплимент бесплатный поездка такси сумма рубль поездка дорогой оплачиваться разница ввести приложение uber специальный промый код . участник акция мочь побороться приз конкурс фотография соцсеть специальный приз организатор акция убершеф . афиша входить холдинг rambler объединять медиа лента . газета.ru livejournal агентство rambler service . создавать сложность тысяча развлекательный деловой материал различный формат . ежедневный аудитория ресурс холдинг миллион человек . uber международный сервис заказ такси работать страна мир . В россия услуга компания можно воспользоваться семь город . |ngramms шеф_повар шеф_повар санкт_петербург пользователь_получать мобильный_приложение необходимый_ввести организатор_акция rambler_news_service общественно_политический миллион_человек заказ_такси страна_мир В_россия +1825 |text компания apple начало переговоры прямая поставка iphone розничный продавец электроника . писать газета ведомость ссылка неназванный источник рынок . производитель электроника работать схема стараться продавать продукция сотовый оператор . издание apple вести розничный сеть предварительный переговоры . конкретный условие сотрудничество не_обсуждаться . предполагаться что прямая поставка iphone стартовать начало осень год . время традиционно считаться высокий сезон торговля . официальный подтверждение информация нет . пора apple заключить договор дистрибуция iphone розничный сеть компания связной . компания основное работать россия схема применяться большинство страна продавать смартфон сотовый оператор . apple заключить дистрибуторский соглашение мтс мегафон вымпелком торговый марка билайн год . сотовый оператор получить право возить iphone продажа салон смочь отгружать сторонний дилер . В конец apple запустить канал продажа российский покупатель . русскоязычный сайт появиться . В немой продаваться смартфон iphone плеер ipod планшет ipad компьютер mac . |ngramms компания_apple прямая_поставка прямая_поставка розничный_продавец писать_газета производитель_электроника сотовый_оператор сотовый_оператор сотовый_оператор розничный_сеть розничный_сеть условие_сотрудничество традиционно_считаться apple_заключить apple_заключить работать_в_россия торговый_марка получить_право В_конец канал_продажа сайт_появиться интернет_магазин В_немой смартфон_iphone +1826 |text занимать год пост государственный министр торговля инвестиция малое предпринимательство великобритания стать компания letterone российский миллиардер . сообщать телеканал sky . что назначение быть объявить . В год занимать пост гендиректор председатель правление британский банка standard chartered министр курировать привлечение иностранный инвестиция развитие экспорт . В инвестиционный фонд letterone принадлежащий акционер российский возглавлять купить германский rwe миллиард евро компания dea . принадлежать месторождение обеспечивать процент добыча природный газа великобритания . практически страна ес согласовать сделка соединить королевство . отказаться одобрять покупка опасаться что отношение фонд владелец мочь быть ввести санкция поставить угроза добыча dea северный мор . лондон дать letterone полгода продажа бизнес владелец . госсекретарь великобритания энергетика дэйвить пригрозить противный случай отозвать dea лицензия разработка месторождение . инвестфонд приступить поиск покупатель британский нефтегазовый актив . В состав letterone помимо энергетический подразделение enegry возглавлять бывший руководитель bp лорд входить technology заниматься стартап область телекоммуникация . В сообщаться что намеренный потратить миллиард доллар приобретение телекоммуникационный актив сша страна европа . предприниматель укрепить наблюдательный совет компания . В войти сооснователь lastminute . ирландский медиамагнат O брайена бывший google skype . |ngramms _ _ вице_председатель миллиардер__ быть_объявить занимать_пост председатель_правление привлечение_иностранный инвестиционный_фонд акционер_российский альфа_группа миллиард_евро страна_ес согласовать_сделка мочь_быть ввести_санкция энергетика_ разработка_месторождение поиск_покупатель британский_нефтегазовый В_состав бывший_руководитель _намеренный миллиард_доллар телекоммуникационный_актив страна_европа топ_менеджер +1827 |text правительство россия перенести срок разработка проект целевой модель рынок грузовой железнодорожный перевозка поручать подготовить . лента . сообщить минэкономразвития мэр участвовать подготовка документ . срок быть перенести квартал год заявить представитель ведомство . И добавить что мэр направить письмо описание планировать изменение целевой модель рынок . документ быть доработать снятие максимальный количество разногласие вестись обсуждение собеседница . директор департамент госрегулирование тариф инфраструктурный реформа энергоэффективность мэр сообщить предложение минэкономразвития рамка новый целевой модель разделить ржд составлять инфраструктурный локомотивный . замглавы мэр пояснить что выделение локомотивный бизнес российский железный дорога не_идти . локомотив остаться ржд как общесетевой перевозчик . В дальнейший возможный вариация допуск частник отдельный маршрут условие что полностью взять обслуживание не_быть выдёргивать доходный маршрут приводить слово министерство . создание отдельный дочка ржд планироваться сохранить статус единственный общесетевой перевозчик рамка холдинг оао ржд допустить балансовый обособление актив локомотивный хозяйство отдельный дочерний общество . В минтранс лента . сообщить что соответствующий предложение мэр не_поступать . В некоммерческий партнерство совет оператор железнодорожный транспорт сожт обратиться предложение сдвинуть срок разработка целевой модель квартал год . эксперт сожт лебедь рассказать лента . что положение проект модель обсуждаться сообщество оператор грузовой вагон площадка минэкономразвития минтранс . просьба перенос срок объяснить необходимость детальный анализ мероприятие структурный реформа железнодорожный транспорт заканчиваться год . слово лебедь нужно определить степень выполнение цель реформа . что передача ржд грузовой подвижный состав частное операторский компания согласно год пятилетний модель рынок отчасти позволить решить поставить задача . дефицит грузовой подвижный состав смениться итог профицит составлять разный оценка тысяча тысяча вагон что привести катастрофический падение арендный ставка год поставить бизнес грань рентабельность . весной некоторый оператор globaltrans фгк пгк нефтетранссервис выступать отдать грузовой вагон ведение ржд . С управление российский железный дорога находиться часть парк дочерний компания фгк . оператор решение не_принять . частное локальный перевозчик локомотив настоящее время владеть ржд не_появиться . |ngramms правительство_россия срок_разработка срок_разработка целевой_модель целевой_модель целевой_модель целевой_модель рынок_грузовой железнодорожный_перевозка вице_премьер _ _ заявить_представитель И_добавить документ_быть максимальный_количество директор_департамент российский_железный_дорога российский_железный_дорога В_дальнейший пресс_служба пресс_релиз холдинг_оао дочерний_общество В_минтранс соответствующий_предложение железнодорожный_транспорт железнодорожный_транспорт грузовой_вагон грузовой_вагон перенос_срок подвижный_состав подвижный_состав модель_рынок позволить_решить поставить_задача разный_оценка тысяча_вагон некоторый_оператор дочерний_компания +1828 |text убыток автоваз итог год составить миллиард рубль . сообщаться отчёт . pdf компания рсб российский стандарт бухгалтерский отчётность . сравнение год завод получить прибыль размер миллион рубль . выручка компания отчётный период снизиться процент миллиард рубль . продажа автомобиль упасть процент тысяча машина . отчётный период автоваз взять долг миллиард рубль миллиард рубль быть направить инвестиция . компания не_смочь выполнить ограничительный условие взять кредит результат что кредитор потребовать досрочный возврат миллиард рубль . renault совместно nissan принадлежать контроль автоваз планировать что российский завод стать прибыльный конец год . заявить глава французский компания гон . уточнить что надежда прибыльный деятельность автоваз связать назначение новое президент бывший руководитель группа газ бу андерссон помочь справиться кризис . renault получить миллион евро убыток автоваз итог год . год французский компания получить прибыль размер миллион доллар статья . гон объяснять убыток год сокращение рынок . |ngramms год_составить миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль российский_стандарт получить_прибыль миллион_рубль отчётный_период отчётный_период продажа_автомобиль тысяча_машина компания_не_смочь взять_кредит что_российский заявить_глава французский_компания новое_президент бывший_руководитель группа_газ бу_андерссон миллион_евро компания_получить миллион_доллар сокращение_рынок +1829 |text акция сервис микроблог twitter начало торг биржа nasdaq упасть процент доллар . цена закрытие предыдущий составить доллар . ценный бумага компания подешеветь фон сообщение квартальный убыток размер миллион доллар выручка миллион доллар . сравнение год квартал убыток соцсеть составить миллион доллар . аналитика опросить ожидать прибыть размер миллион доллар выручка миллион доллар отчётный период . twitter отчитаться спад темп рост аудитория . В годичный исчисление количество пользователь заходить аккаунт месяц вырасти процент миллион человек . итог прошлое год пользователь увеличиться процент аналитика ожидать ускорение рост . как отмечать presse менеджер twitter не_смочь убедить инвестор что спад показатель временной явление . год социальный сеть получить выручка размер миллион доллар . чистый убыток превысить миллион доллар . сравнение год убыток twitter составить миллион доллар выручка миллион доллар . |ngramms акция_сервис закрытие_предыдущий ценный_бумага убыток_в_размер миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллион_доллар отчётный_период темп_рост количество_пользователь миллион_человек прошлое_год как_отмечать что_спад социальный_сеть чистый_убыток +1830 |text аэрофлот выделить миллиард рубль перевозка пассажир вим . сообщать ссылаться источник знакомый план правительство . быть опубликовать директива аркадия . В документ указать что государство компенсировать вложить вим деньга счёт взаиморасчёт аэрофлот отрасль . конкретный сумма директива не_называться . газета коммерсантъ указать что росавиация передать вим миллиард рубль ежегодный платёж перечислять аэрофлот зарубежный авиакомпания пролёт транссибирский трасса . минтранс сообщить что регулярный рейс вим быть выполняться перевозка прекратиться . пассажир иметь билет дата выполнение регулярный рейс рекомендовать сдать получить деньга место приобретение . сообщаться что ход работа оперативный штаб организация перевозка пассажир представитель минтранс росавиация компания сибирь вим быть решить что аэропорт топливозаправочный компания гарантированно быть обслуживать лайнер авиаперевозчик . накануне президент россия предупредить министр транспорт максим неполный служебный соответствие кризисный ситуация авиакомпания вим . глава государство раскритиковать аркадия заявить что уделять недостаточно внимание транспортный отрасль . |ngramms миллиард_рубль миллиард_рубль перевозка_пассажир перевозка_пассажир ссылаться_на_источник план_правительство быть_опубликовать вице_премьер вице_премьер аркадия_ аркадия_ В_документ что_государство что_росавиация регулярный_рейс регулярный_рейс иметь_билет получить_деньга место_приобретение работа_оперативный представитель_минтранс быть_решить быть_обслуживать президент_россия__ министр_транспорт максим_ глава_государство транспортный_отрасль +1831 |text конкуренция выживание атомный возобновлять энергетика нет . рамка международный форум атомэкспо заявить гендиректор госкорпорация росатом . слово вид возобновлять энергетика нуждаться развитие дополнительный поддержка . исходить обязательство взять страна рамка парижский соглашение целое действие разный экономика направить создание зелёный энергобаланс мир заметно увеличить как доля зелёный энергетика вид возобновлять энергетика глава росатом . картинка слово перевернуться сегодняшний треть электрогенерация углеводородный генерация треть зелёный генерация . прогноз год доля зелёный генерация мир приходиться процент доля атомный энергетика процент . сегодняшний объесть установленный мощность атомный станция составлять гигаватт планировать объесть гигаватт . строить большой замещать выбывать мощность технологичный вид энергетика удовлетворить кратный рост . развитие возобновлять энергетика не_вызывать опасение напротив считать что сегодняшний недостаточный развитие как атомный энергетика вид возобновлять энергетика идти заключить . международный форум атомэкспо проводиться ежегодно год инициатива госкорпорация росатом . В нынешний год главный тема форум атомный технология безопасность экология стабильность . В работа форум тысяча человек компания страна . |ngramms международный_форум международный_форум заявить_гендиректор _ дополнительный_поддержка страна_в_рамка атомный_энергетика атомный_энергетика установленный_мощность нынешний_год тысяча_человек +1832 |text геолог открыть месторождение золото юг дагестан село куруш . населить пункт расположить гора недалеко граница азербайджан . слово глава минприрода россия запас драгоценный металл месторождение составлять тонна . сообщать . территория дагестан счёт средство государственный бюджет открытый золотоносный структура ресурсный база категория цитировать . перспективность курушский рудный узел быть подтвердить ход полевой работа год . В федеральный бюджет выделить миллион рубль геологоразведочный работа гора дагестан . новое месторождение мочь обладать потенциал учитывать что золотоносный жить разветвляться толща гора . запас драгоценный металл недра дагестан согласно прогноз учёный мочь превышать тонна . слово аукцион право разработка месторождение село куруш запланировать год . специалист предупреждать что добыча золото условие высокогорье достаточно трудоёмкий . В получить грамм драгоценный металл требоваться перемыть тонна руда вести.ru . |ngramms россия__ государственный_бюджет федеральный_бюджет миллион_рубль месторождение_мочь согласно_прогноз +1833 |text ibm rambler group подписать меморандум взаимопонимание работа прототип совместный информационный продукт период проведение чемпионат мир футбол россия . соглашение быть подписать рамка деловой программа петербургский международный экономический форум пмэф . когнитивный технология watson explorer watson analytics предоставить клиентский центр ibm москва позволить анализировать публичный обезличить информация соцсеть футбольный тематика русский английский язык . условие соглашение rambler group смочь использовать дать подготовка тематический контент чемпионат мир футбол собственный медиаресурс . ожидание болельщик герой аутсайдер матч прогноз экспертный оценка профессионал любитель можно быть анализировать режим онлайн . Я признательный партнёр ibm возможность поработать . быть лидер современный медиа технология качественный контент трудно оставаться сторона грандиозный спортивный событие пройти страна летом отмечать линин генеральный директор rambler group . ibm иметь большой экспертиза создание дополнить опыт любитель спорт . rambler group являться издатель популярный портал спортивный новость . В очередь футбольный фанат находиться предвкушение приближаться чемпионат внимательно следить новость . итак основной ингредиент создание качественный инсайт освещение есть . начаться игра ! блог генеральный директор ibm россия снг . |ngramms rambler_group rambler_group rambler_group rambler_group быть_подписать деловой_программа международный_экономический_форум английский_язык можно_быть генеральный_директор генеральный_директор иметь_большой общественно_политический В_свой_очередь футбольный_фанат _ +1834 |text федеральный пассажирский компания фпк дочка ржд запустить пилотный режим проект безналичный оплата фирменный скоростной поезд дальний следование . перевозчик поступить редакция лента . . мобильный терминал оплата продукция постельный принадлежность приобрести проводник установить состав . уникальность проект заключаться что услуга предоставляться впервые общефедеральный уровень зона покрытие распространяться россия дальний зарубежье заместитель генеральный директор фпк мусловцо . В президент ржд сообщить что компания намерить сохранить поезд дальний следование плацкартный вагон . прислать вывод что плацкарта нужный . пользоваться популярность дешёвый глава госкомпания . год ржд обновить вагонный парк заменить плацкартный вагон новый . федеральный пассажирский компания госмонополия заниматься железнодорожный перевозка пассажир дальний следование . являться процентный дочерний общество ржд . В год компания обслужить миллион пассажир . |ngramms пассажирский_компания пассажирский_компания поезд_дальний поезд_дальний пресс_релиз поступить_в_редакция дальний_зарубежье генеральный_директор президент_ржд __сообщить что_компания_намерить пользоваться_популярность перевозка_пассажир дочерний_общество миллион_пассажир +1835 |text москва стать наиболее привлекательный зрение инвестор город восточный европа привлекательность город европа целое . первое место занять лондон . составление рейтинг компания financial times fdi intelligence входить financial times group оценивать город учитывать перспектива развитие ближний год . список город будущее европа год возглавлять лондон . пятёрка войти дублин париж амстердам мюнхен . В инвестиционный привлекательный город восточный европа помимо москва включить варшава бухарест прага братислава . компания составление рейтинг оценивать город критерий валовый внутренний продукт город продолжительность жизнь количество житель высокий образование развитие дорожный железнодорожный инфраструктура доступность аренда офисный помещение интернет многие показатель . оценка компания российский столица занять место качество жизнь место город дружелюбный бизнес экономический потенциал . как руководитель департамент экономический политика развитие москва москва продолжать подтверждать статус хороший город инвестиция мировой масштаб . В столица россия инвестор мочь рассчитывать простой понятный правило запуск реализация бизнес проект многочисленный налоговый иной льгота разнообразие канал сбыт время увеличиваться потребительский спрос . |ngramms стать_наиболее восточный_европа восточный_европа первое_место_занять оценивать_город оценивать_город перспектива_развитие год_возглавлять железнодорожный_инфраструктура российский_столица качество_жизнь руководитель_департамент экономический_политика _ канал_сбыт +1836 |text компания центр подать арбитражный суд иск ооо эвитерра трэвести владеть сайт eviterra . начало прекратить обслуживать клиент . карточка сайт суд . новость уточнять что центр требовать взыскать eviterra миллион рубль . К производство иск не_принять . В начало центр рассказывать что eviterra задолжать компания покупать билет авиакомпания передавать заинтересовать сайт есть работать консолидатор миллион рубль . В eviterra информация опровергать слово адвокат сайт никакой долг не_существовать дата составить миллион рубль . информация иск центр поступить фон сообщение eviterra восстановление аннулировать конфликт сайт консолидатор билет . компания опубликовать график восстановление . новое билет получить клиент дата вылет . В компания подчёркивать что вино аннулирование билет лежать центр . конфликт сайт консолидатор привлечь внимание следственный комитет возбудить мошенничество . версия следствие владелец eviterra . получить клиент билет миллион рубль направить платёж центр нужда . скандал аннулировать билет eviterra . считаться крупный российский сайт . ежедневно покупаться тысяча билет . сайт привычный режим не_работать компания занятый исключительно расчёт клиент . |ngramms _центр _центр _центр _центр _центр _центр арбитражный_суд прекратить_обслуживать миллион_рубль миллион_рубль миллион_рубль миллион_рубль К_производство В_начало _ В_компания привлечь_внимание следственный_комитет аннулировать_билет считаться_один_из_крупный тысяча_билет +1837 |text министерство юстиция сша комиссия ценный бумага биржа sec начать расследование работа корпорация panasonic avionics калифорнийский подразделение японский panasonic . как писать газета wall street journal американский ведомство заподозрить руководство компания дача взятка рубеж . подробность расследование wsj не_приводить . что panasonic avionics быть направить запрос сотрудник азия европа ближний восток . просить предоставить информация компания консультант чиновник получить платёж подарок . В panasonic avionics официально не_прокомментировать информация вестись расследование . В sec минюст отказаться комментарий . как указывать газета иметься распоряжение документ неясно какой американский ведомство поступить запрос минюст sec зачастую вести совместный расследование . sec минюст проверять подразделение panasonic возможный нарушение закон коррупция рубеж год . закон запрещать американский компания организация чей акция торговаться биржа сша давать взятка рубеж . власть сша расследовать десяток подобный следствие быть открыто отношение microsoft подозрение взяточничество китай румыния . panasonic avionics заниматься разработка развлечение пассажир самолёт различный система передача информация . компания прочее являться поставщик airbus boeing многий крупный авиакомпания . |ngramms ценный_бумага начать_расследование работа_корпорация как_писать_газета американский_ведомство американский_ведомство руководство_компания быть_направить топ_менеджер просить_предоставить официально_не_прокомментировать вестись_расследование как_указывать возможный_нарушение американский_компания чей_акция власть_сша заниматься_разработка аудио_система являться_поставщик крупный_авиакомпания +1838 |text консолидированный чистый прибыль лукойл дочерний структура год упасть процент составить миллиард рубль сообщаться компания . снижение чистый прибыть холдинг произойти результат обесценение ряд актив потерять миллиард рубль стоимость год показатель составить миллиард списание сухой разведочный скважина миллиард . лукойл удаться увеличить выручка процент триллион рубль . свободный денежный поток подскочить миллиард рубль . впрочем значительный рост финпоказатель обусловить низка база год когда объесть капитальный вложение практически полностью покрываться операционный денежный поток . сравнение размер чистый прибыть роснефть год вырасти процент миллиард свободный денежный поток втрое выше лукойл . эксперт отмечать что основный влияние рост выручка лукойл оказать увеличение объём реализация нефть нефтепродукт основное счёт приобрести дальнейший перепродажа компенсационный объём проект год выйти норвежский statoil западный курна ирак . вызывать немало вопрос фон сложность принятие страна закон недра . показатель ebitda составить миллиард рубль роснефть триллион капитальный затрата миллиард рубль . холдинг процент нарастить добыча нефть миллион тонна учёт добыча зависимый компания . лукойл крупный российский частный нефтяной компания . башнефть полюс дочерний предприятие башнефть участвовать разработка месторождение имя требс ненецкий автономный округа запас превышать миллион тонна нефть . лукойл год впервые отчитаться международный стандарт финансовый отчётность . |ngramms чистый_прибыль дочерний_структура миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль пресс_релиз чистый_прибыть чистый_прибыть ряд_актив увеличить_выручка триллион_рубль свободный_денежный_поток свободный_денежный_поток значительный_рост капитальный_вложение практически_полностью денежный_поток рост_выручка увеличение_объём показатель_ebitda капитальный_затрата добыча_нефть миллион_тонна крупный_российский нефтяной_компания дочерний_предприятие разработка_месторождение автономный_округа миллион_тонна_нефть международный_стандарт финансовый_отчётность +1839 |text авиакомпания brussels airlines заменить российский самолёт sukhoi superjet ssj канадский bombardier crj писать газета L echo . представитель авиакомпания рассказать проблема эксплуатация самолёт российский производство результат что быть аннулировать ряд рейс . помимо неисправность пожаловаться отсутствие перевод некоторый руководство эксплуатация русский язык . директор авиакомпания фёрстер заявить что намерить избавиться ssj короткий срок . газета самолёт bombardier заменить ssj маршрут брюссель нант . продлевать контракт лизинг истекать год brussels airlines соответственно не_быть . российский гражданский самолёт sukhoi superjet вмещать базовый версия пассажир . В год быть выпустить самолёт . крупный покупатель являться аэрофлот самолёт . |ngramms российский_самолёт sukhoi_superjet sukhoi_superjet писать_газета представитель_авиакомпания эксплуатация_самолёт российский_производство русский_язык директор_авиакомпания гражданский_самолёт базовый_версия год_быть_выпустить крупный_покупатель +1840 |text иркутский авиационный завод филиал корпорация иркут полностью собранный фюзеляж первое самолёт мс . сообщить правительство иркутский область итог встреча губернатор гендиректор иркутский авиазавод передавать . полностью состыковать отсек фюзеляж ближний время поставка композитный крыло рассказать . график самолёт подняться воздух второе квартал год . слово федеральный власть распорядиться плотно заниматься график существовать выпуск мс . С цель правительство регион рассчитывать ближний время подписать новое соглашение сотрудничество корпорация иркут . В начало стать что корпорация иркут египетский холдинг kato investment подписать рамка авиасалон dubai airshow документ развитие сотрудничество проект новый российский пассажирский самолёт мс . В рамка программа сотрудничество заключить соглашение закупка авиакомпания cairo aviation дочка kato investment мс опцион самолёт . В иркут иметь твёрдый контракт поставка как минимум машина машина учесть опцион соглашение намерение . крупный заказчик являться лизинговый компания ифк вэб лизинг госкорпорация ростёха . мс ближний среднемагистральный пассажирский авиалайнер создавать российский корпорация иркут входить объединить авиастроительный корпорация смена устаревший самолёт тип . машина претендовать коммерческий ниша что самолёт boeing max airbus . лайнер разный модификация способный перевозить пассажир расстояние свыше тысяча километр . сертификация ввод эксплуатация экземпляр планироваться год . начать серийный производство год . |ngramms самолёт_мс пресс_служба пресс_служба _ _ подписать_новое В_начало что_корпорация подписать_в_рамка развитие_сотрудничество пассажирский_самолёт В_рамка контракт_на_поставка как_минимум крупный_заказчик лизинговый_компания российский_корпорация объединить_авиастроительный_корпорация самолёт_boeing тысяча_километр серийный_производство +1841 |text арбитражный суд москва снять арест акция нефтяной компания башнефть удовлетворить соответствующий заявление генеральный прокуратура . сообщать интерфакс . судья что прокуратура мотивировать ходатайство отмена обеспечительный мера что обстоятельство мочь нанести ущерб государство отменить . стать освобождение домашний арест глава афк система проходить незаконный приватизация башнефть . присутствовать встреча президент россия крупный бизнесмен . прокуратура обратиться суд заявление отмена арест акция . неделя процент ценный бумага башнефть переслать афк система государство . арест акция нефтяной компания арбитражный суд наложить . уголовный факт незаконный продажа акция нефтяной компания башнефть быть возбудить год . |ngramms арбитражный_суд_москва снять_арест нефтяной_компания нефтяной_компания нефтяной_компания соответствующий_заявление генеральный_прокуратура что_прокуратура ущерб_государство домашний_арест глава_афк _ незаконный_приватизация президент_россия__ обратиться_в_суд ценный_бумага арбитражный_суд продажа_акция быть_возбудить +1842 |text глава немецкий нефтегазовый компания wintershall мерный заявить что польша не_удаться помешать реализация проект северный поток . интервью издание handelsblatt . мерный подчеркнуть что wintershall западный партнёр работать поддержать проект финансовый . слово заказ труба дать мощность прокладка обеспечить . усилие варшава привести что северный поток получиться проект русский партнёр . глава wintershall убедить что страна ес учитывать собственный интерес . польша украина беспокоиться что получить транзитный пошлина . мочь внимание . В основное транспортировать газ прямой выгодный путь сибирь потребитель европа взнос укрепление бюджет третье страна подчеркнуть . стать что компания оператор газопровод северный поток подать заявка строительство территориальный вод германия . документ возведение эксплуатация километровый участок быть доступный общественный консультация . полный документация обнародовать . В конец стать что евросоюз решить отказаться попытка помешать строительство газопровод северный поток дно балтийский море предлагать провести переговоры москва вопрос . появиться информация что еврокомиссия направить член ес документ предложить обсудить проект строительство газопровод правовой начать переговоры согласование работа . В сообщаться что германия активизировать усилие создание политический условие евросоюз реализация северный поток . соглашение акционер строительство нитка газопровод быть подписать начало прошлое год газпром E . shell basf wintershall omv engie . |ngramms нефтегазовый_компания что_польша реализация_проект северный_поток северный_поток северный_поток северный_поток северный_поток западный_партнёр страна_ес В_основное северо_западный что_компания подать_заявка участок_быть строительство_газопровод строительство_газопровод появиться_информация соглашение_акционер нитка_газопровод быть_подписать прошлое_год +1843 |text британский нефтегазовый компания british petrolium bp урегулировать власть сша вопрос компенсация авария платформа deepwater horizon привести разлив нефть мексиканский залив год сообщение сайт компания . размер выплата составить миллиард доллар . счёт сумма компания покрыть претензия штат луизиана миссисипи алабама флорида техас обратиться суд требование возмещение ущерб . цель быть направить миллиард доллар . bp заплатить миллиард доллар программа очистка вода выплата быть осуществляться протяжение год миллиард доллар восстановление природный ресурс . миллиард компания выплатить местный администрация месторасположение не_указываться . выплачиваться сумма компенсация быть год . глава bp дадли что решение внести ясность определённость ситуация сторона позволить компания сфокусироваться безопасность поставка топливо мировой рынок . компенсация bp быть крупный выплатить частное компания сша . В конец прошлое год власть сша направить ходатайство федеральный суд новое орлеан просьба оштрафовать bp авария мексиканский залив миллиард доллар . В год судья барбие признать вр виновный небрежность постановить что лежать процент ответственность авария мексиканский залив . процент согласно вердикт лежать швейцарский компания transocean принадлежать буровая платформа deepwater horizon процент американский halliburton быть зацементировать нефтяной скважина . авария нефтяной платформа deepwater horizon произойти год . В результат взрыв погибнуть человек мор вылиться миллион баррель нефть . быть крупный экологический катастрофай история сша . гигантский убыток понести результат происшествие bp быть вынудить продавать актив мир . |ngramms нефтегазовый_компания власть_сша власть_сша размер_выплата миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар обратиться_в_суд быть_направить быть_осуществляться природный_ресурс компания_выплатить позволить_компания поставка_топливо мировой_рынок быть_крупный частное_компания В_конец прошлое_год судья_ швейцарский_компания В_результат миллион_баррель быть_вынудить +1844 |text подразделение концерн eads выпускать пассажирский самолёт airbus commercial половина год увеличить сумма заказ самолёт процент миллиард евро . сообщаться финансовый отчёт компания . сумма заказ транспортный самолёт упасть процент миллион евро . объесть заказ военный пассажирский техника airbus вырасти процент миллиард евро . объесть заказ концерн увеличиться процент миллиард евро . прибыль компания отчётный период вырасти процент миллион евро как выручка увеличиться процент миллиард евро . eads сообщить отчёт смена название airbus group . группа быть состоять подразделение airbus быть выпускать пассажирский самолёт airbus defence space заняться производство космический военный техника транспортный самолёт airbus helicopters быть выпускать вертолёт . eads состоять подразделение airbus пассажирский транспортный самолёт eurocopter вертолёт astrium космический аппарат cassidian оборонный подразделение . |ngramms подразделение_концерн пассажирский_самолёт пассажирский_самолёт сумма_заказ миллиард_евро миллиард_евро миллиард_евро миллиард_евро отчёт_компания транспортный_самолёт транспортный_самолёт транспортный_самолёт миллион_евро миллион_евро объесть_заказ прибыль_компания отчётный_период выручка_увеличиться airbus_group быть_выпускать быть_выпускать производство_космический военный_техника космический_аппарат +1845 |text кондитерский корпорация roshen мочь быть рассрочка менеджмент покупатель нея не_найтись . как передавать интерфакс украина заявить президент украина владелец корпорация конференция итог год . не_быть завершить ближний время быть вынужденный условие отсутствие покупатель рассрочка roshen менеджмент что путь не_существовать . быть сделать прозрачный эффективно . подчеркнуть что семь месяц лишить влияние roshen организация продажа корпорация заниматься инвестиционный компания rothschild консорциум украинский инвестгруппа инвестиционный капитал украина icu . Я не_откроить большой секрет что условие война инвестиция страна не_заходить ничто не_покупать ничто невозможно . доложить что быть покупатель переговоры затягиваться ключевой условие остановить война заявить . В ход избирательный кампания пост президент украина обещать корпорация roshen случай победа выборы . roshen крупный украина производитель кондитерский изделие включать киевский мариупольский донецкий область кременчугский полтавский область винницкий кондитерский фабрика масломолочный комбинат бершадьмолоко литинский племзавод винницкий область липецкий фабрика росить россия клайпедский кондитерский фабрика литва . корпорация производить вид кондитерский изделие шоколадный желейный конфета карамель шоколад печение вафля бисквитный рулет торт . объесть производство достигать тысяча тонна продукция год . |ngramms корпорация_roshen корпорация_roshen как_передавать президент_украина _ _подчеркнуть инвестиционный_компания что_в_условие ключевой_условие заявить_ В_ход украина_ украина_производитель кондитерский_изделие кондитерский_изделие донецкий_область кондитерский_фабрика кондитерский_фабрика липецкий_фабрика корпорация_производить производство_достигать тысяча_тонна +1846 |text профицит предложение нефть мировой рынок мочь сохраниться конец год . заявить глава роснефть сечин форум энергомост россия япония слово приводиться сайт компания . что превышение предложение спрос мировой рынок нефть сократиться миллион баррель сутки превышать миллион баррель . слово сечин структура мировой добыча экспортный поток менять сланцевый нефть . изменение связать феномен сланцевый добыча обстоятельство что балансирование ранний осуществляться страна опека перейти региональный рынок сша превратиться важный регулятор глобальный масштаб . президент роснефть обратить внимание что долгосрочный план освоение ресурсный база российский шельф требовать надёжный обеспечение суд оборудование дальний восток нуждаться создание новый высокотехнологичный производство . важный слово стать строиться район владивосток судостроительный комплекс звезда быть специализироваться строительство судно обслуживающий флот сложный морской техника шельфовый проект свыше вид . быть создать предприятие судовой машиностроение необходимый материал комплектовать . роснефть крупный компания заказчик подписать соглашение централизовать размещение заказ ск звезда . стать россия верфь крупнотоннажный судостроение мощность переработка тысяча тонна металл год суммарный капзатрата создание судоверфь оцениваться миллиард рубль . В период год минпромторг россия возможный портфель заказ комплекс составить порядок единица судно различный назначение морской техника . сечин подчеркнуть что проект обеспечить масштабный якорный заказ открытый партнёр инвестор . соглашение достигнуть . форум владивосток подписать соглашение голландский damen shipyards group локализация технология судостроение есть договорённость сингапур напомнить . И добавить что сегодняшний ситуация российский гражданский судостроение многое схожий бразильский пятнадцатилетный давность когда развитие добыча нефть шельф бразилия находиться старт . глава роснефть подчеркнуть что российский судостроительный проект включая ск звезда мочь зайти японский корабел как mitsui engineering shipbuilding sumitomo heavy industries kawasaki shipbuilding производитель судовой оборудование . В дальнейший смочь активно участвовать освоение ресурс российский шельф включая арктика право основный технологический партнёр поставщик судно морской техника добавить . подчеркнуть что россия активно расширять добывать актив транспортный инфраструктура сибирь дальний восток рамка стратегия диверсификация торговый партнёр . поставка нефть россия атр вырасти период год миллион тонна . В год китай быть поставить миллион япония миллион тонна южный корея миллион тонна . видеть потенциал наращивание экспорт российский нефть страна атр миллион тонна год мера разработка ресурсный база восточный сибирь дальний восток развитие транспортный инфраструктура . большой часть поставка прийтись китай роснефть заинтересовать увеличивать поставка энергоноситель страна атр очередь япония . призвать партнёр азия набраться смелость . напомнить пример недавний история . небольшой японский компания jdc japan drilling company российско японский соглашение год участвовать разведка месторождение шельф остров сахалин привести пример сечин . В год помощь быть открытый месторождение аркутун одопт поздний войти срп сахалин . очередь благодаря успешный работа jdc японский консорциум содёкий стать партер реализация проект сахалин рамка неполный десять год быть добыть свыше миллион тонна нефть . большой часть нефть быть поставить япония подчеркнуть глава роснефть . напомнить что год прорабатываться различный вариант поставка электроэнергия россия остров хоккайдо . сечин что энергомост обычно понимать связующий электросеть поддержка мощность объединить мост энергосистема . В время применительно случай когда строительство энергомост иметь вид электросеть широкий канал обмен основать первичный поставка энергоресурсы . поставка нефть нефтепродукт спг энергоресурсы встречный поставка машина оборудование обмен актив заявить . И подчеркнуть что наличие род мост предполагать серьёзный взаимозависимость энергетический система экономика страна . как говорят япония непосеять зерно не_взойти . получить мощный экономический отдача будущее начинать работать совместный проект надо резюмировать . |ngramms мировой_рынок мировой_рынок мочь_сохраниться _сечин миллион_баррель миллион_баррель мировой_добыча сланцевый_нефть рынок_сша обратить_внимание дальний_восток дальний_восток дальний_восток создание_новый специализироваться_на_строительство морской_техника морской_техника морской_техника быть_создать крупный_компания мощность_переработка тысяча_тонна миллиард_рубль портфель_заказ составить_порядок судно_различный И_добавить российский_гражданский добыча_нефть В_дальнейший российский_шельф топ_менеджер что_россия транспортный_инфраструктура транспортный_инфраструктура поставка_нефть поставка_нефть миллион_тонна миллион_тонна миллион_тонна миллион_тонна быть_поставить быть_поставить российский_нефть восточный_сибирь большой_часть большой_часть японский_компания разведка_месторождение северо_восточный остров_сахалин привести_пример быть_открытый очередь_благодаря реализация_проект десять_год миллион_тонна_нефть подчеркнуть_глава различный_вариант В_то_же_время поставка_машина обмен_актив что_наличие энергетический_система совместный_проект +1847 |text сооснователь проект скоростной вакуумный поезд hyperloop брогать бэмброгать иск бывший партнёр возглавлять правление компания пишевар сообщить высокий гонорар подруга заниматься pr сопровождение проект сообщать rambler service . истец помимо бэмброгать трое бывший менеджер hyperloop что компания быть вынудить выплатить девушка имя не_называться тысяча доллар работа год . С год год пишевар вынудить hyperloop выплатить подруга потенциальный невеста тысяча доллар pr услуга цитировать агентство выдержка документ . В заявление указываться что превышать рыночный уровень . В иск утверждаться что как пишевар начаться личный отношение pr специалист компания увеличить выплата тысяча месяц . как пишевар расстаться возлюбить контракт быть расторгнуть бывший сотрудник hyperloop . В сообщаться что бэмброгать подать иск руководство hyperloop обвинить менеджер нецелевой растрата средство незаконный обогащение запугивание сотрудник . брогать бэмброгать год основать hyperloop наряду пишевар . В год покинуть пост . причина увольнение не_называться . проект hyperloop подразумевать создание вакуумный магистраль вид закрытый труба поезд мочь перемещаться скорость километр час . идея принадлежать маска воплощение проект заниматься компания hyperloop hyperloop transportation technologies . В год президент россия встретиться пишевар поле петербургский международный экономический форум . В ход беседа глава государство пообещать поддержать реализация проект рф . |ngramms правление_компания топ_менеджер сообщать_rambler_news_service бывший_менеджер что_компания быть_вынудить имя_не_называться цитировать_агентство В_заявление рыночный_уровень компания_увеличить год_основать проект_hyperloop километр_в_час идея_принадлежать _маска проект_заниматься президент_россия__ международный_экономический_форум В_ход глава_государство пообещать_поддержать реализация_проект +1848 |text правительство россия не_рассматривать вариант банкротство компания мечело . заявить министр промышленность торговля страна мантур передавать . наиболее реалистичный вариант спасение компания мантур назвать выкуп облигационный выпуск кредитор . министр уклониться прямой ответ вопрос быть ход реструктуризация отстранить руководство основной акционер гендиректор компания . минфин состояться встреча основный кредитор мечело руководство компания представитель власть . обсуждаться новый схема поддержка металлургический группа . предполагаться что главное кредитор газпромбанк втб сбербанк выделить мечело миллиард рубль . сначала компания получить кредит миллиард рубль миллиард пойти выкуп допэмиссия конвертировать облигация . деньга вероятно быть предоставить вэб результат мочь получить контроль мечело . образ взять основной риска . мечело испытывать финансовый затруднение протяжение месяц . компания задолжать миллиард доллар время как финансовый показатель не_улучшаться низкий мировой цена сталь . |ngramms правительство_россия банкротство_компания _ _ промышленность_и_торговля _мантур ответ_на_вопрос основной_акционер гендиректор_компания состояться_встреча основный_кредитор руководство_компания представитель_власть схема_поддержка миллиард_рубль миллиард_рубль компания_получить быть_предоставить мочь_получить основной_риска испытывать_финансовый миллиард_доллар финансовый_показатель +1849 |text американский нефтяной корпорация exxonmobil заявить что начало юридический процедура оспаривание решение минфин сша наложение штраф нарушение антироссийский санкция . сайт компания . exxonmobil заявлять что действие отдел минфин контроль иностранный актив ofac принципиально несправедливый нарушать закон сша административный процедура administrative procedure act как участник рынок exxonmobil не_быть уведомить интерпретация ofac принудительный ретроактивный исполнение добиваться . В центр спорый взаимодействие exxonmobil нефтяной компания роснефть . ofac что exxonmobil нарушить санкция когда подписать ряд документ год . документ российский сторона быть подписать действовать официальный качество руководитель компания указывать exxonmobil . ofac признать что чиновник белый дом минфин неоднократно заявлять что санкция связанный применяться действие личный качество компания управлять представлять напоминать exxonmobil . основание американский корпорация кратко приводить хронология действие аргумент польза . минфин сша заявить что ofac наложить штраф exxonmobil corp размер миллион доллар нарушение санкция связанный ситуация украина . В ведомство полагать что нарушение ограничение предусмотренный санкционный режим период год руководитель дочерний компания exxon бизнес лицо внести американский чёрный список . санкция россия быть ввести соединить штат ряд страна евросоюз весной год воссоединение крым рф . включать ограничение финансовый кредитование зарубежный банка технический характер поставка технология освоение шельф . |ngramms нефтяной_корпорация юридический_процедура минфин_сша минфин_сша что_действие иностранный_актив закон_сша участник_рынок нефтяной_компания ряд_документ быть_подписать белый_дом неоднократно_заявлять американский_корпорация наложить_штраф ситуация_на_украина В_ведомство санкционный_режим дочерний_компания чёрный_список быть_ввести соединить_штат страна_евросоюз воссоединение_крым +1850 |text нидерландский производитель молочный продукция frieslandcampina прекратить выпуск сыр российский рынок вслед введение россия эмбарго импорт продовольствие страна ес . сообщение компания передавать интерфакс . компания отмечать что бойкот россия молочный продукция европа ряд страна оказывать влияние европейский рынок . запрет попасть поставка порядок миллион килограмм сыр производить ес примерно миллион килограмм голландский сыр frieslandcampina чувствовать последствие российский эмбарго сообщение . frieslandcampina мера ограничение прямая последствие ввести россия запрет . основный часть продукция предназначить рф быть страна компания рассматривать альтернативный рынок будущее . производитель отмечать что сложиться ситуация оказывать дополнительный давление рынок молочный продукция компания вероятно быть вынудить снизить цена закупка молоко поставщик . цена сухой молоко масло находиться давление падение спрос мировой рынок устойчивый высокий поставка молоко год сообщение . российский предприятие frieslandcampina расположить ступино московский область продолжать работать полный мощность использовать российский молоко производство йогурт напиток . В год frieslandcampina экспортировать россия продукция сумма порядок миллион евро . ответ санкция ряд страна ввести россия событие украина москва объявить полный запрет поставка говядина овощ фрукт мясо птица морепродукт сыр молоко молочный продукт страна евросоюз австралия канада норвегия сша . ограничение вводиться срок год . В обновить перечень запретить ввоз продукт утвердить войти живой рыба . В время убрать лосось форель безлактозной молоко молочный продукция картофель сахарный кукуруза горох витамин . |ngramms молочный_продукция молочный_продукция молочный_продукция молочный_продукция российский_рынок страна_ес компания_отмечать европейский_рынок запрет_попасть российский_эмбарго ввести_россия основный_часть компания_рассматривать сложиться_ситуация быть_вынудить цена_закупка мировой_рынок российский_предприятие московский_область полный_мощность миллион_евро ряд_страна запрет_на_поставка молочный_продукт страна_евросоюз В_обновить премьер_министр _ В_то_же_время +1851 |text В польша возраст год скончаться наследница состояние американский компания johnson johnson сообщать телеканал abc . О смерть пясецкий рассказать родственник . слово умереть тяжёлый продолжительный болезнь . семья пясецкий отказаться уточнить характер заболевание сообщить что похороны пройти вроцлав . родиться год семья польский фермер . В польша получить искусствоведческий образование что эмигрировать страна некоторый время жить рим . В год перебраться сша . как не_говорить прийтись работать повар горничный поместье сын сооснователь косметический империя johnson johnson жена штат . год спустя переехать поступить отделение английский язык местный университет . снять нея апартамент манхэттен переехать . В год развестись жена жениться пясецкий . смерть год шестеро ребёнок брак судиться оставить имя наследство миллион доллар . миллион суметь отстоять право . впоследствии увеличить состояние десять . В год журнал forbes поместить место список богатый женщина планета оценить капитал миллиард доллар . год жизнь провести основное монако . значительный часть средство тратить картина . В коллекция быть работа . |ngramms В_польша В_польша американский_компания _ _ сообщать_телеканал О_смерть _отказаться некоторый_время нью_джерси год_спустя нью_йорк английский_язык _снять миллион_доллар журнал_forbes место_в_список миллиард_доллар значительный_часть _и_ +1852 |text компания wrigley жалоба потребитель изымать продажа россия новый жевательный резинка прекращать рекламный кампания продвижение продукт . новость сообщить руководитель корпоративный wrigley россия надежда . компания wrigley решение остановить акция правда действие производство акционный товар фабрика wrigley рекламный активность дать кампания как начать поступать жалоба потребитель неделя . продукт быть заменить . как пояснить рекламный кампания правда действие рассчитать месяц начаться год бренд . потребитель предлагаться разный задание вопрос . цель игра получать позитивный эмоция впечатление компания совместный выполнение задание ответ вопрос . что задание быть разработать появление тревожить контекст россия потребитель воспринять неоднозначно . В wrigley слово не_хотеть продукт ассоциироваться призыв небезопасный поведение . информационный площадка бренд содержаться информация призывать обдуманный поведение выполнение задание подчеркнуть . В ряд регион россия сахалин краснодарский край оренбург проводиться проверка магазин наличие жевательный резинка компания wrigley . производитель предлагать покупатель поиграть игра правда действие . обёртка указать задание отчёт нужно быть опубликовать соцсеть хештег . задание быть предложение забраться высокий общественный место сделать подумать что необходимый сделать смерть . |ngramms продажа_в_россия рекламный_кампания рекламный_кампания надежда_ начать_поступать быть_заменить как_пояснить ответ_на_вопрос быть_разработать регион_россия краснодарский_край проводиться_проверка нужно_быть опубликовать_в_соцсеть общественный_место что_необходимый +1853 |text президент роснефть сечин предложить правительство рф реализовать контрольный пакет башнефть размер процент акция миллиард доллар . сообщать bloomberg ссылка высокопоставленный чиновник . В сообщение агентство уточняться что предложение сечин основать исследование итальянский банка intesa sanpaolo spa что покупка роснефть акция башнефть смочь принести российский бюджет дополнительный миллиард доллар счёт последующий приватизация акция роснефть продажа готовиться процент акция компания прима . лента . . аналитика компания аналитический обзор высказать мнение что решение правительство перенос срок приватизация башнефть негативно повлиять исполнение бюджет сделка представлять ключевой источник доход триллион рубль создавать серьёзный риска выполнение задача приватизация . мнение эксперт резкий изменение решение башнефть единственный несанкционный актив полностью готовый приватизация ставить угроза сделка продажа пакет роснефть год мочь принести правительство миллиард доллар . глава правительство тимаковый заявить что рф решение перенести приватизация башнефть поздний срок президент поддержать . В сообщаться что конец правительство россия определить критерий отбор кандидат смочь приватизация нефтяной компания . стать что заявка приватизация подать рфпить лукойл роснефть фонд энергия ннк русснефть татнефть татнефтегаз . В настоящее время собственность российский федерация находиться процент акция башнефть . В собственность республика башкортостан процент плюс акция . не_планировать продавать доля предлагать консолидировать федеральный региональный пакет акция башнефть передать управление специализировать компания . |ngramms _сечин правительство_рф контрольный_пакет процент_акция процент_акция миллиард_доллар миллиард_доллар миллиард_доллар В_сообщение что_предложение что_покупка российский_бюджет приватизация_акция процент_акция_компания что_решение перенос_срок источник_доход триллион_рубль резкий_изменение сделка_по_продажа пресс_секретарь глава_правительство премьер_министр рф__ президент__ правительство_россия отбор_кандидат нефтяной_компания В_настоящее_время российский_федерация В_собственность республика_башкортостан процент_плюс не_планировать_продавать пакет_акция +1854 |text британский авиакомпания british airways разрешить пассажир пользоваться сотовый телефон ноутбук аппаратура борт время взлёт посадка сообщать . решение быть европейский авиаперевозчик . ослабление правило позволить увеличить минута количество время пассажир смочь проводить гаджет . самолёт пассажир цифра составить часы . решение ba одобрить местный авиационный регулятор вступить сила . british airways разрешить пассажир пользоваться гаджет посадка когда самолёт окончательно остановиться . В конец американский регулятор разрешить частичный использование персональный электронный устройство борт самолёт время взлёт посадка . В быть допустить использование смартфон планшет читалка цель звонок . операция сша запретить высота тысяча метр . некоторый авиакомпания delta согласиться предложение регулировать орган допустить использование гаджет стадия полёт . |ngramms airways_разрешить airways_разрешить пассажир_пользоваться пассажир_пользоваться сотовый_телефон позволить_увеличить количество_время пассажир_смочь вступить_в_сила В_конец быть_допустить интернетом_соединение допустить_использование +1855 |text американский сервис аренда автомобиль hertz прекращать работа россия . стать rambler service rns . hertz закрываться сообщить агентство источник знакомый ситуация . слово связать развитие каршеринговый сервис россия hertz мочь конкурировать . В материал обладатель мастер франшиза hertz россия ричмонт транспортный услуга принадлежать американский richmont holdings намерение обратиться заявление признание банкрот арбитражный суд москва . компания сделать соответствующий уведомление сообщать rns . забронировать автомобиль россия сайт hertz.com невозможно информация наличие станция аренда страна отсутствовать . hertz крупный мировой компания аренда автомобиль . помимо hertz бренд dollar thrifty hertz global holdings тысяча аренда машина мир . первое представительство hertz открыться москва год . |ngramms американский_сервис аренда_автомобиль аренда_автомобиль работа_в_россия rambler_news_service сообщить_агентство В_материал транспортный_услуга принадлежать_американский признание_банкрот автомобиль_в_россия +1856 |text правительство россия утвердить стратегия развитие экспорт продукция гражданский авиастроение . заявить передавать новость . В направление неплохой перспектива что оценка эксперт мировой рынок авиаперевозка быть растить приблизительно процент год . добавить что крупный мировой производитель воздушный судно airbus boeing развивать глобальный цепочка поставщик обеспечить стабильный поставка необходимый высокотехнологичный компонент . базовый сценарий стратегия предполагать сохранение действующий мера поддержка экспорт продукция самолётостроение авиационный комплектовать рост экспорт продукция россия год восемь миллиард доллар передавать rambler service . согласно документ бюджет поддержка отечественный авиастроитель год необходимый выделить миллиард рубль миллиард . оптимистичный сценарий предусматривать создание кредитный лизинговый платформа продвижение российский авиатехник привлечение крупный российский зарубежный лизинговый компания В рамка платформа планироваться поставить экспорт самолёт sukhoi superjet ssj мс миллиард доллар . предлагаться создать специализировать лизинговый компания база быть консолидировать средство господдержка заёмный средство российский банк кредит привлекать зарубежный лизинговый организация . |ngramms правительство_россия стратегия_развитие экспорт_продукция экспорт_продукция премьер_министр _ передавать_риа_новость мировой_рынок _добавить мировой_производитель воздушный_судно мера_поддержка рост_экспорт миллиард_доллар миллиард_доллар rambler_news_service согласно_документ поддержка_отечественный миллиард_рубль предусматривать_создание крупный_российский лизинговый_компания лизинговый_компания В_рамка sukhoi_superjet российский_банк зарубежный_лизинговый +1857 |text сумма заявка роснефть средство фонд национальный благосостояние составлять триллион рубль . заявить министр финансы россия силуановый передавать . сообщать что роснефть мочь занять фонд полтора триллион рубль . стать что министерство энергетика одобрить заявка роснефть новатэк получение средство фонд национальный благосостояние фнб . одновременно стать что лукойл мочь подать заявка получение средство фонд национальный благосостояние . слово корпорация федун лукойл попросить деньга фонд быть подавать . схожий образ высказаться гендиректор газпром нефть что компания считать справедливый участвовать распределение средство фнб быть выделить развитие нефтяной отрасль . В время транснефть находиться санкция ес сша отказаться средство фнб заявить что не_нуждаться . В месяц ведущий корпорация россия обратиться помощь фнб финансирование проект . произойти как год президент россия предложить выделить компания процент фонд развитие различный отрасль экономика . поздний квота быть увеличить процент . роснефть представить правительство рф заявка получение средство фнб . |ngramms фонд_национальный фонд_национальный фонд_национальный триллион_рубль триллион_рубль министр_финансы россия_ мочь_занять министерство_энергетика одобрить_заявка мочь_подать заявка_на_получение заявка_на_получение вице_президент газпром_нефть _ что_компания средство_фнб средство_фнб нефтяной_отрасль В_то_же_время санкция_ес президент_россия__ различный_отрасль правительство_рф +1858 |text аэрофлот взыскать суд авиадебошир прийтись совершить незапланированный посадка тысяча рубль . авиакомпания поступить редакция лента . . житель нижний новгород прийтись выплатить перевозчик тысяча рубль счёт возмещение убыток перерасход топливо наземный обслуживание аэропорт тысяча рубль компенсация расход уплата госпошлина . инцидент произойти год рейс москва милан . авиакомпания время полёт нетрезвый пассажир вести неадекватно нецензурно выражаться пререкаться проявлять агрессия отношение бортпроводник . экипаж решить что поведение угрожать безопасность полёт . самолёт сесть минск где дебошир передать полиция . аэрофлот выступать ужесточение ответственность нарушение порядок пассажир борт воздушный судный перевод ответственность дебош борт административный уголовный увеличение штраф чёрный список пассажир . В год аналогичный пассажир авиакомпания дочерний структура аэрофлот рассматривать суд омск . экипаж выполнять рейс новосибирск владивосток прийтись совершить незапланированный посадка аэропорт красноярск . нетрезвый пассажир ругаться кидаться кулак попутчик член экипаж пытаться открыть аварийный выход время полёт . суд взыскать нарушитель тысяча рубль . |ngramms прийтись_совершить прийтись_совершить тысяча_рубль тысяча_рубль тысяча_рубль тысяча_рубль пресс_релиз поступить_в_редакция нижний_новгород прийтись_выплатить компенсация_расход инцидент_произойти безопасность_полёт нарушение_порядок воздушный_судный чёрный_список пассажир_авиакомпания дочерний_структура выполнять_рейс член_экипаж +1859 |text афк система объявить наступление технический дефолт кредитный обязательство сумма эквивалентный миллиард рубль . сообщение опубликовать сайт корпорация . наступление техдефолт связать арест ряд актив система акция мтс медсить бэск наложить арбитражный суд башкирия рамка рассмотрение иск роснефть башнефть афк . помимо объявить остальной кредитный соглашение афк система содержимый условие арест актив приводить технический дефолт уточнить система . корпорация сообщать техдефолт кредитный обязательство сумма миллиард рубль . башкирский арбитраж взыскать система миллиард рубль польза башнефть иск роснефть башнефть миллиард . В роснефть выразить удовлетворение решение . В роснефть башнефть подать исковый заявление афк система зао система инвест взыскание миллиард рубль убыток понести мнение реорганизация компания башнефть . поздний истец увеличить размер требование миллиард рубль . В конец иск качество соистец присоединиться республика башкортостан . как пояснять официальный представитель роснефть иск связать уменьшение стоимость актив башнефть результат ряд реорганизация произвести афк система . год процент акция башнефть принадлежать афк система . В конец ценный бумага решение суд быть возвратить собственность государство обнаружить нарушение приватизация компания год . |ngramms миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль опубликовать_на_сайт ряд_актив акция_мтс арбитражный_суд рассмотрение_иск кредитный_соглашение арест_актив исковый_заявление увеличить_размер В_конец В_конец республика_башкортостан как_пояснять официальный_представитель _ стоимость_актив процент_акция ценный_бумага решение_суд обнаружить_нарушение +1860 |text В аэрофлот огласить претензия эффективность самолёт sukhoi superjet . как заявить интервью телеканал дождь председатель совет директор авиакомпания андрос использование модель самолёт являться убыточный . самолёт эффективный когда проводить воздух десять часы сутки . самолёт час стоить земля не_летать нести убыток заявить андрос подчеркнуть что ssj не_налетать десять часы сутки . претензия аэрофлот касаться финансовый модель ssj слово авиакомпания аэрофлот воздух поднять способный . В время андрос заявить что авиакомпания наладить хороший диалог подконтрольный государство объединить авиастроительный корпорация производить ssj слово оак прислушиваться аэрофлот устранять недостаток мочь повлиять безопасность полёт . аэрофлот стать стартовый заказчик superjet заключить год договор поставка самолёт модель стандартный модификация рассчитать место . поздний авиакомпания потребовать доработка авиалайнер . ssj улучшить модификация поступить распоряжение компания год . В год сообщить что процент инцидент связанный отказ авиационный техника аэрофлот год произойти самолёт superjet . |ngramms sukhoi_superjet как_заявить председатель_совет_директор самолёт_являться десять_часы десять_часы финансовый_модель топ_менеджер В_то_же_время подконтрольный_государство объединить_авиастроительный_корпорация безопасность_полёт стартовый_заказчик договор_о_поставка поступить_в_распоряжение процент_инцидент авиационный_техника самолёт_superjet +1861 |text японский компания uniqlo решить сократить рабочий неделя сотрудник . С быть находиться офис остаться стать выходной сообщать buro . В обмен удлинённый сотрудник компания прийтись проводить рабочий место часы воскресение остаться рабочий днями . сначала нововведение быть испробовать япония коснуться примерно часть штатный работник тысяча человек . эксперимент закончиться удачно укоротить неделя ввести подразделение компания мир . В год японский журналист мацуо йокот masuo yokota выпустить книга слава позор uniqlo glory disgrace uniqlo где заявить что менеджер японский магазин сильно перегрузить . В ответ компания подать иск быть закрытый . японский бренд uniqlo дочерний компания fast retailing специализироваться выпуск повседневный одежда быть основать год . время существование компания сотрудничать дизайнер как вонг alexander wang emily deyn . согласно информация сайт компания сеть uniqlo представить страна мир насчитывать тысяча магазин . В россия магазин бренд появиться год . |ngramms японский_компания рабочий_неделя уик_энд сотрудник_компания рабочий_место тысяча_человек подразделение_компания выпустить_книга что_менеджер В_ответ быть_закрытый дочерний_компания существование_компания согласно_информация страна_мир тысяча_магазин В_россия +1862 |text председатель совет директор афк система считать ситуация башнефть прочитать страница не_планировать закрывать бизнес поскольку не_являться убыточный сообщать комсомольский правда . В телефонный интервью вопрос журналист возможный план уход бизнес обвинение мошенничество заявить как говорят прибыльно достаточно успешно работать зачем сворачивать ? У нет бизнес группа быть убыточный сворачивать смысл не_видеть . следственный комитет подозревать что афк система купить пакет акция башнефть башкирия занизить цена миллиард доллар как предварительный оценка стоить миллиард доллар . богатый человек россия являться наиболее высокопоставленный фигурант уголовный башнефть . пояснить интервью потеря как В бизнес бывать терять идти далёкий . быть посыпать голова пепел оплакивать потеря точно далёкий не_пойти как прочитать страница не_возвращаться смотреть далёкий . вопрос журналист держать бизнесмен обида власть недавний следствие арест ответить отрицательно . что смеяться что ? Я плоть плоть страна какой обида ? приводить слово владелец афк система издание . предречь что доллар подешеветь . доллар жёстко связать валюта нефть падать нефть падать доллар . искусственный ситуация родить паника равно схлынуть доллар просесть увеличиться разрыв евро естественно не_быть безумный цена . надо переждать . А захотеть паника выходить доллар потерять . решение басманный суд москва быть находиться домашний арест год год быть освободить . как сообщить президент рф следствие не_доказать вина совладелец афк система отмывание деньга покупка акция башнефть часть обвинение снятой . |ngramms председатель_совет_директор _ _ _ _заявить успешно_работать следственный_комитет что_афк пакет_акция миллиард_доллар миллиард_доллар богатый_человек являться_наиболее _пояснить _ответить приводить_слово владелец_афк суд_москва домашний_арест год_быть как_сообщить рф__ пресс_конференция +1863 |text дата отмена мобильный рабство быть вероятно вновь перенести год год . график подготовка сеть сотовый оператор возможность сохранение номер смена компания поручить разработать министерство коммуникация . писать коммерсантъ . совещание провести неделя аркадия выясниться что оператор готовый отменить мобильный рабство год как предполагаться план . успевать мегафон россия . некоторый оператор екатеринбург готовый перейти новый система . минкомсвязи предложить штрафовать сумма копейка абонент . образ мтс опоздание обойтись миллион рубль . окончательный решение повод перенос не_принять быть определить консультация правительство госдума . быть лично согласие депутат быть изменить существующий закон дата перенести нельзя . есть вариант услуга быть запустить односторонний режим отпускать абонент быть обязать оператор сохранение прежний номер кто подготовиться полностью . президент подписать закон ввод стандарт mnp конец минувший год . согласно документ плат сохранение номер составить рубль соответствующий услуга быть оказать девять физлицо юрлицо . |ngramms дата_отмена сотовый_оператор вице_премьер аркадия_ как_предполагаться некоторый_оператор новый_система миллион_рубль окончательный_решение быть_определить премьер_министр _ дата_перенести быть_запустить быть_обязать президент___подписать стандарт_mnp минувший_год согласно_документ +1864 |text авиакомпания ютэйр начать регулярный рейс московский аэропорт внуково владивосток . полёт быть выполняться неделя широкофюзеляжный дальнемагистральный лайнер boeing . сообщение разместить официальный сайт авиакомпания . В документ отмечаться что время путь составить часы . надеяться что открытие новый рейс владивосток аэропорт внуково быть способствовать решение проблема транспортный доступность приморский край позволить сохранить цена авиаперевозка приемлемый пассажир уровень президент ютэйр . стать что аэрофлот дополнительно выделять самолёт boeing полёт владивосток . С необходимость быть использовать boeing . причина дефицит авиабилет являться остановка деятельность трансаэро пассажир вывозить аэрофлот высокий спрос авиабилет плоский тариф . В настоящее время доступный место рейс аэрофлот дальневосточный город бронироваться перевозка пассажир трансаэро случай рассадка оставаться свободный место поступать открытый продажа . |ngramms регулярный_рейс аэропорт_внуково аэропорт_внуково лайнер_boeing В_документ открытие_новый быть_способствовать решение_проблема _ самолёт_boeing быть_использовать В_настоящее_время перевозка_пассажир +1865 |text арбитражный суд город москва зарегистрировать кассационный жалоба компания татнефть приведение исполнение решение международный суд постановить взыскать минюст украина миллион доллар счёт компенсация потеря доля укртатнафт . соответствующий информация сообщать разместить картотека арбитражный . В конец текущий год московский арбитражный суд отказаться рассмотрение иск татнефть . юрист компания заявить намерение обжаловать решение получение документ письменный вид . основание почему заявление быть отклонить непонятно подчеркнуть представитель татнефть . В год международный арбитражный суд гаага признать украина виновный нарушение российско украинский соглашение присудить татнефть компенсация размер миллион доллар плюс процент . киев пытаться оспорить вердикт апелляционный инстанция безрезультатно . татнефть подать иск международный коммерческий арбитраж весной год . российский компания требовать взыскать украина убыток понести результат переход контроль ао укртатнафт группа привата год . укртатнафт быть создать соответствие указ президент украина татарстан год база кременчугский нпз . процент акция компания принадлежать структура близкие татнефть правительство татарстан владеть процент акция процент акция принадлежать непосредственно татнефть . результат судебный разбирательство доля татарстанский акционер нпз быть практически обнулить предприятие появиться новое акционер близкие группа привата . В татнефть случиться назвать рейдерский захват . |ngramms арбитражный_суд арбитражный_суд арбитражный_суд город_москва международный_суд миллион_доллар миллион_доллар компенсация_потеря соответствующий_информация В_конец текущий_год рассмотрение_иск заявить_о_намерение быть_отклонить международный_коммерческий российский_компания быть_создать президент_украина год_на_база процент_акция_компания принадлежать_структура процент_акция процент_акция судебный_разбирательство нпз_быть появиться_новое +1866 |text компания wal mart крупный мир оштрафовать федеральный суд сша миллион доллар нарушение федеральный законодательство обращение токсичный отход пестицид магазин сообщать presse . иск wal mart быть подать муниципалитет . суд рассмотреть иск прийти вывод что магазин wal mart нарушаться правило утилизация токсичный отход результат что опасный вещество оказываться городской мусорный бак попадать канализация . прокуратура как минимум состояние год отсутствовать программа обучение персонал навык утилизация опасный вещество . комментировать судебный вердикт замгенпрокурор сша глава управление окружающий природный ресурс минюст морить ignacia moreno подчеркнуть нарушать правило обращение токсичный отход компания wal mart ставить угроза безопасность человек окружающий . сеть wal mart быть основать год уолтон чей родственник пора владеть половина акция компания . В сеть входить тысяча магазин мир . |ngramms федеральный_суд миллион_доллар федеральный_законодательство быть_подать лос_анджелес сан_франциско сан_франциско рассмотреть_иск как_минимум комментировать_судебный природный_ресурс акция_компания тысяча_магазин +1867 |text почта россия не_смочь приступить оказание банковский услуга начало год . сообщать ссылка гендиректор организация страшновый . слово почтовый оператор сначала пройти процедура акционирование . замминистра массовый коммуникация заявлять что почта россия мочь начать оказывать финансовый услуга начало год . запрет нея владение кредитный учреждение мочь быть обойти помощь покупка дочерний структура банка . как пояснять схема позволить начать оказывать финуслуга начало следующий год условие готовность приобрести банка . В минкомсвязи что почта россия мочь зарабатывать помощь финансовый услуга оказывать есть денежный перевод платёж не_требоваться банковский лицензия . финансовый услуга почта россия выступить госдума . профильный комитет финансовый рынок не_поддержать расширение возможность оператор . парламентарий опасаться что быть навязывать население дополнительный услуга . проект стратегия развитие почта россия год подразумевать что оператор быть получать свыше половина прибыть дочерний почтовый банка . К год капитализация компания планироваться довести миллиард рубль причём кредитный финансовый операция сыграть ключевой роль . |ngramms почта_россия почта_россия почта_россия почта_россия почта_россия банковский_услуга почтовый_оператор массовый_коммуникация _ мочь_начать финансовый_услуга финансовый_услуга финансовый_услуга кредитный_учреждение мочь_быть дочерний_структура как_пояснять начать_оказывать следующий_год В_минкомсвязи финансовый_рынок что_он_быть стратегия_развитие быть_получать почтовый_банка капитализация_компания миллиард_рубль финансовый_операция +1868 |text американский авиакомпания delta airlines прошлое приостановить авиаперевозка сша россия возобновить полёт . сообщать ссылка информация получить компания . перевозчик быть выполнять рейс маршрут москва терминал D аэропорт шереметьево . единственный прямая рейс авиакомпания выполнять россия приостановка полёт . как компания перевозчик быть выполнять рейс неделя предлагать клиент направление сша предел стыковка хаба авиакомпания . delta airlines быть выполнять полёт воскресение . вылет москва запланировать мск прилёт местный время . зимой многие авиаперевозчик приостановить полёт . решение подождать весна год . У нет что конкретный план загрузка быть зависеть ценообразование рынок . предполагать что загрузка равно быть хороший уровень сообщать генеральный представитель delta airlines россия . В настоящее время прямая авиарейс направление москва осуществлять аэрофлот . В год направление работать трансаэро находиться стадия банкротство delta airlines . В год delta airlines решение приостановить рейс маршрут москва . минувший год прекратить полёт россия некоторый зарубежный перевозчик . В прямая рейс москва закрыть немецкий air berlin существенно сократить маршрутный сеть немецкий lufthansa thai airways international таиланд финский finnair . |ngramms возобновить_полёт перевозчик_быть перевозчик_быть выполнять_рейс нью_йорк нью_йорк нью_йорк нью_йорк рейс_авиакомпания приостановка_полёт предлагать_клиент нью_йоркский быть_выполнять многие_авиаперевозчик хороший_уровень _ В_настоящее_время минувший_год прекратить_полёт прямая_рейс существенно_сократить маршрутный_сеть +1869 |text новый генеральный директор оао курорт северный кавказ кск быть назначить заместитель министр региональный развитие . писать газета ведомость ссылка неназванный источник . издание что информация подтвердить глава регион северный кавказ сотрудник кск некто близкий администрация президент . В настоящее время входить совет директор кск . ведомость отмечать что являться человек команда работать администрация красноярский край . В минрегион курировать северный кавказ . ведомость сообщить что кандидатура согласовать кремль . сменить настоящее время исполнять обязанность гендиректор кск . садик быть заместитель бывший глава компания невский как отмечать газета считаться человек бывший председатель совет директор . новый председатель совет директор кск стать полпред президент федеральный округа . должность занимать заместитель полпред федеральный округа максим . песок заявить что смена гендиректор кск кремль не_обсуждаться . В минрегион заявить что ничто не_знать переход новый работа . получить комментарий чиновник ведомость не_удаться . лишиться пост вскоре как год работа раскритиковать президент рф . повод недовольство глава государство проинспектировать объект строиться олимпиада сочи стать срыв срок возведение трамплин удорожание проект миллиард миллиард рубль . критика касаться компания развитие курорт возглавлять брат . фирма отстранить олимпийский строительство лишиться пост кск олимпийский комитет . В дальнейший отношение невский быть возбудить уголовный . В брат обвиняться что необоснованно потратить зарубежный поездка миллион рубль проходить уклониться налог сумма миллион организация паломнический тур хадж допустить злоупотребление полномочие банковский кредит сумма превышать миллион рубль . В стать что брат уехать россия . компания ку рор се вера кав ка быть создать указание российский правительство год . работать территория ристый ско ре кре ци ных особый экономический зона федеральный округа . |ngramms генеральный_директор курорт_северный быть_назначить заместитель_министр региональный_развитие _ _ _ _ _ _ _ писать_газета неназванный_источник администрация_президент В_настоящее_время совет_директор являться_человек красноярский_край кандидатура_ исполнять_обязанность бывший_глава_компания как_отмечать человек_бывший председатель_совет_директор председатель_совет_директор северо_кавказский северо_кавказский северо_кавказский федеральный_округа федеральный_округа федеральный_округа максим_ пресс_секретарь _песок смена_гендиректор ничто_не_знать получить_комментарий _и_ работа_раскритиковать рф__ глава_государство срыв_срок миллиард_рубль брат__ В_дальнейший __и_ быть_возбудить брат_ брат_ зарубежный_поездка миллион_рубль миллион_рубль злоупотребление_полномочие банковский_кредит быть_создать российский_правительство экономический_зона +1870 |text иностранный пилот должность командир воздушный судный россия стать гражданин германия рольфс сообщаться аэрофлот . новый пилот прийти авиакомпания hamburg airways . В аэрофлот заявить что рассматривать привлечение иностранный пилот как необходимый мера ликвидация существующий дефицит лётный кадр что требовать долгосрочный комплексный усилие . компания получить резюме должность командир самолёт итоговый конкурс составить человек место . иностранный пилот быть допустить командование управление самолёт российский авиакомпания текущий год когда быть внести изменение воздушный кодекс . С перевозчик получить право нанимать иностранец . компания выделить квота размер человек год . заявка росавиация привлечение иностранный пилот подать девять компания . помимо аэрофлот стать трансаро ютэйр якутия саратовский авиалиния ряд . |ngramms иностранный_пилот иностранный_пилот иностранный_пилот иностранный_пилот воздушный_судный _ пресс_релиз что_рассматривать что_требовать компания_получить быть_допустить управление_самолёт российский_авиакомпания быть_внести воздушный_кодекс получить_право выделить_квота +1871 |text российский миллиардер ответить заявление бывший жена усомниться мусульманский вера сообщать рбк . В интервью газета york times поставить вопрос решение обратиться шариатский суд . прекрасно знать что истовый верующий мусульманин . утверждение оскорбительный как лживый миллиардер отвечать заявление . бизнесмен что бывший жена не_интересоваться религиозный взгляд ислам воспринимать как оправдание экстремист террорист . долгий год жить врозь рассуждение вера очередной лукавство направить ввести заблуждение ради вымогательство крупный сумма деньга . развод год нет никакой основание рассказывать дальнейший жизнь подчеркнуть бизнесмен . интервью york times бывший жена миллиардер дать как адвокат предложить передать шариатский суд решение судьба яхта luna . судно быть арестовать дубай требование британский суд . В рейтинг forbes богатый бизнесмен россия занимать строка состояние миллиард доллар . оценка издание конец год россия насчитываться миллиардер совокупный состояние составить миллиард доллар . согласно рейтинг bloomberg богатый человек россия являться владелец нлмк лисиный . |ngramms миллиардер__ бывший_жена бывший_жена бывший_жена _ _ _ сообщать_рбк В_интервью долгий_год крупный_сумма нет_никакой адвокат_ предложить_передать суд_решение быть_арестовать В_рейтинг богатый_бизнесмен миллиард_доллар миллиард_доллар год_в_россия совокупный_состояние рейтинг_bloomberg богатый_человек являться_владелец +1872 |text онлайн магазин одежда обувь товар дом quelle otto прекращать работа территория россия . сообщать коммерсантъ ссылка гендиректор otto group russia ширер . слово решение соответствие глобальный стратегия otto group . группа планировать сконцентрироваться развитие маркетплейс otto . de немецкоязычный страна . ширер не_исключить что впоследствии дать торговый площадка быть вывести международный уровень . слово маркетплейс закрываться страна россия . otto group не_собираться полностью уходить рф продолжить развивать бренд witt bonprix esolutions . ширер выразить уверенность что группа остаться главное игрок российский commerce . эксперт опросить издание называть закрытие магазин россия ожидать . слово доля quelle otto структура продажа otto group russia итог год снизиться . немецкий онлайн магазин безоговорочно проигрывать конкуренция российский wildberries lamoda . |ngramms группа_планировать торговый_площадка быть_вывести структура_продажа год_снизиться +1873 |text журнал time составить рейтинг шоколадка оказать наибольший влияние кондитерский индустрия мир целое . рейтинг появиться сайт издание . первое место немой занимать батончик kit kat . лидерство шоколад kit kat принести маркетинговый кампания вестись одновременно разный регион мир . как отмечать time kit kat превратить потребление шоколад социальный действие . упаковка обычно содержимый батончик реклама предлагать поделиться . второе место оказаться плитка молочный шоколад hershey milk chocolate . создатель бренд приучить американец потребление шоколад начало xx век . популяризовать молочный шоколад . замыкать тройка лидер треугольный плитка швейцарский шоколад toblerone . появиться год . toblerone считаться гигант мировой кондитерский индустрия . предел тройка оказаться шоколадный плитка nestle milk chocolate . В time напомнить читатель что современный плиточный шоколад являться изобретение nestle компания добавить шоколад порошковый молоко создать основатель . место оказаться батончик snickers . В time признать что не_смочь кардинально изменить кондитерский отрасль рекордный продажа . В год достигнуть миллиард доллар . место time присвоить chicken dinner . шоколад марка перестать выпускать chicken dinner популяризовать питательный ценность шоколад добавка . В десятка time поместить grenade chocolate . заслуга стать возвращение производство плитка шоколад развитый государство регион где выращиваться какао . компания быть основать год . восемь место рейтинг занять шоколад ручной работа scharffen berger . В год быть приобрести hershey . time объяснить выбор что scharffen berger угадать изменение предпочтение покупатель хотеть продукт высокий качество . девять место рейтинг принадлежать шоколадный батончик cadbury milk chocolate способствовать рост популярность британский кондитерский компания cadbury помочь создать образцовый поселение бирмингем . десять место time поместить батончик nestle crunch . появиться год . новаторский решение стать добавление шоколад воздушный рис . позволить сильно снизить стоимость батончик . одиннадцать место быть присудить батончик baby ruth . стать выпускать год популярность обязать бейсбольный звезда бейба рута babe ruth случай род . рута не_получать производитель никакой отчисление . место time поставить milky . батончик быть создать год . стать массовый шоколадка качество основа быть взять существовать десерт молочный коктейль . замкнуть рейтинг батончик wonka bar запустить массовый производство успех книга фильм шоколадный фабрика . |ngramms журнал_time составить_рейтинг появиться_на_сайт первое_место регион_мир как_отмечать потребление_шоколад потребление_шоколад молочный_шоколад молочный_шоколад тройка_лидер кондитерский_индустрия В_time В_time место_оказаться миллиард_доллар перестать_выпускать В_десятка стать_возвращение место_в_рейтинг место_в_рейтинг год_он_быть рост_популярность кондитерский_компания снизить_стоимость быть_присудить массовый_производство шоколадный_фабрика +1874 |text вывод оппозиционер навальный характер сделка миллиардер фонд соцгоспроект обмен имущество некомпетентный заявить usm holdings . сообщать rambler service . господин навальный любить публиковать красивый картинка топографический снимка невнимательно читать документ . В очередной показывать некомпетентность склонность ложь мочь проблема зрение холдинг . выйти интервью ведомость объяснять что обменять участок дом подмосковный сель знаменский предложить соцгоспроект земля рублёвка расширить территория возле особняк где жить большой год напомнить usm holdings . В уточнить что участок находиться собственность группа истый инвест фонд быть соглашение совместный освоение земля возведение коттеджный посёлок продажа . условие соглашение группа истый инвест быть предоставить участок фонд соцгоспроект финансирование . отсюда наличие сделка этап сторона . господин навальный располагать открытие быть отличный возможность представить суд добавить представитель бизнесмен . заявить что намеренный судиться навальный . миллиардер решение публикация порочить честь достоинство клевета опубликовать расследование основать оппозиционер фонд борьба коррупция фбк . В начало фбк опубликовать расследование якобы связанный россия благотворительный некоммерческий фонд . В материал утверждаться что сокурсник связанный фонд соцгоспроект получить договор пожертвование земельный участок дом сель знаменский рублевский шоссе стоимость миллиард рубль . В кремль материал счесть пример творчество осудить гражданин премьер назвать якобы собранный компромат чушь бумажка . |ngramms пресс_служба пресс_служба usm_holdings usm_holdings rambler_news_service находиться_в_собственность совместный_освоение возможность_представить _заявить что_намеренный опубликовать_расследование опубликовать_расследование В_начало премьер_министр россия__ _ миллиард_рубль В_кремль +1875 |text фонд развитие заявить готовность инвестировать миллион доллар российский стартап бизнес курс акселератор . сообщение компания . планироваться инвестировать восемь проект . финальный сумма стартап составить тысяча доллар зависимость привлекательность наличие соинвестор конечный соглашение . компания получить предложение вложение не_быть назвать не_закончиться формальный процедура . В акселератор фонд стартап получать денежный поддержка прохождение трехмесячный интенсивный бизнес курс получать консультативный поддержка . параллельно компания продолжать работа . набор акселератор быть отобрать стартап закончить выполнить поставить задача увеличение финансовый показатель аудитория проект привлечение новый партнёр . . проект успешно закончить акселератор быть представить российский инвестиционный фонд demo day . стартап привлечь сторонний инвестирование мочь рассчитывать дополнительный инвестирование сторона . проект получать инвестиция фонд ориентироваться следующий порядок действие год производиться вложение проект год производиться выход проект . фонд развитие заниматься поддержка стартап постоянный основа . В год объявить запуск акселератор мочь гражданин россия идея готовый бизнес нуждающийся финансирование . В управление фонд находиться миллиард рубль планироваться вложить поддержка бизнес проект конец год . |ngramms фонд_развитие фонд_развитие интернетом_инициатива интернетом_инициатива миллион_доллар тысяча_доллар компания_продолжать поставить_задача финансовый_показатель привлечение_новый быть_представить инвестиционный_фонд постоянный_основа гражданин_россия интернетом_стартап управление_фонд миллиард_рубль +1876 |text строительство секция центральный кольцевой автодорога стоимость составлять миллиард рубль найтись претендент . В оказаться компания четверть принадлежащий стройтрансгаз стройгазконсалтинг crocus gpoup писать ведомость . компания перечислить обеспечение заявка конкурс как изначально предполагаться быть состояться год . В вскрытие конверт быть перенести . причина стать решение аркадия поручить провести технический ценовый аудит проект . В время как отмечать издание правительство ожидать высокий конкуренция новый конкурс пройти . компания решение попытка конкурс как изучить документация мочь измениться проведение аудит . В проект строительство секция цкада основной расход понести государство вложить миллиард рубль . остальной миллиард составить собственно инвестиция частник . проведение конкурс государство подрядчик заключить инвестиционный соглашение строительство начаться текущий год . секция пройти территория новый москва подольский нарый фоминский район . центральный кольцевой автодорога планироваться построить год территория москва московский область . длина кольцо составить километр . основный часть появиться вдоль существующий московский малое кольцо бетонка . строительство цкада предполагаться потратить миллиард рубль . большой часть цкада быть платный . тариф не_определить называться средневзвешенный ставка составлять рубль километр . |ngramms миллиард_рубль миллиард_рубль миллиард_рубль оказаться_компания _ _ изначально_предполагаться быть_перенести причина_стать вице_премьер аркадия_ В_то_же_время как_отмечать_издание проект_строительство основной_расход проведение_конкурс планироваться_построить московский_область малое_кольцо большой_часть +1877 |text В петербург закрыться туристический агентство этюд специализироваться путешествие европа . сообщать российский газета . слово очевидец офис васильевский остров сенной площадь закрытый телефон компания не_отвечать . не_выходить директор фирма . информация банкротство этюд возможный исчезновение руководитель подтвердить издание отделение российский союз туриндустрия рст . слово представитель организация случиться уведомить правоохранительный орган полиция поступить надлежащий заявление . сайт турагентство нет никакой информация банкротство компания . О ситуация ростуризм сообщить что жалоба турист повод приостановка деятельность этюд поступать . конкретный количество пострадавший информация не_уточняться . португалия китай оплатить счёт остаться клиент обанкротиться ветер странствие . закрытый дверь турист встретить петербургский офис формула хороший отдых . В приостановка деятельность объявить туроператор нева роза ветер мир экспо тур турфирма идеал тур лабиринт группа компания интаэр старый . ростуризм результат банкротство ряд туроператор нынешний сезон пострадать сложность тысяча человек . |ngramms В_петербург российский_газета директор_фирма _ информация_о_банкротство подтвердить_издание северо_западный российский_союз правоохранительный_орган нет_никакой банкротство_компания пресс_служба приостановка_деятельность деятельность_объявить группа_компания _старый ряд_туроператор сезон_пострадать тысяча_человек +1878 |text президиум российский союз автостраховщик рса решение замена бланк полис осаго год . сообщить президент рса всероссийский союз страховщик всс передавать интерфакс . подчеркнуть что замена быть производиться как мера противодействие распространение фальшивый бланк . подробность операция не_планироваться сообщать вплоть . водитель не_прийтись нести дополнительный расход издержка обмен лечь страховщик добавить . сообщить что параметр новый бланк настоящее время обсуждаться гознак . быть иметь высокий уровень защита . стоимость новое бланк увеличиться процент зависимость выбрать вариант защита . рса год месяц союз удаться снять делегирование доменный имя заблокировать хостинг аккаунт устранить нарушение заблокировать аккаунт социальный сеть заблокировать группа социальный сеть рекламный объявление яндекс директ ведущий мошеннический ресурс . поддержка рса удалить публикация форум доска объявление . В год базовый тариф осаго подорожать процент рубль . десять год существование автогражданка минимальный стоимость полис не_повышаться . повышение тариф увеличить прибыль страховщик . |ngramms российский_союз всероссийский_союз _ быть_производиться дополнительный_расход _сообщить высокий_уровень вариант_защита интернетом_ресурс базовый_тариф десять_год повышение_тариф +1879 |text втб опровергнуть информация что банка прийтись пойти определённый уступка урегулирование долг компания marshall capital . заявить лента . втб . информация значительный дисконт предоставить ход урегулирование долг marshall capital partners сообщить ряд абсолютно не_соответствовать действительность представитель банка отказаться дальнейший комментарий . источник кредитный учреждение пояснить лента . что банка удаться взыскать структура компания русагропром миллиард рубль . сумма складываться платёж размер миллиард рубль быть получить банк условие соглашение уступка право требование платёж миллион рубль реализация ряд молочный предприятие миллион рубль взыскать банковский счёт компания . средство поступать год начинать год . коммерсант сообщить что marshall capital втб заключить мировой соглашение условие госбанк уступить право требование долг миллион доллар миллион доллар . банк уступить право требование втб капитал русагропром кредитный соглашение год компания виргинский остров alverdine investments миллион доллар есть процентный дисконт издание . помимо сторона условиться прекратить судебный уголовный разбирательство связанный требование компенсация кредит . очередь отказаться иск втб высокий суд лондон возмещение убыток арест актив миллион доллар . |ngramms долг_компания _ capital_partners представитель_банка дальнейший_комментарий кредитный_учреждение банка_удаться структура_компания миллиард_рубль миллиард_рубль право_требование право_требование право_требование миллион_рубль банковский_счёт мировой_соглашение миллион_доллар миллион_доллар миллион_доллар миллион_доллар втб_капитал уголовный_разбирательство высокий_суд +1880 |text сеть ресторан быстрый питание mcdonald ограничить количество эпизод появление публика символ компания клоун участиться нападение человек костюм клоун американец . сообщать york . mcdonald франшиза местный рынок помнить случай появление клоун позаботиться неучастие общественный мероприятие некоторый время официальный заявление компания . решение подвергнуться критика twitter . случай появление клоун заставить mcdonald ограничить выход публика . когда менять жизнь клоун побеждать писатель jon acuff . информация неизвестный костюм клоун начало появляться конец . В разный штат сообщать что человек пытаться заманить ребёнок лес предлагать деньга . версия что детский выдумка отвергнуть как клоун видеть взрослый . стража порядок американский штат джорджия алабама подобный шутка арестовать человек . С клоунский паника связывать смерть пенсильвания . неподтвержденный информация нашествие клоун мочь быть частью маркетинговый кампания фильм ужас новый экранизация роман кинг . |ngramms сеть_ресторан быстрый_питание _ _ _ _ _ случай_появление случай_появление некоторый_время В_разный американский_штат мочь_быть +1881 |text британский регулятор слияние поглощение takeover panel проверить сделка продажа доля polyus gold российский инвестор депутат госдума зелимхан бывший совладелец билль . писать telegraph . чиновник намерить выяснить являться бизнесмен партнёр связать совладелец polyus gold . как писать номер газета ведомость ссылка источник регулятор подтвердить что являться партнёр обязать выставить оферта миноритарий polyus gold выкуп акция . О что согласиться доля polyus gold international материнский компания крупный российский золотодобытчик полюс золото сообщить агентство bloomberg ссылка источник . официальный подтверждение информация не_быть . главное претендент пакет считаться партнёр polyus gold принадлежать процент акция компания . стать что доля намерить выкупить . деловой пресс писать что действовать интерес как не_хотеть выставлять оферта выкуп акция миноритарий . оферта необходимый контроль компания переходить бизнесмен консорциум инвестор . пакет акция polyus gold оцениваться миллиард доллар . появление информация продажа ценный бумага золотодобытчик начать дорожать неделя вырасти цена процент . миноритарный акционер принадлежать ценный бумага сумма миллиард доллар . |ngramms британский_регулятор сделка_по_продажа _ _ _ _ российский_инвестор депутат_госдума бывший_совладелец намерить_выяснить как_писать _и_ _и_ являться_партнёр выкуп_акция крупный_российский сообщить_агентство процент_акция_компания консорциум_инвестор пакет_акция миллиард_доллар миллиард_доллар информация_о_продажа ценный_бумага ценный_бумага миноритарный_акционер +1882 |text россия подписать постановление правительство предоставление право экспорт сжидить природный газа спг компания ямал спг роснефть газпром газпром экспорт . сообщать . лицензия вывоз спг страна быть выдавать министерство энергетика . сегодняшний исключительный право экспорт газа обладать газпром . В очередь роснефть год неоднократно добиваться разрешение вывоз топливо . В год президент россия подписать закон либерализация экспорт сжидить газа . согласно документ право экспортировать спг получить компания государство процент заниматься добыча газа шельф граница внутренний морской вод . право поставка спг предоставляться пользователь недра участок федеральный значение чей лицензия год предусматривать строительство завод производство спг . новый правило возможность появиться роснефть дочерний компания ямал спг совместный проект новатэк total cnpc . рынок спг развитый россия год страна рассчитывать удовлетворять процент мировой потребность . что касаться газопроводный газа ближний год монополия экспорт вид топливо остаться газпром дочерний компания . |ngramms премьер_министр россия___подписать постановление_правительство экспорт_сжидить экспорт_сжидить природный_газа газпром_экспорт министерство_энергетика экспорт_газа В_свой_очередь президент_россия__ согласно_документ добыча_газа поставка_спг федеральный_значение строительство_завод новый_правило дочерний_компания дочерний_компания ямал_спг совместный_проект рынок_спг страна_рассчитывать процент_мировой что_касаться год_монополия +1883 |text крупный заказ строительство муниципальный жильё москва стоимость восемь миллиард рубль получить компания терра создать главый управление гражданский строительство угс . номер писать газета ведомость . терра контракт угс сумма миллиард рубль . В информационный база спарк указать что пора владеть процент акция терра . чиновник заявить газета что компания партнёр переход работа мэрия . предоставить издание реестр акционер подтверждать что владеть процент акция терра . терра конец год выиграть контракт строительство тысяча квадратный метр жильё базовский улица . компания получить контракт результат конкурс проводить угс причём терра оказаться единственный участник . строительный организация предложить выполнить работа сумма маленький стартовый цена миллиард рубль . У терра нет строительный мощность . информация неназванный источник ведомость компания не_соответствовать необходимый конкурс требование прийтись создать товарищество главмосстрой . прийти работа мэрия год . как время столичный власть решить строить социальный жильё сила . управление гражданский строительство получать цель деньга бюджет вид инвестиция . С год власть намерить ужесточить контроль аффилированность чиновник бизнес . В подписать постановление соответствие столичный подрядчик госконтракт миллиард рубль быть обязать раскрывать акционер регион планка составить миллион рубль . |ngramms заказ_на_строительство миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль управление_гражданский управление_гражданский _ _ писать_газета процент_акция процент_акция заявить_газета год_выиграть контракт_на_строительство тысяча_квадратный_метр компания_получить оказаться_единственный строительный_организация выполнить_работа неназванный_источник _прийти власть_решить премьер_министр __подписать быть_обязать миллион_рубль +1884 |text компания blackberry сообщить убыток миллиард доллар квартал год . опубликовать . согласно отчёт период текущий год компания получить миллион доллар чистый прибыть . выручка компания снизиться процент достигнуть миллиард доллар . отчётный период blackberry миллион смартфон . сравнение третье квартал год компания миллион смартфон . как пояснить blackberry значительный убыток объясняться что компания прийтись выплачивать высокий налоговый сбор тратить средство реструктуризация актив стратегический переоценка . В отчёт компания сообщаться заключение соглашение партнерство тайваньский контрактный производитель электроника foxconn . условие партнерство заключённый срок год blackberry foxconn быть совместно разрабатывать недорогой смартфон развивающийся рынок . В год компания blackberry значительно уступить рынок apple производитель телефон android . В начало год blackberry попытаться упрочить позиция выпустить операционный система blackberry . год выйти смартфон успех устройство не_пользоваться . |ngramms компания_blackberry компания_blackberry миллиард_доллар миллиард_доллар пресс_релиз согласно_отчёт текущий_год компания_получить миллион_доллар чистый_прибыть выручка_компания отчётный_период миллион_смартфон миллион_смартфон третье_квартал значительный_убыток что_компания реструктуризация_актив В_отчёт производитель_электроника уступить_рынок производитель_телефон В_начало операционный_система +1885 |text власть украина настоящее время занятый активный поиск имущество газпром территория страна принудительный взыскание штраф размер миллиард доллар . С заявление выступить глава минюст украина сообщать новость . Я не_хотеть ранний время раскрывать определённый информация что процесс поиск актив имущество . делать рамка закон быть рассчитывать позитивный кейс выполнение решение добавить что не_хотеть раскрывать некоторый информация . неделя высокий хозяйственный суд украина отклонить кассационный жалоба газпром требовать отменить судебный решение принудительный взыскание многомиллиардный штраф . представитель антимонопольный комитет амка заявить что имущество газпром украина не_хватить перекрыть сумма штраф ведомство рассматривать возможность взыскание средство путём . год хозяйственный суд киев обязать газпром выплатить штраф злоупотребление монопольный положение рынок транзит газа . газпром не_заплатить штраф пеня добровольно амка обратиться государственный исполнительный служба осуществлять принудительный исполнение судебный решение территория украина рубеж отмечаться заявление ведомство . поздний газпром обжаловать стокгольмский арбитраж решение киевский суд . |ngramms власть_украина штраф_в_размер миллиард_доллар украина__ сообщать_риа_новость Я_не_хотеть ранний_время процесс_поиск требовать_отменить антимонопольный_комитет __заявить рассматривать_возможность суд_киев транзит_газа исполнительный_служба судебный_решение отмечаться_в_заявление киевский_суд +1886 |text представитель российский холдинг газпром прокомментировать новость заявление украина относительно возможность возобновление закупка киев российский газа . сдача газпром газа покупатель вопрос взаимоотношение украина европейский клиент долгосрочный контракт . В заявить что украина мочь возобновить покупка газа россия учёт топливо быть перенести западный восточный граница страна . бесплатный сыр бывать мышеловка . мочь проанализировать предыдущий опыт когда привлекательный условие привязывать решать вопрос ответить вопрос возможный возвращение закупка газа россия . коммерческий директор нак нафтогаз украина заявить что существовать вероятность что год киев вновь начать закупать газ россия . украина перестать покупать российский газ год начало приобретать европа объяснять низка цена . поздний нафтогаз признать что газпром предложить киев топливо привлекательный цена европейский поставщик . российский газ обойтись украина доллар тысяча кубометр . |ngramms российский_холдинг _ вице_премьер украина__ российский_газа долгосрочный_контракт _заявить украина_мочь быть_перенести закупка_газа коммерческий_директор нафтогаз_украина __заявить что_существовать украина_перестать российский_газ российский_газ начало_приобретать предложить_киев европейский_поставщик тысяча_кубометр +1887 |text мчс россия разрешить представитель малое среднее бизнес не_выполнять предписание согласно предприятие создаваться запас продукт питание средство индивидуальный защита . сообщить официальный представитель мчс россиус передавать интерфакс . слово россиус мчс подготовить проект приказ министр упрощать требование область гражданский оборона организация чей работа не_предусмотреть военный время . организация не_быть разрабатывать план . крупный предприятие не_быть прекращать работа военный время требование область сохраниться . полномочие организация сфера регулироваться федеральный закон год фз О гражданский оборона . предприятие организовывать мероприятие создавать поддерживать местный система оповещение сотрудник создавать запас материально технический продовольственный медицинский иной средство . В соответствие статья . . коап рф невыполнение требование мероприятие область компания предприниматель грозить административный штраф . должностной лицо мочь быть оштрафовать тысяча рубль юридический лицо тысяча рубль . |ngramms среднее_бизнес продукт_питание официальный_представитель подготовить_проект гражданский_оборона гражданский_оборона военный_время военный_время крупный_предприятие федеральный_закон грозить_административный мочь_быть тысяча_рубль тысяча_рубль юридический_лицо +1888 |text крупный китайский alibaba работать сфера подать федеральный комиссия сша ценный бумага биржа sec заявка первичный размещение акция ipo . В настоящее время точный размер ipo неизвестный компания намерить привлечь миллиард доллар писать forbes . аналитика предполагать что спрос акция компания быть ажиотажный финансовый операция мочь стать крупный история alibaba . что рекорд принадлежать соцсеть facebook привлечь год миллиард доллар . агентство bloomberg считать что компания мочь привлечь миллиард доллар . рыночный стоимость создать год alibaba оцениваться миллиард доллар есть большой процент компания входящая расчёт индекс standard poor . оценка bloomberg показатель китайский холдинг занимать место мир google дорогой компания мир . потребитель использовать alibaba онлайн продажа вещий электронный платёж . У alibaba иметься сайт розничный торговля taobao предназначить продажа небрендовать продукция tmall где покупатель предлагаться товар определённый торговый марка крупный производитель . |ngramms крупный_китайский интернетом_холдинг интернетом_торговля подать_в_федеральный ценный_бумага первичный_размещение В_настоящее_время компания_намерить миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар писать_forbes акция_компания_быть мочь_стать крупный_в_история агентство_bloomberg что_компания_мочь рыночный_стоимость электронный_платёж розничный_торговля покупатель_предлагаться торговый_марка крупный_производитель +1889 |text китайский автопроизводитель great wall motor подтвердить план строительство завод тульский область мощность тысяча автомобиль год сообщение администрация регион . С состояться деловой поездка представитель корпорация развитие тульский область китай . китайский партнёр подтвердить намерение строительство автозавод тульский область значимость проект расширение производство great wall motors территория россия . процент автокомпонент будущее завод быть производиться территория индустриальный парк узловой отмечаться . летом год great wall начало строительство тульский область завод выпуск автомобиль бренд haval . соответствующий соглашение быть подписать шанхай прошлое год . инвестиция проект составить миллион доллар . предприятие площадь тысяча гектар планироваться построить год . В россия одобрить мера поддержка автопром миллиард рубль предложить минпромторг . средство быть направить стимулирование спрос рынок включая субсидирование процентный ставка автокредит . В продажа легковушка лёгкое коммерческий автомобиль lcv российский авторынок ассоциация европейский бизнес упасть процент тысяча машина . фон снижение спрос американский general motors объявить уход российский рынок бренд opel массовый модель марка chevrolet пообещать сохранить премиальный автомобиль cadillac chevrolet . автоконцерн неопределённый срок останавливать производственный проект россия завод gm быть законсервировать контрактный производство мощность группа газ закончиться год . сотрудничество автотор gm заказывать выпуск машина завершиться . |ngramms тысяча_автомобиль пресс_служба администрация_регион корпорация_развитие китайский_партнёр подтвердить_намерение расширение_производство быть_производиться пресс_релиз начало_строительство выпуск_автомобиль соответствующий_соглашение прошлое_год инвестиция_в_проект миллион_доллар планироваться_построить премьер_министр россия__ мера_поддержка миллиард_рубль спрос_на_рынок процентный_ставка лёгкое_коммерческий ассоциация_европейский_бизнес тысяча_машина снижение_спрос general_motors массовый_модель марка_chevrolet пообещать_сохранить проект_в_россия завод_gm санкт_петербург группа_газ +1890 |text мелкооптовый metro cash carry подтвердить возможный вывод биржа российский подразделение . опубликовать сообщение компания . компания подчеркнуть что никакой определённый решение отношение российский дочка не_принять будущее metro cash carry не_исключить размещение миноритарный пакет акция фондовый площадка . вывод акция биржа понадобиться компания получение дополнительный финансирование . агентство ссылка анонимный источник передать что объесть ipo мочь превысить миллиард доллар организатор выступить goldman sachs сбербанк . ценный бумага быть разместить биржа лондон . В россия действовать магазин сеть продажа год превысить миллиард евро . магазин metro cash carry быть открытый рф год . основный конкурент metro cash carry выступать retail group ашан магнит . |ngramms российский_подразделение сообщение_компания компания_подчеркнуть пакет_акция фондовый_площадка получение_дополнительный мочь_превысить миллиард_доллар ценный_бумага быть_разместить В_россия магазин_сеть год_превысить миллиард_евро быть_открытый основный_конкурент retail_group +1891 |text федеральный космический агентство роскосмос просить бюджет триллион рубль миллиард рубль запрашивать сумма ведомство планировать привлечь внебюджетный источник . объесть федеральный космический программа год составить триллион рубль писать коммерсантъ . превышать показатель ныне действующий программа . большой часть средство госпрограмма триллион рубль роскосмос собираться потратить работа . издание уточнять что бюджет новый программа превышать объесть программа год быть рассчитать выделение миллиард рубль средство федеральный бюджет получение миллиард рубль внебюджетный источник . получить сумма роскосмос быть сложно писать издание . сведение коммерсант год космический программа быть секвестировать процент рамка оптимизация расход . запрос ведомство космический программа превышать объём задать утвердить госпрограмма космический деятельность россия год триллион рубль заявить издание чиновник экономический блок правительство . |ngramms федеральный_космический триллион_рубль триллион_рубль триллион_рубль триллион_рубль миллиард_рубль миллиард_рубль миллиард_рубль планировать_привлечь космический_программа космический_программа космический_программа год_составить превышать_показатель большой_часть научно_исследовательский опытно_конструкторский издание_уточнять новый_программа федеральный_бюджет писать_издание оптимизация_расход превышать_объём заявить_издание +1892 |text горнолыжный комплекс сочинский красный поляна увеличить стоимость абонемент катание горный лыжа среднее процент . сообщать . как пояснить курорт роза хутор повышение связать ожидать наплыв клиент новогодний праздник . прежний цена планировать вернуть каникулы . сезон катание роза хутор открываться . С возможный ограничение количество свободный продажа повышенный спрос . гендиректор курорт что стоимость дневный составить рубль . В спортивно туристический центр горный карусель курорт горка город агентство сообщить что ограничение продажа не_планировать . трасса открыть . быть действовать праздничный тариф пользование канатный дорогой . экскурсионный билет обойтись гость тысяча рубль дневный тысяча рубль вечерний катание тысяча . новогодний праздник горный карусель вернуться прежний тариф тысяча рубль . подорожание услуга канатный подъёмник подтвердить центр газпром . девальвация рубль привести резкий сокращение спрос зарубежный туристический поездка . российский союз туриндустрия информировать что некоторые направление популярность тур упасть процент как время кризис год спрос туристический поездка снизиться четверть . ассоциация туроператор россия сообщить лента . что дешеветь рубль делать страна привлекательный как местный иностранный турист . |ngramms ски_пасс ски_пасс ски_пасс ски_пасс ски_пасс пресс_служба новогодний_праздник новогодний_праздник планировать_вернуть _ агентство_сообщить что_ограничение быть_действовать тысяча_рубль тысяча_рубль тысяча_рубль горно_туристический девальвация_рубль туристический_поездка туристический_поездка российский_союз вице_президент ассоциация_туроператор россия___сообщить +1893 |text сбербанк россия договориться покупка процентный пакет акция компания visionlabs заниматься разработка технология распознавание лицо . сайт банка . отмечаться что сделка позволить поддержать развитие проект visionlabs международный рынок европа сша азия . инвестиция visionlabs являться важный шагом сбербанк построение биометрический платформа экосистема сбербанк наряду лицо быть использовать распознавание голос сетчатка глаз биометрический фактор сообщаться релиз . процент акция visionlabs принадлежать основатель венчурный фонд sistema vc . В дальнейший сторона планировать привлечь международный стратегический инвестор состав акционер . В год глава сбербанк заявить что государство стоять серьёзный вызов переход отечественный экономика плоский состояние . ранний стать успешный богатый нужно быть иметь кусок земля нужно быть иметь доступ капитал средство производство нужно ничто . нужно иметь доступ знание иметь хороший навык как гибкость мышление креативность способность коллаборация мочь придумать занятие пояснить . В стать что сбербанк намеренный уволить тысяча сотрудник заменить робот . сбербанк объявлять сокращение процент сотрудник результат переход онлайн банкинг . |ngramms сбербанк_россия договориться_о_покупка процентный_пакет акция_компания заниматься_разработка пресс_релиз сделка_позволить развитие_проект являться_важный быть_использовать сообщаться_в_релиз процент_акция В_дальнейший планировать_привлечь стратегический_инвестор год_глава __заявить отечественный_экономика нужно_быть нужно_быть пояснить_ тысяча_сотрудник +1894 |text низкобюджетный перевозчик лоукостёр создавать аэрофлот стать жёсткий продукт . заявить генеральный директор аэрофлот передавать . пояснить что самолёт лоукостер быть кресло как электричка не_откидываться плотно посадить . жёстко слово новый авиакомпания быть багаж заказать билет рейс пассажир смочь интернет . глава аэрофлот добавить что новый перевозчик создаваться чистый лист не_стать частью крупный российский авиакомпания . основной цель лоукостер являться снижение затрата авиаперелёт что тариф низкобюджетный авиакомпания быть процент сравнение расценка обычный перевозчик . В сообщаться что инвестиция создание аэрофлот лоукостер составить сто миллион доллар год . высказываться предположение что низкобюджетный авиакомпания быть запустить следующий год . предполагаться что полёт лоукостёр быть выполнять самар екатеринбург махачкала краснодар уфа калининград новый уренгой . аэрофлот учреждение лоукостер обдумывать авиакомпания трансаэро ютэйр . |ngramms генеральный_директор _ новый_авиакомпания пассажир_смочь что_новый крупный_российский_авиакомпания основной_цель являться_снижение быть_запустить следующий_год быть_выполнять санкт_петербург +1895 |text роснефть открыть автозаправочный станция московский регион итальянский кафе A cafe быть работать бренд нефтяной компания . сайт роснефть . проект реализоваться рамка сотрудничество hmshost international B . V . дочерний структура компания autogrill S . . A . В год сочи быть открыто восемь концепция A caf автозаправка роснефть . В период проведение xxii зимний олимпийский игра сеть зарекомендовать благодаря качество продукция сервис . роснефть активно развивать ассортимент розничный сеть отличаться высококачественный топливо многостадийный система контроль качество набор дополнительный сервис включать магазин кафе отмечаться релиз . анализ работа сеть кафе столичный регион роснефть совместно hmshost international B . V . выбрать автозаправочный комплекс дальнейший развитие сеть столица регион . роснефть сотрудничать сеть A caf условие франчайзинг . компания autogrill крупный оператор питание автозаправка страна мир преимущественно европа . сеть объединять тысяча кафе . |ngramms нефтяной_компания пресс_релиз international_B international_B дочерний_структура год_в_сочи В_период олимпийский_игра качество_продукция розничный_сеть система_контроль отмечаться_в_релиз работа_сеть развитие_сеть страна_мир +1896 |text премьер румыния понт отклонить предложение президент бэсеска национализировать нпз лукойл плоешти . сообщать . компания не_уходить страна что президент разыграться нерв . давать подходить ум думать нормальный функционирование государство заявить понт . слово румыния есть институт следить ситуация компания иметь стратегический значение . правящий партия румыния лидер являться понт обвинить бэсеска что пытаться вставлять палка колесо правительство пользоваться ситуация завод лукойл пропаганда ход президентский выбор . как заявить дать лукойл быть важный спонсор президентский кампания бэсеска год глава государство не_знать как скрыть . слово посыл правительство лукойл чёткий российский компания оплатить задолженность налог государство соблюдать закон . В время обязательство правительство являться стабильность рабочий место румыния ситуация работник нпз плоешти . бэсеска предложить правительство подготовиться национализация завод лукойл российский компания обвинять нарушение налоговый законодательство не_возобновить производство . назвать неприемлемый заявление российский компания переработка сбыт что выдвинуть румынский дочка лукойл обвинение не_иметь серьёзный основание . подчеркнуть что подобный ситуация возникнуть впервые история компания . быть честной налогоплательщик заявить что компания оказать содействие следствие . обнаружиться злоупотребление виновный быть наказать заключить . У компания петротёл лукойл управлять завод год накопиться убыток размер миллион доллар . румынский полиция провести обыск нпз . прокурор антикоррупционный управление сопровождение вооружённый спецназ провести выемка бухгалтерский документ выставить пост территория . компания приостановить работа завод наложение арест сырьё продукция . остановка производство быть вызвать предписание власть румыния связанный проведение следственный мероприятие вступать сила . |ngramms отклонить_предложение президент_ социал_демократический как_заявить пресс_секретарь социал_демократ быть_важный глава_государство российский_компания российский_компания российский_компания В_то_же_время предложить_правительство вице_президент _ _ не_иметь_серьёзный __подчеркнуть что_подобный что_компания У_компания убыток_в_размер миллион_доллар полиция_провести приостановить_работа остановка_производство быть_вызвать власть_румыния +1897 |text принадлежащий государство пакет акция крупный россия нефтяной компания роснефть мочь быть год . сообщить министр экономический развитие передавать новость . допускать ответить министр вопрос мочь быть приватизировать компания следующий год . добавить что существовать разный риска продажа крупный актив как срок стоимость . цель бюджетный политика давать консервативный оценка конъюнктура наверное резонно консервативный оценка конъюнктура применить цель приватизационный политика что непосредственно связать бюджет поскольку позволять финансировать бюджетный дефицит . глава ведомство отказаться отвечать вопрос считать оправдать продажа госпакет роснефть исходить оценка доллар акция . основный акционер роснефть являться роснефтегаз процент акция . приватизация процент роснефть значиться государственный план период год включительно . согласно подписать прошлое год распоряжение премьера процент акция нк роснефть быть цена применяться ход публичный размещение компания год доллар акция . сообщать что росимущество готовый ускорить приватизация роснефть аэрофлот русгидро быть дать соответствующий поручение президент . глава ведомство дергуновый выступать госдума что совещание состояться первое быть рекомендовать предусмотреть возможность ускорение продажа крупный актив вне зависимость какой цена быть международный рынок . мнение дергуновый приватизация готовый публичный компания как роснефть русгидро алрос аэрофлот . |ngramms принадлежащий_государство пакет_акция крупный_в_россия нефтяной_компания министр_экономический_развитие _ _ _ передавать_риа_новость что_существовать крупный_актив крупный_актив поскольку_позволять глава_ведомство глава_ведомство продажа_госпакет основный_акционер процент_акция процент_акция прошлое_год распоряжение_премьера публичный_размещение что_росимущество дать_соответствующий президент__ вице_премьер быть_рекомендовать предусмотреть_возможность публичный_компания +1898 |text лукойл намеренный участвовать тендер добыча нефть шельф мексика . заявить глава компания петербургский международный экономический форум пмэф передавать корреспондент лента . . В целое готовиться тяжёлый нефтянка добыча тяжёлый нефть офис активно работать . есть быть проект мексиканский правительство быть предлагать . уточнить что идти добыча углеводород глубоководье разработка вязка нефть перспектива год реабилитация действующий месторождение ввод эксплуатация не_смочь выйти плановый объём добыча . уточнить что тендер разработка месторождение глубоководье состояться год . В текущий год лукойл вести переговоры тендер нефтедобыча мексиканский правительство . идти разработка месторождение . быть создать совместный предприятие мексиканский компания российский сторона получить процент уставный капитал рамка сервисный контракт . лукойл крупный российский частный нефтяной компания . башнефть полюс дочерний предприятие башнефть участвовать разработка месторождение имя требс ненецкий автономный округа запас превышать миллион тонна нефть . лукойл год впервые отчитаться международный стандарт финансовый отчётность . |ngramms добыча_нефть глава_компания _ международный_экономический_форум передавать_корреспондент В_целое активно_работать мексиканский_правительство мексиканский_правительство _уточнить добыча_углеводород действующий_месторождение объём_добыча разработка_месторождение разработка_месторождение разработка_месторождение текущий_год быть_создать мексиканский_компания российский_сторона уставный_капитал крупный_российский нефтяной_компания дочерний_предприятие автономный_округа миллион_тонна_нефть международный_стандарт финансовый_отчётность +1899 |text назначить должность директор исследование разработка компания лаборатория . сообщение компания . С год быть исполнять обязанность должность . продолжить контролировать направление работать развитие технология продуктовый стратегия компания . быть руководить процесс разработка решение сервис инициировать поддерживать исследовательский деятельность . прийти лаборатория год качество вирусный аналитик спустя год занять должность старший разработчик работать создание эмулятор эвристический движок . впоследствии стать исполнять обязанность руководитель управление исследование угроза . назначение должность занимать пост исполнять обязанность директор исследование разработка заместитель . окончить московский государственный университет электроника математика специальность вычислительный техника . |ngramms _ _ _ год_он_быть исполнять_обязанность исполнять_обязанность исполнять_обязанность продолжить_контролировать стратегия_компания разработка_решение занять_должность впоследствии_стать руководитель_управление занимать_пост московский_государственный +1900 |text профсоюз гражданский авиация предложить отказаться найм иностранный командир воздушный судно квс российский компания . писать газета коммерсантъ ссылка письмо глава координационный совет профсоюз . В письмо направить трехсторонний комиссия регулирование отношение профсоюз предлагать приостановить действие постановление правительство найм иностранный пилот российский авиакомпания вступить сила . предложение аргументироваться ухудшение положение отрасль . разработка постановление учитываться потенциальный дефицит квс прогнозировать рост авиаперевозка процент год . год вырасти процент . В дальнейший прогнозироваться снижение рост процент . источник издание российский авиакомпания подтвердить что фон резкий спад турпоток многие авиаперевозчик значительно сократить чартерный программа зимний сезон освободить лётный состав . подсчёт профсоюз отрасль тысяча второе пилот тысяча иметь налёт тысяча часы . должность квс достаточно тысяча часы . В результат место квс претендовать семь человек что отсутствие дефицит . источник газета различный авиакомпания сообщить что потребность иностранный пилот есть . что поддерживать необходимый конкуренция случай рост перевозка отрасль возникнуть кадровый голод . закон найм иностранный квс позволять компания ближний год нанимать иностранец год . росавиация распределить квота . аэрофлот разрешить иностранный квс трансаэро airbridgecargo . авиакомпания ютэйр мочь пригласить человек выполнение коммерческий перевозка иностранец выполнение авиационный работа . квота семь человек получить вим когалымавиа . якутия выделить квота иностранный пилот саратовский авиалиния иностранец мочь нанять авиаменеджментгруп . |ngramms гражданский_авиация воздушный_судно российский_компания писать_газета письмо_глава _ В_письмо социально_трудовой приостановить_действие постановление_правительство иностранный_пилот иностранный_пилот иностранный_пилот российский_авиакомпания российский_авиакомпания вступить_в_сила прогнозировать_рост В_дальнейший источник_издание что_на_фон многие_авиаперевозчик значительно_сократить тысяча_часы тысяча_часы В_результат семь_человек источник_газета позволять_компания коммерческий_перевозка человек_получить выделить_квота +1901 |text газпром середина планировать начать строительство морской часть газопровод южный поток . заявить член правление компания сообщать новость . что газопровод быть ввести эксплуатация установленный срок . добавить что строительство российский территория идти отставание график . строительство морской часть газопровод планироваться начать текущий год слово процесс сместиться месяц . ес выступать строительство южный поток поскольку нынешний вид противоречить третье энергопакет еврокомиссия . В время северный поток снабжающий германия российский газ дно балтийский море являться исключение правило ограничительный мера не_подпадать . ес требовать член соблюдение норма третье энергопакет согласно добывать компания мочь владеть одновременно распределительный транспортный сеть . компания обязать евросоюз актив передать право управление трубопровод независимый компания ес . трубопровод находиться управление иностранный компания ждать дополнительный процедура сертификация . южный поток газопровод мощность миллиард кубометр пройти акватория чёрный море страна южный центральный европа . предполагаться что транспортировка газа начаться конец год . полный проектный мощность газопровод выйти . пройти территория болгария сербия венгрия австрия италия словения . О желание участвовать проект заявлять македония . |ngramms планировать_начать морской_часть морской_часть южный_поток южный_поток южный_поток член_правление компания__ быть_ввести установленный_срок планироваться_начать текущий_год В_то_же_время северный_поток российский_газ компания_обязать иностранный_компания газопровод_мощность миллиард_кубометр чёрный_море центральный_европа начаться_в_конец проектный_мощность участвовать_в_проект +1902 |text контролировать акционер компания финансовый группа будущее group бенефициар являться минц объявить ценовый диапазон публичный размещение ipo акция будущее московский биржа . соответствующий информация содержаться сообщение организация . диапазон составлять рубль рубль бумага . В соответствие рыночный капитализация уровень миллиард рубль . что group предложить продажа процент финансовый группа будущее рамка ipo . оценка генеральный директор ук капиталъ сосковый установленный ценовый диапазон вполне нормальный исходить оценка группа . важный что продукт рынок являться уникальный ранний бумага не_быть понятный причина акционирование нпф проходить недавно . фонд скорее сокращаться расти сделка слияние . интерес бумага будущее мочь проявить корпоративный структура иметь собственный пенсионный программа считать сосковый . мнение бумага компания есть хороший потенциал рост капитализация . актив ориентировать инвестиция сектор офисный недвижимость лежать . рано поздно начать растить . нпф готовый побороться остаться портфель молчун составлять триллион рубль будущее иметь неплохой шанс взять большой часть сумма . подчеркнуть что эмитент декларировать хороший дивиденд процент прибыть что влиять привлекательность актив . основный риск инвестировать акция будущее сосковый называть неопределённость сфера добровольный пенсионный накопление . вопрос смочь фонд будущее успешно работать новый полянин добровольный накопление создавать правительство банк россия сосковый . финансовый группа будущее крупный финансовый структура управлять пенсионный актив россия . объесть актив управление группа составлять миллиард рубль миллиард рубль пенсионный накопление миллиард пенсионный резерв . |ngramms акционер_компания финансовый_группа финансовый_группа финансовый_группа публичный_размещение информация_содержаться рыночный_капитализация миллиард_рубль миллиард_рубль миллиард_рубль генеральный_директор иметь_собственный бумага_компания есть_хороший рост_капитализация триллион_рубль большой_часть банк_россия актив_в_россия +1903 |text глава ржд попросить вмешаться конфликт компания федеральный антимонопольный служба . писать газета коммерсантъ ссылка оказаться распоряжение издание послание глава правительство . послание датировать год . В немой глава ржд требовать правительство разрешить спорый антимонопольщик отозвать штраф миллиард рубль наложить компания год . письмо быть написать как апелляционный суд прошлое год встать сторона фас . поручить аркадия глава фас разобраться ситуация . сведение издание потребовать минтранс минэкономики фас представить предложение . подробность коммерсантъ не_сообщать . письмо что действие ржд привести противостояние фас стать результат реформа отрасль инициировать правительство . глава компания потребовать правительство вернуть тысяча вагон передать дочерний структура возместить убыток . конфликт ржд фас продолжаться конец год . монополия быть обязать удовлетворить заявка грузоотправитель цена быть частное оператор . передача тысяча вагон дочерний структура федеральный грузовой компания грузовой компания ржд стать реж предоставлять вагон прейскурант отказывать клиент . жалоба грузоотправитель фас ведомство счесть ржд виновный злоупотребление доминировать положение рынок . В фас указать что ржд быть предписать создание дочерний структура соблюдать право грузоотправитель равный условие время как количество удовлетворить заявка крупный компания снизиться процент средний процент . итог разбирательство стать штраф ржд миллиард рубль . как отмечать коммерсантъ время реформа ржд последствие передача вагон дочерний компания не_быть проработать полностью . издание обратить внимание личный конфликт . В прошлое год глава фас неоднократно критиковать ржд препятствие развитие конкуренция называть компания типично советский монополия . |ngramms глава_ржд глава_ржд _ _ _ премьер_министр федеральный_антимонопольный_служба писать_газета оказаться_в_распоряжение глава_правительство В_немой правительство_разрешить миллиард_рубль миллиард_рубль быть_написать апелляционный_суд прошлое_год сторона_фас _поручить вице_премьер аркадия_ глава_фас глава_фас что_действие глава_компания тысяча_вагон тысяча_вагон дочерний_структура дочерний_структура дочерний_структура быть_обязать частное_оператор грузовой_компания грузовой_компания ржд_стать что_ржд крупный_компания стать_штраф как_отмечать дочерний_компания _и_ В_прошлое_год +1904 |text гостиничный фонд ростовский область готовить приём гость чемпионат мир футбол год заявить ход рабочий поездка донский столица заместитель губернатор регион . фифа устанавливать определённый условие номерной фонд клиентский группа быть подготовить минимум номер . сегодняшний регион готовый номер цель . В стадия согласование договор гостиница номер . образ подписание договор смочь предоставить дать категория гость номер что превышать минимальный требование фифа рассказать . болельщик слово быть подготовить тысяча номер . количество номер ростовский область составлять тысяча . выполнение требование фифа рамка федеральный областной программа чм регион реализоваться инвестпроект строительство гостиница находиться разный стадия готовность . В возобновить строительство гостиница плаз ростов включить областной федеральный программа подготовка проведение чемпионат . работа быть приостановить год . дальнейший реализация проект правительство ростовский область совместно инвестор быть проработать вопрос внешэкономбанк возобновление кредитный линия завершение строительство гостиничный комплекс . В итог кредитный линия превышать миллиард рубль . В рамка подготовка чм регион реализоваться инвестпроект строительство отель . гостиница эрмитаж меркура работать год . текущий год функционировать номер гостиница доломан пройти соответствующий классификация . начать работа номерной фонд гостиница доломан планироваться конец год . В год быть запустить гостиница рэдиссон блю ростов . губернатор ростовский область голубеть недавний совещание подготовка чм отмечать что власть регион являться принципиальный завершать часть подготовка . быть чётко понятно невыполненный задача мочь быть принцип . есть правило устанавливать фифа обязать успеть сделать что запланировать подчёркивать . быть гость чемпионат мир футбол период проведение матч год . |ngramms ростовский_область ростовский_область ростовский_область ростовский_область заявить_в_ход губернатор_регион _ _ дать_категория что_превышать ростов_на_дону ростов_на_дону строительство_гостиница проведение_чемпионат быть_приостановить реализация_проект кредитный_линия кредитный_линия завершение_строительство В_итог миллиард_рубль В_рамка текущий_год начать_работа быть_запустить власть_регион +1905 |text мтс предложить сократить срок эмбарго строительство сеть стандарт lte краснодарский край оператор не_являться партнёр олимпийский игра сочи писать коммерсантъ . эмбарго предлагаться отменить конец год как действовать год . мтс направить соответствующий письмо минсвязи . компания отмечать что являться лидер количество абонент край ограничение строительство новый сеть рассматривать как несправедливый . как передавать издание комиссия радиочастота гкрч мочь рассмотреть сокращение срок эмбарго решение быть отрицательный поскольку выступить роскомнадзор . решение установить федеральный закон что гкрч мочь не_оказаться полномочие отменить . услуга ход олимпиада мочь оказывать мегафон ростелеком являться генеральный партнёр . В компания решение эмбарго конец год считать технический ошибка поскольку спортивный мероприятие не_быть длиться . В время мегафон заявлять что компания вложить контракт игра строительство олимпийский инфраструктура миллиард рубль . В изменение правило игра считать нелегитимный писать ведомость . В минувший год сообщаться что сотовый оператор не_являться спонсор олимпиада столкнуться трудность размещение базовый станция сочи . государственный орган якобы различный предлог запрещать компания мобильный размещать вышка . мегафон ростелеком стать генеральный партнёр олимпиада год . компания обязаться выплатить миллион доллар половина сумма оператор предоставить деньга половина вид услуга . мегафон быть предоставлять участник рынок сотовый ростелеком фиксировать . |ngramms предложить_сократить срок_эмбарго срок_эмбарго краснодарский_край олимпийский_игра компания_отмечать что_являться количество_абонент новый_сеть рассматривать_как как_передавать решение_быть федеральный_закон генеральный_партнёр генеральный_партнёр спортивный_мероприятие В_то_же_время что_компания строительство_олимпийский миллиард_рубль правило_игра минувший_год сотовый_оператор базовый_станция государственный_орган миллион_доллар быть_предоставлять участник_рынок +1906 |text В открыться ikea . сообщить агентство востоктелеинформ . информация издание сиб . фм открытый мочь нарушать право товарный марка ikea . В российский представительство ikea подчеркнуть что компания не_открывать магазин . В интервью сиб . фм заместитель министр промышленность торговля бурятия пояснить что торговать мебель производство ikea приобретать новосибирский отделение компания . опровергнуть наличие конфликт использование торговый марка ikea . В ikea что право использование торговый марка икеа россия принадлежать ооо икеа дом . открытие новый магазин ikea рф рамка развитие сеть . россия гипермаркетовый ikea . компания выйти российский рынок год . |ngramms улан_удэ улан_удэ улан_удэ улан_удэ сообщить_агентство марка_ikea пресс_служба российский_представительство что_компания В_интервью заместитель_министр промышленность_и_торговля __пояснить новосибирский_отделение _опровергнуть торговый_марка торговый_марка В_ikea новый_магазин развитие_сеть +1907 |text арбитражный суд москва удовлетворить заявление компания кск признание банкрот туроператор трансаэро тур . решение суд . иск быть подать . В отношение туроператор суд открыть конкурсный производство срок месяц . требование кск размер тысяча рубль быть включить очередь реестр кредитор трансаэро тур . конкурсный управлять утвердить некоммерческий партнерство московский саморегулируемый организация профессиональный арбитражный управлять . как отмечать год гендиректор трансаэро тур сообщать что ситуация авиакомпания трансаэро не_сказаться деятельность туроператор поскольку являться самостоятельный юридический лицо не_связать перевозчик . что туркомпания одновременно сотрудничать авиаперевозчик . российский агентство правовой судебный информация рапси должник настоящее время принадлежать офшор skystream corporation британский виргинский остров . трансаэро являться объём перевозка российский авиакомпания обанкротиться высокий нагрузка миллиард рубль включая лизинговый платёж миллиард задолженность банка фон падение спрос перелёт . перевозчик перейти операционный управление аэрофлот начало год росавиация аннулировать сертификат эксплуатант . трансаэро тур быть создать год основатель трансаэро плешаковы . компания специализироваться туристический услуга продажа авиабилет грузовой перевозка . |ngramms арбитражный_суд_москва удовлетворить_заявление трансаэро_тур трансаэро_тур трансаэро_тур трансаэро_тур решение_суд быть_подать В_отношение тысяча_рубль очередь_реестр _ _ как_отмечать юридический_лицо российский_авиакомпания _нагрузка миллиард_рубль лизинговый_платёж задолженность_банка операционный_управление росавиация_аннулировать сертификат_эксплуатант _и_ грузовой_перевозка +1908 |text истекать срок государственный контракт проведение всероссийский государственный лотерея победа . сообщение оператор лотерея . контракт быть предусмотреть оказание услуга проведение тиражный бестиражный лотерея . цель организация дополнительный источник финансирование мероприятие рамка реализация стратегия социальный развитие вооружённый сила рф . помимо постоянный основа оказываться финансовый поддержка программа досааф направить популяризация технический вид спорт возрождение патриотический традиция страна . государственный лотерея победа выступать генеральный партнёр массовый молодёжный мероприятие оборонный общество патриотический автопробег игра заря . В год быть дать старт совместный оборонный общество программа бумеранг путёвка жизнь направить постинтернатный сопровождение выпускник воспитанник детский дом сиротский учреждение . благодаря программа ребёнок различный регион страна получить массовый специальность участвовать патриотический спортивный мероприятие . время проведение гослотерея победа участник превысить миллион человек . развитие получить совместный проект известный бренд золотой ключ лотерея железный дорога . состояться розыгрыш тиражный лотерея приурочить победа великий отечественный война разработать партнерство всероссийский общество ветеран . призовой фонд ветеранский лотерея превысить миллион рубль имя победитель быть озвучить ближний время . победитель лотерея победа мочь обращаться выигрыш месяц место приобретение билет согласно правило проведение иной лотерея зависимость размер выигрыш сообщать государственный лотерея победа . выигрыш месяц можно получить офис ключевой партнёр зао интерлот ооо генеральный оператор лотерея ооо распространитель государственный лотерея офис оператор лотерея победа . благодарить партнёр год успешный плодотворный сотрудничество участник лотерея проявить доверие отмечаться официальный сообщение оператор . сообщаться что причина закрытие лотерея стать бюрократический проволочка истекать срок пятилетний государственный контракт проведение всероссийский лотерея продлить официально можно внести поправка соответствующий распоряжение правительство рф касаться лотерейный бизнес . |ngramms контракт_на_проведение контракт_на_проведение государственный_лотерея государственный_лотерея государственный_лотерея государственный_лотерея оператор_лотерея оператор_лотерея оператор_лотерея быть_предусмотреть финансирование_мероприятие реализация_стратегия вооружённый_сила постоянный_основа финансовый_поддержка военно_прикладной вид_спорт генеральный_партнёр военно_спортивный год_быть регион_страна военно_технический спортивный_мероприятие миллион_человек совместный_проект известный_бренд железный_дорога отечественный_война миллион_рубль победитель_быть место_приобретение пресс_служба ключевой_партнёр официальный_сообщение что_причина соответствующий_распоряжение правительство_рф +1909 |text якутия не_намерить продавать принадлежащий процент акция крупный российский алмазодобытчик компания алрос ход планировать приватизация . сообщать rambler service ссылка заявление представитель республиканский правительство . глава министерство имущественный земельный отношение якутия заявить что пакет акция компания остаться собственность улус муниципальный образование республика отмечать агентство . глава рсппа заявить что подготовить проект приказ приватизация башнефть алроса втб . министр финансы силуановый сообщить что правительство россия рассматривать вопрос приватизация процентный пакет акция алмазодобывающий компания год . доход приватизация крупный компания уровень миллиард рубль уточнить министр экономический развитие . чиновник называть госкомпания приватизация правительство рассматривать очередь роснефть башнефть алрос совкомфлот втб . алрос российский компания являться крупный мир алмазодобытчик . доля холдинг приходиться четверть мировой производство алмаз процент российский . основный деятельность сосредоточить якутия архангельский область африка . процент акция алрос принадлежать россия лицо росимущество процент республика саха процент якутский улус владелец акция являться фонд lazard процент oppenheimer процент capital group процент . процент акция свободный обращение free float составлять . |ngramms процент_акция процент_акция процент_акция крупный_российский планировать_приватизация rambler_news_service заявление_представитель глава_министерство __заявить __заявить пакет_акция_компания подготовить_проект министр_финансы правительство_россия пакет_акция миллиард_рубль министр_экономический_развитие _ правительство_рассматривать российский_компания являться_один_из_крупный мировой_производство основный_деятельность владелец_акция свободный_обращение +1910 |text чиновник российский правительство поддержать идея размещение четверть акция совкомфлот биржа писать ведомость номер . В кабинет министр росимущество согласиться аргумент менеджмент пароходство считать что ipo сша принести наибольший доходность . представитель государство включая президент настаивать что компания находиться план приватизация продавать акция отечественный биржа . руководство совкомфлот выступить размещение часть акция москва . менеджмент обращать внимание что сша торговаться бумага большинство судоходный компания соответственно спрос акция структура сфера деятельность большой площадка . согласно оценка минэкономразвития процент акция компания стоить миллиард рубль год доля собираться миллиард рубль . когда состояться продажа акция пора не_определить . текущий план приватизация четверть акция совкомфлот быть год . конец год правительство собираться процент компания сохранить блокпакет . первоначально планироваться что государство полностью выйти капитал пароходство . совкомфлот специализироваться перевозка нефть нефтепродукт сжидить газа . флот компания насчитывать судно различный тип дедвейт миллион тонна . |ngramms российский_правительство поддержать_идея четверть_акция четверть_акция нью_йоркский что_ipo президент__ что_компания план_приватизация план_приватизация часть_акция обращать_внимание акция_структура сфера_деятельность согласно_оценка процент_акция_компания миллиард_рубль миллиард_рубль когда_состояться продажа_акция год_правительство первоначально_планироваться что_государство сжидить_газа компания_насчитывать судно_различный миллион_тонна +1911 |text мировой лидер разработка решение область распознавание лицо ntechlab объявить завершение год работа проект findface . уникальный мир сервис поиск человек фотография крупный российский социальный сеть вконтакте . стратегический решение позволить компания сосредоточить ресурс масштабный инновационный проект государство бизнес . С запуск сервис findface . стать громкий технологический открытие мир область лицевой биометрия показать небывалый точность скорость работа огромный массив дать . ntechlab проект долгий время являться визитный карточка компания демонстратор широкий возможность технология findface неоднократно признаваться хороший мир итог авторитетный тестирование организовать nist iarpa университет штат огайо вашингтон . сегодняшний ntechlab сто партнёр клиент двадцать страна мир турция бразилия федеральный региональный государственный организация крупный финансовый институт торговый центр ювелирный продуктовый сеть гостиница казино многие . Я рад что удаться сделать выдающийся проект год не_терять популярность вызвать интерес россия мир . С помощь findface . человек знакомиться находить давний пропасть вести правонарушитель отмечать основательntechlab . ресурс компания сосредоточить глобальный проект сфера безопасность розничный торговля . В решение завершить работа findface . . онлайн сервис findface . быть запустить год месяц работа набрать миллион активный пользователь попасть рекомендовать приложение appstore googleplay . секрет успех проект стать уникальный алгоритм распознавание лицо лежать основа сервис . опередить google алгоритм findface требоваться полсекунды узнать человек база полмиллиард лицо точность . ntechlab мировой лидер скорость точность распознавание лицо . решение компания востребовать сфера общественный корпоративный безопасность розничный торговля финансовый сектор индустрия развлечение гостеприимство . видеоаналитик ntechlab успеть отлично зарекомендовать объект социальный транспортный инфраструктура развлекательный спортивный мероприятие . совместно департамент информационный технология москва компания реализовать уникальный мировой масштаб проект подключение тысяча . камера городской видеонаблюдение система распознавание лицо . интеграция технология позволить правоохранительный орган вывести новый уровень процесс оперативный поиск нарушитель . В год ntechlab привлечь инвестиция госкорпорация ростёха инвестиционный фонд dimension fund variable capital investment находиться управление vb partners . |ngramms мировой_лидер крупный_российский социальный_сеть позволить_компания долгий_время страна_мир торговый_центр удаться_сделать С_помощь _ проект_в_сфера розничный_торговля розничный_торговля быть_запустить активный_пользователь корпоративный_безопасность финансовый_сектор объект_социальный транспортный_инфраструктура спортивный_мероприятие информационный_технология компания_реализовать технология_позволить правоохранительный_орган новый_уровень привлечь_инвестиция инвестиционный_фонд +1912 |text газпром ближний время объявить принципиально новый проект сжижение природный газа россия . заявить председатель правление газовый концерн передавать интерфакс . не_уточнить что быть спг проект пояснить что публика немой ничто не_знать . слово глава газпром следовать что принципиально новый проект не_подразумеваться владивосток спг рамка год дальний восток планироваться построить завод сжижение газа . В настоящее время газпром вести реализация проект область спг . сахалин российский компания осваивать shell mitsubishi mitsui спг поставляться азия . помимо строительство спг завод владивосток газпром собираться сжижать газ штокманский месторождение разработка не_начаться . газпром прошлое год договориться крупный россия частное производитель газа новатэк создание совместный предприятие газовый сфера . помочь повысить производство спг ямал быть способствовать освоение месторождение полуостров гыдать ямало ненецкий ао . параллельно газпром осваивать новое путь поставка спг прошлое год концерн впервые доставить норвежский спг северный морской путь . маршрут процент сокращать время затратить проход северный европа азия сравнение южный маршрут суэцкий панамский канал . В настоящее время газпром располагать монополия экспорт газа россия . власть страна рассматривать возможность либерализация экспорт спг . новатэк договориться поставка спг ямал британский bp . что правительство либерализовать экспорт спг независимый производитель газа есть новатэк роснефть договориться продажа топливо иностранный партнёр . |ngramms природный_газа председатель_правление газовый_концерн _ _не_уточнить что_это_быть ничто_не_знать слово_глава новый_проект дальний_восток планироваться_построить В_настоящее_время В_настоящее_время российский_компания крупный_в_россия производитель_газа совместный_предприятие помочь_повысить производство_спг быть_способствовать освоение_месторождение поставка_спг поставка_спг прошлое_год северный_морской северо_восточный власть_страна рассматривать_возможность экспорт_спг экспорт_спг британский_bp вице_премьер что_правительство независимый_производитель договориться_о_продажа иностранный_партнёр +1913 |text немецкий автопроизводитель porsche решение выпуск первое электромобиль . сообщать bloomberg . стоимость проект оцениваться миллиард евро . В компания обещать что новый автомобиль быть разгоняться скорость километр час секунда . мощность двигатель составить лошадиный сила . автомобиль смочь проехать перезарядка километр . зарядить батарея процент потребоваться минута . автопроизводитель рассчитывать что стремительно меняться мир porsche сохранить лидировать позиция благодаря новый электромобиль . агентство отмечать что помощь создание новое авто концерн volkswagen ag материнский компания принадлежать porsche рассчитывать смягчить последствие дизельный скандал автопроизводитель потерять часть европейский рынок . производиться электромобиль быть завод недалеко компания штутгарт . что продажа начаться конец десятилетие . концепт кара mission E быть основать электромобиль porsche представить международный автосалон франкфурт . В власть сша уличить volkswagen что концерн устанавливать автомобиль дизельный двигатель хитроумный позволять подтасовывать результат экологический тест уровень вредный вещество выхлоп . история привести отставка глава vw винтеркорный некоторый . volkswagen ag объявить что вынужденный снизить запланировать ежегодный инвестиция миллиард евро устранение последствие происшествие отзыв машина выплата штраф . volkswagen прийтись отозвать проверить разный оценка миллион миллион автомобиль мир . |ngramms немецкий_автопроизводитель стоимость_проект миллиард_евро миллиард_евро В_компания новый_автомобиль километр_в_час лидировать_позиция агентство_отмечать что_с_помощь создание_новое концерн_volkswagen дизельный_скандал европейский_рынок штаб_квартира что_продажа власть_сша дизельный_двигатель вредный_вещество отставка_глава топ_менеджер что_вынужденный отзыв_машина разный_оценка миллион_автомобиль +1914 |text В год логистический компания vg cargo gmbh принадлежащий российский бизнесмен девелоперу планировать обработать тысяча тонна авиагруз что процент большой год . лента . заявить удодовый . слово настоящее время vg cargo gmbh обрабатывать большой груз год что позволять компания входить лидер европейский рынок обработка авиагруз сегмент . как многие отраслевой эксперт рынок грузоперевозка европа год показывать высокий динамик развитие текущий сезон . В мнение директор международный ассоциация воздушный транспорт де жюньяк спрос грузовой авиаперевозка год подняться процент . слово удодовый vg cargo gmbh находиться общеевропейский тренд предоставлять комплексный услуга обработка хранение таможенный оформление безопасность авиагруз обслуживание почтовый отправление . сегодняшний компания являться монополист обработка авиагруз аэропорт активно работать крупный немецкий аэропорт . аэропорт расположить километр франкфурт люксембург . известный как грузовой пассажирский рейс выступать база крупный бюджетный авиакомпания европа ryanair . аэропорт работать круглосуточно что являться редкость европейский грузовой авиатерминал давать vg cargo значительный конкурентный преимущество счёт ускорение обработка . удодовый что развитие компания помогать выбрать стратегия базироваться развитие собственный складской мощность инвестиция современный система безопасность . склад быть открытый год девять год площадь складской помещение составить тысяча квадратный метр . расшириться штат сотрудник семь сто человек . В год vg cargo получить сертификат соответствие международный стандарт безопасность tapa transported asset protection association иметь право работать дорогостоящий груз . компания обладать необходимый разрешительный документ прохождение груз особый режим немецкий таможня сертификат авторизовать экономический оператор аэо . родина известность принести проект строительство торговый комплекс как москва регион . В галерея премиум класс гимень якиманка . В курский область удодовый год развивать импортозамещающий производство шампиньон компания грибной радуга производить тысяча тонна грибов конец год объесть продукция достигнуть тысяча тонна год . В год кубань открыться возводить удодовый современный бальнеологический курорт термы смочь тысяча посетитель круглый год . |ngramms логистический_компания российский_бизнесмен _ _ тысяча_тонна тысяча_тонна тысяча_тонна процент_большой что_позволять европейский_рынок показывать_высокий международный_ассоциация воздушный_транспорт экспресс_посылка компания_являться франкфурт_хан франкфурт_хан франкфурт_на_майн бюджетный_авиакомпания что_являться конкурентный_преимущество современный_система быть_открытый девять_год тысяча_квадратный_метр штат_сотрудник сто_человек получить_сертификат международный_стандарт иметь_право проект_строительство торговый_комплекс год_объесть +1915 |text В нынешний сезон подмосковный клубника появиться прилавок неделя поздний обычно . телеканал рассказать директор подмосковный сельскохозяйственный предприятие совхоз имя . слово связать нынешний неблагоприятный погода майский заморозка прошлое год клубника цвести нынешний куст не_появиться . В сбор ягода запланировать конец как обычно начинаться десять месяц . заморозок год процент маленький урожай обычно . днём директор гидрометцентр россия сообщить что москва быть тёплый температурный фон норма выше . что погода быть неоднородный длительный период холод не_ожидаться . В год победа стать холодное послевоенный история температура воздух столица подняться градус выше нуль сообщать гидрометцентр . |ngramms нынешний_сезон неделя_поздний рассказать_директор имя_ _ процент_маленький россия___сообщить +1916 |text месяц год экспорт автомобиль сша увеличиться девять процент год аналогичный показатель совокупность составить процент . образ как писать york times экспорт стать играть важный роль американский автопроизводитель традиционно быть ориентировать удовлетворение внутренний спрос . итог год американский завод поставить рубеж миллион автомобиль грузовик показатель мочь достигнуть миллион . сравнение внутренний рынок отправляться миллион авто . издание обращать внимание что увеличиться спрос выгода получать собственно американский компания производитель авто европа азия разместить завод сша . В статистика писать york times не_войти автомобиль произвести ford gm chrysler американский компания предел соединить штат . nissan планировать отправить рубеж процент автомобиль произвести сша . В honda очередь заявить что экспортировать сша большой авто ввезти крупный экономика мир япония . основный рынок сбыт автопроизводитель сша как ранний являться соседний страна канада мексика . американский автомобиль активно раскупаться регион . год экспорт авто саудовский аравия увеличиться китай . газета связывать бурный рост экспорт увеличение конкурентоспособность американский товар рецессия поскольку затрата производство сша стать маленький . В очередь касаться снижение стоимость рабочий сила . производство сказаться сокращение трата энергия что связать понижение цена газ сланцевый бум . |ngramms экспорт_автомобиль девять_процент аналогичный_показатель как_писать важный_роль американский_автопроизводитель миллион_автомобиль обращать_внимание американский_компания американский_компания завод_в_сша соединить_штат nissan_планировать рынок_сбыт год_экспорт рост_экспорт производство_в_сша стать_маленький В_один_очередь снижение_стоимость рабочий_сила что_связать цена_на_газ +1917 |text крупный мир производитель алмаз ак алрос итог прошлое год получить чистый убыток сумма миллиард рубль сайт компания . В алрос объяснить отрицательный финансовый результат провести переоценка часть кредитный портфель номинировать доллар вследствие девальвация рубль год . совокупный убыток группа курсовой разница алрос оценить миллиард рубль следовать отчёт . компания удаться увеличить выручка процент миллиард рубль показатель ebitda прибыль вычет процент налог износ процент миллиард рубль маржа ebitda увеличиться процент . чистый денежный поток алрос вырасти прошлое год миллиард рубль результат ослабление национальный российский валюта увеличение доход операционный деятельность сокращение капитальный вложение снизиться процент . чистый долг компания год вырасти процент составить конец миллиард рубль . продажа алмаз компания год увеличиться процент миллион карат добыча снизиться процент миллион карат . средний цена продажа составить доллар карат . алрос российский компания являться крупный мир алмазодобытчик . доля холдинг приходиться четверть мировой производство алмаз процент российский . основный деятельность сосредоточить якутия архангельский область африка . |ngramms прошлое_год прошлое_год получить_чистый миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль пресс_релиз финансовый_результат кредитный_портфель девальвация_рубль увеличить_выручка показатель_ebitda денежный_поток российский_валюта операционный_деятельность капитальный_вложение чистый_долг средний_цена продажа_составить российский_компания являться_один_из_крупный мировой_производство основный_деятельность +1918 |text ирландский низкобюджетный авиакомпания ryanair планировать заказать boeing самолёт сумма миллиард доллар . писать irish independent не_указывать источник информация . сравнение капитализация авиакомпания биржа nasdaq составлять миллиард доллар . дать сделка скорый время подтвердить президент сша ирландия энд кенни . ryanair планировать обновить авиапарк помощь купить boeing . авиалайнер быть использоваться новый маршрут . авиакомпания вести переговоры аэропорт получение разрешение полёт . В авиапарка ryanair есть самолёт boeing каталожный стоимость составлять миллион доллар . планировать перевозчик покупать авиалайнер модель самолёт неясно . судить стоимость заказ ryanair мочь договориться покупка миллион доллар max миллион доллар . ryanair являться крупный европа низкобюджетный авиакомпания . итог финансовый год завершиться конец компания рассчитывать перевезти миллион пассажир . размещение заказ boeing совпасть время срыв сделка покупка aer lingus ryanair решить сконцентрироваться развитие собственный маршрут . покупка не_состояться запрет еврокомиссия решить что слияние привести ущемление конкуренция повышение цена . |ngramms миллиард_доллар миллиард_доллар источник_информация скорый_время президент_сша премьер_министр авиалайнер_быть самолёт_boeing миллион_доллар миллион_доллар миллион_доллар договориться_о_покупка являться_крупный финансовый_год компания_рассчитывать миллион_пассажир повышение_цена +1919 |text бывший глава башнефть урал оспорить законность возбудить уголовный . как сообщать новость соответствующий документ поступить басманный суд москва начало месяц . дата слушание не_назначить . обвинять хищение деньга продажа год башнефть структура афк система . следствие полагать что акция быть купить заведомо занизить цена скидка миллион доллар . быть арестовать крупный предприниматель следствие подозревать причастность сделка . обвинение хищение акция башнефть быть заключить домашний арест руководитель основной акционер афк система . запретить общение исключение следователь адвокат прогулка использование средство . акция система башнефть резко упасть цена фон новость арест . В башнефть московский биржа подешеветь процент . В итог фондовый индекс российский рынок завершить сессия минус . |ngramms бывший_глава сообщать_риа_новость соответствующий_документ суд_москва быть_купить миллион_доллар быть_арестовать крупный_предприниматель _ _ хищение_акция быть_заключить основной_акционер резко_упасть фон_новость В_итог российский_рынок +1920 |text renault ожидать что автоваз стать прибыльный конец год . как сообщать заявить глава французский компания гон . оптимизм объяснить что возлагать большой надежда новое глава российский предприятие бу андерссон . гон уточнить что renault рассчитывать успех марка lada слово стать бренд номер россия соседний страна . гендиректор renault не_исключить что lada быть поставляться западный европа поздний . нужно заложить основа лидерство россия ... быть процент рынок гон . renault итог год получить миллион евро убыток автоваз . компания сообщить годовой отчёт . сравнение год производитель статья получить прибыль миллион доллар . гон объяснить убыток сокращение рынок . что настоящее время большой средство вкладываться завод тольятти . В середина год новый президент автоваз стать швед бу андерссон возглавлять газ . прежний место работа прославиться умение снижать расход . андерссон итог удаться сделать газ прибыльный . В автоваз приход взяться урезание издержка завод объявить намерение сократить тысяча человек конец год . автоваз год показывать прибыль позитивный результат удаться достигать преимущественно счёт поддержка государство . как писать российский прибыль завод формироваться основное благодаря переоценка беспроцентный госкредит . В год предприятие перестать отражать бумажный прибыль фон сокращение продажа автоваз итог первое полугодие потерять миллиард рубль международный стандарт финансовый отчётность . |ngramms как_сообщать заявить_глава французский_компания глава_российский бу_андерссон бу_андерссон марка_lada быть_поставляться процент_рынок миллион_евро годовой_отчёт получить_прибыль миллион_доллар объяснить_убыток сокращение_рынок В_середина новый_президент место_работа топ_менеджер удаться_сделать объявить_о_намерение тысяча_человек год_показывать результат_удаться поддержка_государство как_писать предприятие_перестать сокращение_продажа первое_полугодие миллиард_рубль международный_стандарт финансовый_отчётность +1921 |text роснефть опубликовать дать производственный показатель год . поступить редакция лента . . В прошлое год добыча углеводород компания составить миллион тонна нефтяной эквивалент суточный добыча составить миллион баррель что обеспечить плановый рост . В компания отмечать что показатель удаться достигнуть счёт наращивание программа бурение оптимизация режим работа скважина применение комплекс современный технология включая горизонтальный бурение гидроразрыв пласт грп зарезка ствол одновременно раздельный добыча углеводород обработка призабойный зона пласт . В квартал год добыча жидкий углеводород компания увеличиться процент отношение предыдущий квартал составить миллион тонна . рост проходка эксплуатационный бурение вырасти процент год увеличение доля выполнение работа собственный сервисный мощность процент . количество горизонтальный скважина ввести эксплуатация год вырасти единица что процент большой итог предыдущий год . показатель составить процент количество скважина ввести эксплуатация отчётный период . В сообщение роснефть отмечаться что рост количество горизонтальный скважина грп закончить строительство составлять процент . добыча газа компания итог год вырасти процент миллиард кубометр . рост объём добыча газа обеспечить основное увеличение поставка подготовить газа единый система газоснабжение ванкорский месторождение где год закончить строительство магистральный газопровод ванкор хальмерпаютинский месторождение начало добыча газа хадырьяхинский лицензионный участок сибнефтегаз год ввод газовый скважина тарасовский месторождение пурнефтегаз увеличение объём добыча газа роспан продолжение разработка северный оконечность месторождение остров сахалин . В результат реализация целевой газовый программа компания направить увеличение эффективность использование попутный нефтяной газа пнг показатель использование пнг прошлое год вырасти процент сравнение процент год . итог год роснефть выполнить сейсмический работа тип объём тысяча погонный километр сейсмический работа тип тысяча квадратный километр завершиться испытание поисковый разведочный скважина успешность процент . В результат проведение геологоразведочный работа год роснефть открыто семь месторождение новый залежь суммарный запас категория объём миллион тонна нефтяной эквивалент . В целое прирост запас счёт геологоразведочный работа составить миллион тонна участок восточный сибирь миллион тонна . объесть реализация нефтепродукт нефтехимия компания год сравнение год увеличиться процент составить миллион тонна . рост продажа связать основное реализация запас накопить год дополнительный эффективный операция . объесть поставка нефть восточный направление увеличиться процент составить миллион тонна . прошлое год компания осуществить полный переход выпуск моторный топливо класс евро внутренний рынок российский нефтеперерабатывающий завод нпз роснефть . выход светлый нефтепродукт год увеличиться процент глубина переработка российский нпз компания вырасти процент . |ngramms опубликовать_дать пресс_релиз поступить_в_редакция В_прошлое_год добыча_углеводород добыча_углеводород компания_составить миллион_тонна миллион_тонна миллион_тонна миллион_тонна миллион_тонна миллион_тонна миллион_тонна миллион_баррель компания_отмечать удаться_достигнуть режим_работа современный_технология год_добыча углеводород_компания предыдущий_квартал увеличение_доля ввести_в_эксплуатация ввести_в_эксплуатация процент_большой предыдущий_год отчётный_период В_сообщение что_рост закончить_строительство закончить_строительство добыча_газа добыча_газа добыча_газа добыча_газа миллиард_кубометр рост_объём увеличение_поставка единый_система газовый_скважина увеличение_объём опытно_промышленный В_результат В_результат газовый_программа прошлое_год работа_тип работа_тип тысяча_квадратный В_целое прирост_запас восточный_сибирь процент_и_составить процент_и_составить рост_продажа объесть_поставка топливо_класс внутренний_рынок нефтеперерабатывающий_завод +1922 |text гражданский самолёт сухой гсс подать компания капитал страхование иск размер миллион доллар . исковый заявление разместить картотека арбитражный . ведомость уточнять ссылка участник страховой рынок что связать выплата компенсация разбиться индонезия sukhoi superjet ssj . самолёт быть застраховать капитал страхование каталожный цена миллион доллар . представитель россгосстрах владеть капитал страхование рассказать издание что крупный страховой договор сухой перестраховываться мировой компания . слово российский страховщик прямая обязательство контракт выполнить выплатить процент сумма есть миллион доллар . информация издание выплата остальной сумма задерживаться разница условие страхование перестрахование . В заключаться разница неясно уточняться что прошлое год авиационный риска россгострах размещаться мировой страховой рынок брокер lockton интерес россия представлять компания малакут . sukhoi superjet разбиться индонезия год время выполнение демонстрационный полёт остров ява . борт авиалайнер находиться человек погибнуть . итог расследование быть объявить что причина катастрофа стать человеческий фактор . самолёт быть технически исправный пилот быть трезвый не_принимать никакой лекарство наркотик . |ngramms гражданский_самолёт_сухой капитал_страхование капитал_страхование капитал_страхование миллион_доллар миллион_доллар миллион_доллар исковый_заявление страховой_рынок страховой_рынок sukhoi_superjet sukhoi_superjet самолёт_быть самолёт_быть рассказать_издание остальной_сумма быть_объявить что_причина катастрофа_стать пилот_быть +1923 |text компания стройгазконсалтинг иорданско российский бизнесмен специализироваться подряд газпром выиграть тендер сооружение участок московский метро . сообщить информагентство ссылка генеральный директор входящая стройгазконсалтинг компания сгк автострада . В рамка контракт стройгазконсалтинг быть построить участок замоскворецкий линия протяжённость километр новое станция беломорский улица улица . стоимость контракт составить миллиард рубль срок строительство год . как писать номер газета ведомость контракт метрополитен являться инфраструктурный проект москва . работа рамка договор быть вести компания сгк автострада заниматься дорожный мостовый тоннельный строительство . В проект тысяча работник сгк автострада . московский правительство конец год планировать построить новый станция метро продлить протяжённость линия метрополитен километр . К работа привлечь крупный метростроитель мосметрострой ингеоко трансинжстрой бамтоннельстрой казметрострой . реализация проект область метростроительство мосинжпроект создать совместный предприятие белорусский минскметрострой азербайджанский еврасстрой . |ngramms бизнесмен__ московский_метро генеральный_директор _ В_рамка улица_ контракт_составить миллиард_рубль срок_строительство как_писать работа_в_рамка быть_вести тысяча_работник московский_правительство год_планировать станция_метро совместный_предприятие +1924 |text максимальный подтвердить размер финансовый ущерб утечка информация российский компания составить миллион доллар . исследование компания zecurion . исследование провести год представитель российский компания различный отрасль . В среднее российский компания различный отрасль размер терять утечка дать тысяча доллар результат случиться инцидент ущерб можно оценить деньга . интересно что потенциальный ущерб предотвратить утечка компания оценивать тысяча доллар . согласно исследование инцидент достаточно высокий степень серьёзность фиксироваться различный российский компания неделя . показатель варьировать отрасль отрасль особенно сильно зависеть сотрудник иметь доступ конфиденциальный информация . эксперт zecurion подсчитать что процент российский компания сталкиваться крупный утечка дать мочь привести серьёзный финансовый проблема вплоть банкротство . И восемь процент организация не_страдать утечка дать процент компания крупный среднее бизнес фиксировать среднее попытка месяц похитить ценный информация потеря сказываться финансовый стабильность фирма . утекать организация разнообразный информация включая проектный документация клиентский база сведение инвестиционный деятельность компания персональный дать сотрудник коммерческий предложение сведение движение счёт клиент отмечать эксперт . основный статья ущерб вследствие утечка являться прямая потеря упустить выгода штраф сторона регулятор . российский практика наибольший потеря компания приходиться косвенный ущерб вследствие ухудшение клиентский база особенно высококонкурентный отрасль получение конкурент преимущество . большой часть компания нести косвенный убыток вследствие кража сотрудник клиентский база . В случай выявление кража незаконный использование коммерческий информация сотрудник девять процент компания увольнять виновник процент привлекать уголовный административный ответственность . действие сотрудник отсутствовать злой умысел большинство случай процент заканчиваться разъяснительный беседа . серьёзный последствие непреднамеренный утечка процент работодатель прибегать официальный выговор штраф . нередко слив информация попадаться компания . аналитика объяснять что иметь легальный доступ конфиденциальный информация высокий уровень прекрасно представлять ценность возможный вариант использование вне компания . часто руководитель чувствовать безнаказанность . |ngramms российский_компания российский_компания российский_компания российский_компания российский_компания миллион_доллар исследование_провести различный_отрасль различный_отрасль В_среднее тысяча_доллар тысяча_доллар согласно_исследование достаточно_высокий особенно_сильно финансовый_проблема восемь_процент проектный_документация деятельность_компания наибольший_потеря большой_часть В_случай незаконный_использование девять_процент административный_ответственность действие_сотрудник топ_менеджер топ_менеджер возможный_вариант +1925 |text министерство массовый коммуникация предложить правительство назначить оператор база дать услуга mnp координационный центр национальный домен сеть интернет . сообщать новость ссылка заместитель глава министр . создание оператор необходимый отмена мобильный рабство введение стандарт переносимость номер позволять гражданин не_менять телефонный номер переход оператор . слово благодаря опыт технический возможность координационный центр снизить риска проект . В министерство считать что оператор нужно назначить распоряжение правительство не_выбирать конкурс как предлагаться . чиновник планировать заключить координационный совет контракт год выбирать оператор конкурс . предполагаться что координационный центр счёт оплатить создание база дать осуществление услуга mnp . расход оцениваться полмиллиард рубль . сообщаться что понести телекоммуникационный компания . ежегодный эксплуатация база быть обходиться миллион рубль средство быть компенсировать сотовый оператор быть вносить рубль перенести номер . предложение минкомсвязи согласовать минфин минэкономразвития . координационный центр роль оператор база дать претендовать государственный структура . координационный центр национальный домен интернет являться регулятор российский сегмент мировой сеть . организация отвечать регистрация сайт домен . . рф . координационный центр работать год . ввести россия стандарт переносимость номер mnp планироваться год . конец что введение услуга мочь быть перенести месяц . телекоммуникационный компания обращать внимание что не_успеть срок перейти стандарт mnp отсутствие оператор база дать . |ngramms массовый_коммуникация предложить_правительство назначить_оператор база_дать база_дать база_дать база_дать услуга_mnp услуга_mnp центр_национальный центр_национальный сеть_интернет заместитель_глава _ _ телефонный_номер снизить_риска В_министерство распоряжение_правительство оплатить_создание телекоммуникационный_компания телекоммуникационный_компания ежегодный_эксплуатация миллион_рубль быть_компенсировать сотовый_оператор перенести_номер государственный_структура ввести_в_россия вице_премьер что_введение мочь_быть обращать_внимание стандарт_mnp +1926 |text акция яндекс ход торг московский биржа вырасти процент фон новость объединение бизнес заказ такси компания uber . дать торг показать режим реальный время сайт биржа . К часы минута стоимость бумага составить рубль что как уточнять вести.ru являться исторический максимум . яндекс uber подписать соглашение объединение бизнес сервис . распространяться россия азербайджан армения белоруссия грузия казахстан . генеральный директор яндекс . такси худавердяный заверить что сделка пользователь быть доступный приложение база таксист собрать платформа смочь получать заказ программа . позволить водитель получать большой заказ час пассажир сохранить доступный стоимость поездка заявить . как отмечать uber вложить совместный предприятие миллион доллар яндекс миллион . стоимость оцениваться миллиард доллар . К новый компания перейти сервис доставка еда ubereats . |ngramms объединение_бизнес объединение_бизнес заказ_такси компания_uber дать_торг реальный_время бумага_составить как_уточнять генеральный_директор быть_доступный получать_большой как_отмечать совместный_предприятие миллион_доллар миллиард_доллар компания_перейти +1927 |text новый собственник московский объединить энергетический компания моэк стать подконтрольный газовый монополия газпром энергохолдинг . сообщать . дочка концерн купить процент акция моэк власть москва стартовый цена миллиард рубль . моэк крупный покупатель тепло мосэнерго находиться контроль энергохолдинг . К аукцион продажа моэк быть допустить структура сбербанк сберэнергодевелопмент предложение повышение стартовый цена ход торг не_последовать . как отмечаться сайт газета ведомость заявка банка называть технический быть необходимый аукцион состояться . власть москва смена собственник не_ожидать повышение тариф тепло изменение правило согласно устанавливаться тариф . заявить начальник управление регулирование тариф энергетика коммунальный сфера региональный энергетический комиссия столица . агентство сообщать что покупка моэк дочка профинансировать газпром готовый одолжить энергохолдинг миллиард рубль столько внести уставный капитал . моэк обеспечивать подача горячий вода отопление москва ближний город подмосковье . газпром энергохолдинг являться крупный владелец генерировать актив суммарный установленный мощность гигаватт . итог прошлое год предприятие холдинг быть выработать процент электроэнергия россия . |ngramms новый_собственник московский_объединить энергетический_компания газовый_монополия процент_акция власть_москва власть_москва стартовый_цена стартовый_цена миллиард_рубль миллиард_рубль быть_допустить структура_сбербанк как_отмечаться смена_собственник начальник_управление _ что_покупка уставный_капитал являться_один_из_крупный установленный_мощность прошлое_год +1928 |text российский авиакомпания оценивать убыток санкция курс рубль год миллиард рубль . сообщаться письмо российский ассоциация эксплуатант воздушный транспорт аэвт объединять крупный перевозчик страна быть направить ассоциация имя аркадия сообщать новость . итог прошлое год суммарный ожидать убыток авиакомпания составить порядок миллиард рубль письмо . результат деятельность отрицательно сказываться действие санкция падение цена нефть неустойчивость курс национальный валюта . сокращение количество международный авиаперевозка резкий увеличение стоимость лизинг как воздушный суд западный самолёт отечественный производство увеличение стоимость аэропортовый аэронавигационный обслуживание привести рост отрицательный результат деятельность авиакомпания минимум письмо . представитель авиакомпания выделять наиболее эффективный текущий ситуация мера . введение механизм компенсация процентный ставка кредит привлечь российский авиакомпания превышать действующий ставка цб рф . возобновление механизм предоставление государственный гарантия . мера являться снижение налоговый нагрузка счёт обнуление ндс тариф авиаперевозка что позволить отрасль сэкономить миллиард рубль . мера авиакомпания предлагать пересмотреть порядок исчисление тариф пенсионный фонд лётный состав быть завысить период острый нехватка специалист . мера называться введение мораторий год ставка сбор субъект естественный монополия обслуживание воздушный судно пассажир отечественный авиакомпания . попытка авиакомпания минимизировать последствие влияние вышеизложенный негативный фактор неизбежно привести необходимость повышение тариф что условие снижение покупательный способность вызвать снижение пассажиропоток предварительный оценка процент возможный череда банкротство письмо . сообщаться что авиакомпания проводить мероприятие сокращение расходный часть обеспечение деятельность . выделяться оптимизация парк воздушный судно сокращение персонал сокращение маршрут низкий спрос . отправка письмо проголосовать представитель ютэйр трансаэро уральский авиалиния ямал волга днепр . высказаться аэрофлот сибирь . |ngramms российский_авиакомпания российский_авиакомпания курс_рубль миллиард_рубль миллиард_рубль миллиард_рубль ассоциация_эксплуатант воздушный_транспорт объединять_крупный вице_премьер аркадия_ сообщать_риа_новость прошлое_год ожидать_убыток составить_порядок падение_цена национальный_валюта увеличение_стоимость увеличение_стоимость воздушный_суд самолёт_отечественный результат_деятельность представитель_авиакомпания наиболее_эффективный процентный_ставка ставка_цб государственный_гарантия являться_снижение налоговый_нагрузка что_позволить пенсионный_фонд воздушный_судно воздушный_судно отечественный_авиакомпания негативный_фактор повышение_тариф что_в_условие сокращение_персонал сокращение_маршрут уральский_авиалиния +1929 |text автоваз поднимать цена автомобиль granta kalina исключение семейство cross lada автоконцерн . стоимость машина вырасти процент . президент автоваз бу андерссон слово приводиться сообщение что компания намерить активизировать выполнение план антикризисный мероприятие позволить конец год сэкономить миллиард рубль . слово не_покрыть убыток полный объём . текущий экономический ситуация страна оказать прямой негативный воздействие . продажа lada упасть процент значительно вырасти стоимость комплектовать причина терпимый убыток пояснить . главный задача компания оставаться оптимизация затрата производство реструктуризация база поставщик отмечаться . выручка компания первое полугодие год российский стандарт бухгалтерский учёт рсб составить миллиард рубль процент маленький аналогичный показатель год . операционный убыток составить миллиард рубль быть обусловить падение российский автомобильный рынок процент повышение закупочный цена компонента негативный динамика курс рубль подчеркнуть компания . ассоциация европейский бизнес аеб продажа lada месяц год упасть тысяча машина . В быть тысяча автомобиль что процент уровень продажа . В многие производитель начать снижать цена популярный марка автомобиль фон катастрофический падение спрос продажа легковушка лёгкое коммерческий автомобиль lcv рухнуть начало год процент . В снижение цена отдельный модель объявить skoda nissan hyundai mazda citroen . |ngramms пресс_релиз пресс_релиз бу_андерссон что_компания_намерить миллиард_рубль миллиард_рубль миллиард_рубль полный_объём экономический_ситуация продажа_lada продажа_lada значительно_вырасти главный_задача первое_полугодие российский_стандарт процент_маленький аналогичный_показатель операционный_убыток быть_обусловить автомобильный_рынок курс_рубль ассоциация_европейский_бизнес год_упасть тысяча_машина тысяча_автомобиль популярный_марка падение_спрос лёгкое_коммерческий +1930 |text курс биткоина сутки упасть процент свидетельствовать дать сайт coinmarketcap . К мск стоимость криптовалюта снизиться процент доллар монета . капитализация биткоина время составить миллиард доллар . чикагский товарный биржа cme group начаться торг фьючерс биткоина . открытие стоимость контракт год достигать тысяча доллар . В курс цифровой валюта преодолеть максимальный история отметка тысяча доллар . капитализация рынок биткоина превысить миллиард доллар . криптовалюта впервые перешагнуть порог тысяча тысяча доллар биткоина . днями сообщаться что целое капитализация рынок криптовалюта превысить миллиард доллар . |ngramms свидетельствовать_дать миллиард_доллар миллиард_доллар миллиард_доллар год_достигать тысяча_доллар тысяча_доллар капитализация_рынок капитализация_рынок что_в_целое +1931 |text немецкий лоукостёр germanwings ограничиться рейс москва берлин материнский компания перевозчик lufthansa сократить присутствие россия минимум писать коммерсантъ . осень бюджетный авиаперевозчик germanwings сменить аэропорт базирование внуково домодедово быть выполнять семь рейс неделя аэропорт берлин тегель . слово источник газета перелёт быть совершаться бренд eurowings лоукостёр стать крупный перевозчик германия австрия швейцария бельгия масштаб перевозчик европа азия . сокращать маршрутный сеть россия авиакомпания lufthansa владеть процент акция germanwings . осень закрыть половина маршрут россия самара нижний новгород . С конец перебазироваться домодедово . компания летать десять российский город екатеринбург краснодар ростов казань пермь . В начало сообщаться что немецкий лоукостёр конец закрыть российский маршрут петербург дюссельдорф москва кельн . germanwings перестать летать москва дюссельдорф . В lufthansa пояснять что решение сокращение маршрут вынуждать текущий экономический ситуация . С начало год российский рынок покинуть гонгконгский cathay pacific тайский thai airways рейс сократить niki британский лоукостёр easyjet czech airlines израильский el al . падение спрос авиаперелёт полгода объесть перевозка домодедово шереметьево снизиться процент процент соответственно нарастить смочь внуково процент . пассажиропоток международный авиакомпания московский авиационный узел упасть процент . росавиация зафиксировать существенный падение спрос перелёт дальний зарубежье . ведомство месяц год российский авиакомпания перевезти направление процент маленький пассажир миллион человек дать месяц не_публиковаться . сложность фон падать спрос авиаперевозка испытывать российский компания . В непростой финансовый положение оказаться крупный российский авиакомпания ютэйр . В середина лето год заявить запуск программа снижение издержка предусматривать сокращение персонал оптимизация маршрутный сеть . пассажиропоток авиакомпания рухнуть миллион пассажир миллион перевезти месяц прошлое год . долг перевозчик учёт лизинговый платёж составлять миллиард рубль . авиакомпания намерить просить предоставление госгарантия кредит . В год правительство одобрить предоставление госгарантия сумма миллиард рубль объём перевозка российский авиакомпания трансаэро . |ngramms быть_выполнять источник_газета крупный_перевозчик маршрутный_сеть маршрутный_сеть процент_акция нижний_новгород российский_город В_начало сокращение_маршрут экономический_ситуация начало_год российский_рынок объесть_перевозка процент_соответственно дальний_зарубежье российский_авиакомпания российский_авиакомпания российский_авиакомпания процент_маленький миллион_человек российский_компания финансовый_положение В_середина запуск_программа снижение_издержка сокращение_персонал пассажиропоток_авиакомпания миллион_пассажир прошлое_год лизинговый_платёж миллиард_рубль миллиард_рубль год_правительство +1932 |text российский самолётостроительный корпорация миг мочь уволить тысяча человек . сообщать rambler service ссылка источник . слово собеседник агентство летом год быть уволить сотрудник опытный производство . В ближний время сократить человек как административный персонал сотрудник инженерный центр окб имя человек быть уволить год . источник пояснить что оптимизация штатный расписание происходить нехватка заказ . собеседник агентство уточнить что сокращение коснуться сотрудник пенсионный предпенсионный возраст разработать стимулировать программа . В миг подтвердить оптимизация численность персонал . В рамка централизация вспомогательный функция путём перевод часть производственный мощность москва луховицы нижний новгород соответствие поставить правительство рф задача быть провести оптимизация штат работник год составить процент сотрудник рск миг заявить . работа быть продолжить следующий год зависеть производственный программа не_утвердить . российский самолётостроительный корпорация миг входить состав объединить авиастроительный корпорация консолидировать производственный кооперация советский опытный конструкторский бюро артем . В год выручка предприятие составить миллиард рубль чистый прибыль миллиард . основной образец выпускать продукция истребитель миг миг миг миг . |ngramms тысяча_человек rambler_news_service собеседник_агентство собеседник_агентство год_быть В_ближний_время имя_ быть_уволить сотрудник_пенсионный пресс_служба пресс_служба численность_персонал В_рамка производственный_мощность нижний_новгород правительство_рф быть_провести оптимизация_штат год_составить работа_быть производственный_программа входить_в_состав объединить_авиастроительный_корпорация научно_технический год_выручка предприятие_составить миллиард_рубль чистый_прибыль выпускать_продукция +1933 |text ориентировочный стоимость нитка газопровод турецкий поток мочь составить миллиард евро . сообщить зампредседатель правление газпром передавать . добавить что дать цифра ориентировочный сформировать исходить стоимость газопровод южный поток предполагать строительство труба болгария . газпром слово уверенный что никакой риск строительство нитка турецкий поток нет быть мочь . В сообщаться что укладка газопровод турецкий поток мелководье начаться декада . труба приобрести проект южный поток быть использовать турецкий поток . В год россия отказаться строительство газопровод южный поток обход украина сопротивление еврокомиссия . ход визит турция президент москва анкара договориться прокладка дно чёрный море газопровод пропускной способность миллиард кубометр газа год . В глава мид греция сербия македония венгрия турция подтвердить намерение участвовать строительство газопровод новый маршрут . турецкий поток протяжённость километр быть состоять нитка . газпром намеренный транспортировать топливо страна европа . предполагаться что турецкий греческий граница быть создать газовый хаб страна евросоюз быть самостоятельно строить инфраструктура приём топливо территория . |ngramms нитка_газопровод турецкий_поток турецкий_поток турецкий_поток турецкий_поток турецкий_поток мочь_составить миллиард_евро _ что_дать южный_поток южный_поток южный_поток строительство_труба что_никакой быть_не_мочь быть_использовать строительство_газопровод строительство_газопровод президент__ чёрный_море миллиард_кубометр газа_в_год глава_мид подтвердить_намерение новый_маршрут километр_быть топливо_в_страна юго_восточный греческий_граница быть_создать страна_евросоюз самостоятельно_строить приём_топливо +1934 |text депутат политический партия единый россия справедливый россия внести госдума законопроект предусматривать запрет производство продажа слабоалкогольный энергетический напиток . сообщать интерфакс . автор документ предлагать запретить напиток содержание кофеин алкоголь процент . В пояснительный записка отмечаться что энергетика мочь негативно влиять здоровье потребитель поскольку содержание кофеин составлять превышать суточный норма миллиграмм . как установить депутат итог анализ рынок позиционирование слабоалкогольный энергетический напиток направить молодёжный аудитория несовершеннолетний возраст . законопроект коснуться энергетик как jaguar red devil занимать четверть рынок тонизировать напиток . утром писать газета известие ссылка лидер общероссийский молодёжный объединение здоровый выбор корсуновый . российский законодатель пытаться добиться ограничение продажа энергетик . В рассмотрение госдума находиться законопроект партия единый россия ограничение оборот безалкогольный тонизировать напиток . минувший депутат лдпр внести рассмотрение нижний палата парламент законопроект запрет производство оборот россия слабоалкогольный безалкогольный энергетический напиток . |ngramms политический_партия единый_россия единый_россия предусматривать_запрет энергетический_напиток энергетический_напиток энергетический_напиток здоровье_потребитель четверть_рынок писать_газета пытаться_добиться +1935 |text microsoft китайский производитель смартфон xiaomi подписать меморандум сотрудничество облачный технология искусственный интеллект аппаратный обеспечение . писать techcrunch . соглашение американский компания намерение xiaomi наращивать бизнес запад особенно сша отмечать издание . microsoft сотрудничество означать охват китайский рынок добавлять verge . меморандум предполагать взаимный доступ компания технология . microsoft дать xiaomi возможность использовать облачный вычислительный продукт как azure разработка смартфон вывести гаджет международный рынок . сторона обсуждать совместный использование наработка microsoft область искусственный интеллект голосовой помощник cortana . vege отмечать что меморандум не_означать юридически обязывать партнерство . нет никакой информация финансовый сторона сотрудничество . спецслужба сша предупредить американец возможный опасность использование китайский смартфон huawei . фбр цру анб национальный разведка опасаться что производитель гаджет работать правительство кнр мочь быть замешать шпионаж . |ngramms производитель_смартфон подписать_меморандум американский_компания отмечать_издание китайский_рынок совместный_использование что_меморандум нет_никакой правительство_кнр мочь_быть +1936 |text украинский правоохранительный орган объявить международный розыск бывший гендиректор авиакомпания аэросвита . сообщаться сайт прокуратура киевский область . бывший имя не_называться подозреваться нарушение стать ук украина как грубый нарушение законодательство труд грубый нарушение соглашение труд невыплата заработный плата уклонение уплата взнос . фигурант уклоняться следственный действие объявить розыск пояснить прокуратура . как отмечаться сайт рбк украина идти руководить авиакомпания год год . аэросвита работать донбассаэро . как добавить ведомство представление прокуратура авиакомпания частично погасить задолженность зарплата сотрудник выплатить миллион гривна тысяча доллар сша . аэросвита полностью погасить долг пенсионный фонд размер миллион гривна миллион доллар сша . сообщаться что компания работник миллион гривна компания миллион гривна профсоюз . время авиакомпания расследоваться уголовный статья мошенничество финансовый ресурс . версия прокуратура аэросвита конец год передать залог неназванный банка участок земля площадь гектар находиться собственность государство . аэросвита быть крупный авиаперевозчик украина финансовый трудность прекратить перелёт . долг компания оцениваться миллиард гривна полумиллиард доллар стоимость компания миллиард гривна . В конец год компания начало процедура банкротство год прервать суд требование налоговик . |ngramms правоохранительный_орган международный_розыск бывший_гендиректор сообщаться_на_сайт топ_менеджер ук_украина нарушение_законодательство следственный_действие как_отмечаться _ миллион_гривна миллион_гривна миллион_гривна миллион_гривна тысяча_доллар пенсионный_фонд миллион_доллар что_компания финансовый_ресурс участок_земля находиться_в_собственность крупный_авиаперевозчик финансовый_трудность долг_компания миллиард_гривна миллиард_гривна В_конец компания_начало процедура_банкротство +1937 |text новый президент российский подразделение компания toyota ооо тойота мотор назначить хидэнорь . сообщаться компания оказаться распоряжение лента . . подразделение автоконцерн сообщать что обладать опыт работа область маркетинг продажа глобальный автомобильный рынок . хидэнорь входить наиболее опытный руководитель тойота мотор корпорэйшн . протяжение карьера тойота занимать руководящий пост подразделение компания япония австралия сша . кадровый изменение стать важный этап развитие компания призвать укрепить позиция toyota lexus российский рынок сообщение . первое появление хидэнорь руководитель дилерский центр тойота лексус россия состояться год . В приветственный объявить намерение развивать успешный стратегия разработать внедрить предыдущий президент ооо тойота мотор такеш . убедить что стратегический направление придерживаться год тойота россия помочь компания повысить уровень лояльность российский клиент сохранить гибкость условие изменчивый экономический ситуация . напомнить что такеш вступить должность время экономический спад год суметь внести вклад развитие процветание компания россия . когда назначить президент российский рынок проходить период бурный экономический потрясение . считать интересный бизнес задача возможность реализация амбициозный план применение новый подход приводиться сообщение слово хидэнорь . |ngramms новый_президент российский_подразделение компания_toyota пресс_релиз оказаться_в_распоряжение опыт_работа автомобильный_рынок подразделение_компания стать_важный президент_ооо что_стратегический компания_повысить российский_клиент экономический_ситуация экономический_спад компания_в_россия российский_рынок проходить_период +1938 |text винодельческий предприятие массандра отправить история тонный партия столовый вино экспорт . продукция быть поставить белоруссия отгрузить торговый сеть брест . официальный сайт предприятие . В сообщение отмечаться что компания планировать наладить экспортный поставка азия . массандра готовиться отгрузить партия вино самопровозгласить днр лнр . как писать массандра предприятие намерить экспортировать известный рынок креплёный вино собственный производство . В середина год сообщаться что власть украина план наладить выпуск вино торговый марка массандра сохранить бренд страна . В ответ компания объявить что быть защищать бренд суд . массандра виноград винодельческий комбинат одноимённый посёлок южный берег крымский полуостров . коллекция вино предприятие миллион бутылка являться крупный мир быть занести книга рекорд . В состав предприятие входить восемь винодельческий хозяйство . совет министр крым осень год передать массандра управление президент россия . |ngramms быть_поставить торговый_сеть В_сообщение что_компания юго_восточный как_писать пресс_служба собственный_производство В_середина год_сообщаться власть_украина торговый_марка В_ответ южный_берег крымский_полуостров вино_предприятие крупный_в_мир книга_рекорд В_состав входить_восемь совет_министр крым_осень год_передать президент_россия +1939 |text российский железный дорога приватизация греческий компания порт thessaloniki железнодорожный перевозчик trainose ремонтный компания rosco . писать газета коммерсантъ ссылка письмо глава ржд президент россия . В немой железнодорожный монополия просить разрешение руководитель государство сделка финансовый помощь . В документ отмечаться что ржд получить греческий власть дать цена актив . порт thessaloniki оценить миллион евро trainose миллион евро rosco оценить миллион . писать что ржд есть уникальный возможность объединить железнодорожный структура греция сербский проект . глава ржд отмечать что совершение сделка компания необходимый государственный финансирование . В противный случай отмечаться письмо госкомпания мочь создать консорциум покупка актив иностранный партнёр . В качество претендент называться железный дорога франция греческий железнодорожный компания . обращать внимание что греческий компания мочь купить российский государственный структура уполномоченный правительство . поручить рассмотреть вопрос ржд приватизация греческий госактив правительство . thessaloniki являться основный порт греция прошлое год грузооборот составить миллион тонна чистый прибыль превысить миллион евро . сравнение грузооборот новороссийский порт крупный россия прошлое год составить миллион тонна . trainose выполнять грузовой пассажирский железнодорожный перевозка ежегодно компания перевозить миллион тонна груз миллион пассажир . прибыль компания прошлое год составить миллион евро выручка миллион . |ngramms российский_железный_дорога греческий_компания писать_газета глава_ржд глава_ржд _ президент_россия__ В_немой железнодорожный_монополия В_документ что_ржд цена_актив миллион_евро миллион_евро миллион_евро миллион_евро уникальный_возможность отмечаться_в_письмо мочь_создать иностранный_партнёр В_качество претендент_называться железный_дорога железнодорожный_компания обращать_внимание компания_мочь государственный_структура _поручить рассмотреть_вопрос миллион_тонна миллион_тонна миллион_тонна чистый_прибыль крупный_в_россия железнодорожный_перевозка миллион_пассажир прибыль_компания +1940 |text президент россия встреча представитель крупный отечественный бизнес рассказать основный направление государственный политика экономика . стенограмма выступление глава государство опубликовать сайт . слово президент текущий год ввп страна вырасти процент грузооборот подняться процент потребительский спрос процент снизиться безработица . В целое тренд обнадёживать основать целое ряд фактор . президент сообщить что подписать указ основный направление государственный политика развитие конкуренция . быть серьёзный снижение доля государство отечественный экономика конкурентный сфера ... . идти ограничение создание унитарный предприятие повышение доля качественный российский продукция внутренний рынок включая отрасль как информационный технология апк . К год планироваться вдвое увеличить закупка малое среднее бизнес нко государственный муниципальный заказ . В год доля госзакупка малое среднее бизнес увеличить треть составить триллион рубль . что следующий год вступить сила закон синдицировать кредит заём предоставлять кредитор . механизм позволять значительно увеличить объём кредитование повысить доступность ресурс реальный сектор экономика существенно снизить риска кредитор подчеркнуть глава государство . слово президент законодательство быть внести поправка позволить выпускать облигация неполный покрытие номинал . ценный бумага нести большой риска доходность выше . сообщаться что встреча бизнес поручить определить параметр облигация федеральный заём валюта возвращение капитал российский территория год обеспечить выпуск . большой важный новость telegram канал лента . подписываться ! |ngramms президент_россия__ представитель_крупный отечественный_бизнес основный_направление государственный_политика государственный_политика глава_государство глава_государство текущий_год В_целое ряд_фактор подписать_указ серьёзный_снижение отечественный_экономика повышение_доля информационный_технология год_планироваться вдвое_увеличить среднее_бизнес среднее_бизнес год_доля триллион_рубль следующий_год вступить_в_сила увеличить_объём сектор_экономика существенно_снизить внести_поправка ценный_бумага _поручить важный_новость +1941 |text финский компания valio намерить построить завод россия . компания вести переговоры молокозавод подмосковье где собираться арендовать производственный линия выпуск твёрдый сыр импортироваться финляндия писать коммерсантъ . сумма инвестиция новый проект valio подмосковье не_называться . концерн сообщать что затратить миллион евро строительство завод ершовый . единственный производственный площадка valio россия компания год производить плавленый сыр viola . текущий год valio начало работать контрактный система петербургский завод галактика где производитель выпускать питьевой молоко valio uht сливка valio . желание выпускать продукция россия компания изъявить санкция рф отношение ес сша канада австралия . эмбарго предусматривать запрет поставка россия сельскохозяйственный продукция сыр страна . valio поставлять россия половина продукция . компания отмечать что процент выбыть объём компенсировать не_удаться . производство компания россия зависеть финский сырьё нельзя завозить россия эмбарго . |ngramms финский_компания намерить_построить производственный_линия новый_проект миллион_евро производственный_площадка текущий_год петербургский_завод выпускать_продукция запрет_на_поставка компания_отмечать компания_в_россия +1942 |text украина мочь принудительно отбирать российский транзитный газ счёт уплата назначить газпром штраф . заявить глава российский компания передавать новость . есть основание полагать что решение киевский суд случайно сообщить глава холдинг . У газа труба территория украина взыскивать нечего вопрос ставить идти отъём газа предназначить европейский потребитель предположить . руководитель аналитический управление фонд национальный энергетический безопасность пасечник интервью лента . заявить что украина мочь пойти несанкционированный отбор российский газа трубопровод проходить территория страна . слово киев мочь обосновать отбор иметься судебный претензия газпром . пасечник добавить что украина остро нуждаться российский газа сезон . хозяйственный суд киев обязать газпром выплатить штраф пеня просрочка сумма миллиард гривна миллиард доллар злоупотребление монопольный положение рынок транзит газа . поздний газпром обжаловать стокгольмский арбитраж решение киевский суд . украина перестать закупать россия газ конец год начало приобретать европа объяснять низка цена . В глава нафтогаза коболеть признать что газпром предложить киев газ привлекательный цена нежели европейский поставщик . В время указать что рынок волатильный существовать тенденция снижение цена рынок европа . |ngramms украина_мочь украина_мочь российский_компания _ передавать_риа_новость что_решение киевский_суд киевский_суд сообщить_глава европейский_потребитель фонд_национальный энергетический_безопасность российский_газа территория_страна киев_мочь что_украина суд_киев выплатить_штраф миллиард_гривна миллиард_доллар транзит_газа украина_перестать начало_приобретать предложить_киев европейский_поставщик В_то_же_время рынок_европа +1943 |text австралийский дочка норильский никель norilsk nickel australia договориться продажа принадлежащий местный золоторудный актив . официальный компания . покупатель актив рудник thunderbox обогатительный фабрика выступить saracen metals дочерний подразделение saracen mineral holdings . что сделка быть завершить половина год получение разрешение сторона регулировать орган . В сложность сумма предложение saracen составлять миллион австралийский доллар миллион доллар сша . слово заместитель гендиректор норникель приводиться сайт газета ведомость актив быть сто миллион австралийский доллар процент быть выплатить комбинат вид денежный средство . австралийский сторона обязательство реабилитация . как сделка saracen заключить рамка стратегия выход норникель актив не_удовлетворять критерий первоклассность . В прошлое год компания выставить продажа авиаактив перевозчик таймыр работать бренд nordstar . |ngramms договориться_о_продажа пресс_релиз покупатель_актив сделка_быть получение_разрешение австралийский_доллар австралийский_доллар миллион_доллар заместитель_гендиректор _ сто_миллион быть_выплатить денежный_средство как_отметить_ В_прошлое_год горно_металлургический выставить_на_продажа +1944 |text ростелеком намеренный подвести оптоволоконный российский дом выше этаж . заявляться стратегия развитие компания год быть представить совет директор писать ведомость . образ компания подключить миллион домохозяйство . одновременно корпорация нацеливаться увеличение доля рынок платный телевидение составлять процент . ростелеком перейти модель tv телевидение оператор быть доступно устройство место . компания заключить партнерский соглашение фирма производить собственный контент . ростелеком планировать продавать напрямую пользователь . ростелеком быть расширяться естественный способ активно поглощать мелкий структура стартап . отбор проект компания быть создать собственный венчурный фонд . оператор предстоять полный приватизация время отходить фиксировать продвижение множество сфера . проект компания являться поисковый система спутник планироваться открыть следующий год . новый поисковик быть продвигаться государственный уровень умолчание устанавливаться орган власть госкомпания . |ngramms стратегия_развитие совет_директор планировать_продавать быть_создать полный_приватизация компания_являться государственный_уровень орган_власть +1945 |text крупный французский машиностроительный компания schneider electric планировать год вложить миллиард рубль проект связанный локализация россия . информировать ссылка компания . идти строительство завод самар сервисный центр центр обучение технополис москва расширение производство завод электрик урал екатеринбург . доля продукция российский производство структура продажа компания достигнуть процент сообщение . новый завод самар начать строительство запланировать год быть производить современный сухой трансформатор применяться очередь нефтегазовый электросетевой компания . В продажа schneider electric россия составить миллиард евро . французский компания schneider electric являться мировой эксперт управление электроэнергия промышленный автоматизация . подразделение компания работать страна мир . российский компания электрик иметь представительство город россия головной офис москва . производственный база представить семь действующий завод логистический центр . |ngramms миллиард_рубль пресс_служба пресс_служба центр_обучение производство_на_завод российский_производство структура_продажа компания_достигнуть начать_строительство быть_производить миллиард_евро французский_компания являться_мировой подразделение_компания страна_мир российский_компания город_россия головной_офис производственный_база действующий_завод логистический_центр +1946 |text танкер перевозить сша добыть россия газ развернуться прибытие американский бостон . сообщать bloomberg . судно gaselys быть достигнуть восточный побережье сша . направляться испанский порт куда прибыть следующий неделя . владелец груз североамериканский подразделение компания engie sa не_комментировать изменение маршрут танкер отмечать агентство . газета коммерсантъ сообщить что танкер принадлежащий французский компания engie везти груз сжидить топливо проект ямал спг сша . поставка полностью противоречить стратегия развитие американский рынок сша превращаться крупный экспортёр спг регазификационный терминал перестраиваться терминал сжижение газа отмечать издание . поставка планироваться холодный погода снежный шторм восточный побережье соединить штат . ухудшиться погодный условие спровоцировать резкий рост цена газ страна подниматься беспрецедентный тысяча доллар тысяча кубометр . |ngramms сообщать_bloomberg порт_ подразделение_компания отмечать_агентство французский_компания ямал_спг стратегия_развитие американский_рынок отмечать_издание соединить_штат резкий_рост цена_на_газ тысяча_кубометр +1947 |text представитель афк система фигурант незаконный продажа акция башнефть обжаловать действие следователь различный инстанция . агентство интерфакс сообщить источник знакомый ситуация . В настоящее время подать ряд жалоба ставиться вопрос законность действие правоохранительный орган заявить собеседник агентство . слово проверять законность действие следственный комитет быть суд различный регион генпрокуратура . руководитель основной акционер афк система быть поместить домашний арест . обвинить хищение акция башнефть . версия следствие компания система год миллион доллар договорный цена . быть возбудить бывший глава башнефть урал обвиняться легализация преступный доход приватизация продажа система актив башкирский тэк . акция система башнефть резко упасть цена фон новость арест . В башнефть московский биржа подешеветь процент . открытие торг акция афк система подешеветь процент . |ngramms представитель_афк продажа_акция сообщить_источник В_настоящее_время правоохранительный_орган собеседник_агентство следственный_комитет основной_акционер _ быть_поместить хищение_акция миллион_доллар быть_возбудить бывший_глава резко_упасть фон_новость акция_афк +1948 |text арбитражный суд ставропольский край зарегистрировать иск ооо кавказдорстрой требовать признать банкрот крупный россия производитель минеральный вода компания нарзан . сообщаться картотека арбитражный . подробность иск карточка не_уточняться . В база доступный иск кавказдорстрой нарзан год . истец требовать производитель минеральный вода миллион рубль задолженность выполнить работа договор строительный подряд подписать год . нарзан оплатить тысяча рубль пообещать выплатить остаться сумма поздний кавказдорстрой средство не_получить . В итог подача иск основный задолженность составить миллион рубль быть начислить тысяча рубль пеня . суд требование кавказдорстрой удовлетворить полностью . промышленный розлив нарзан быть начать кисловодск конец xix век . официальный дата запуск завод розлив вода считаться год . время ссср кисловодский завод предприятие производство минеральный вода входить состав кавминрозливый севкавминрозливый . оао нарзан быть образовать год . собственник нарзан являться бывший владелец производитель полипропиленовый плёнка биаксплена . |ngramms арбитражный_суд зарегистрировать_иск признать_банкрот истец_требовать тысяча_рубль тысяча_рубль остаться_сумма В_итог подача_иск миллион_рубль быть_начать официальный_дата входить_в_состав являться__ бывший_владелец +1949 |text директор объединить департамент lingvo мобильный продукт российский компания abbyy назначить кумпель . сообщение компания . В компания быть решение объединить департамент lingvo мобильный продукт учёт тенденция рынок создание мультиплатформенный программа . В зона ответственность департамент входить разработка продвижение продажа мировой рынок мультиплатформенный программа известный россия электронный словарь abbyy lingvo . одновременно компания развивать образовательный направление предлагать различный решение школа вуз быть выделить департамент образовательный продукт . занимать должность директор департамент продукт мобильный платформа середина год стать развитие бизнес головной офис компания . быть заниматься построение бизнес крупный международный российский партнёр рамка продуктовый направление компания . бывший директор департамент лингвистический продукт назначить директор департамент образовательный продукт . кумпель начать работать abbyy год . приход компания кумпель создать рекрутинговый проект itmozg . . С год работать dell corporation начать должность линейный тестировщик завершить карьер компания должность qa директор . |ngramms мобильный_продукт мобильный_продукт российский_компания назначить_ В_компания быть_принять_решение тенденция_рынок мировой_рынок предлагать_различный _ _ занимать_должность директор_департамент директор_департамент директор_департамент год_стать вице_президент головной_офис крупный_международный российский_партнёр +1950 |text агрегатор скидка тестовый режим запустить сервис можно вернуть часть деньга кешбэк покупка товар определённый бренд . писать принадлежащий семья газета ведомость . кэшбэк оформить производитель товар . покупатель отсканировать специальный qr код чек счёт сервис поступить деньга . можно вывести счёт мобильный телефон электронный кошелёк яндекс . партнёр проект стать ferrero mars henkel nestle балтика bonduelle кубань крупный компания . В закрытый режим сервис тестировать месяц пилотный проект запустить москва московский область . ведомость уточнять что способ возврат часть деньга покупка стать возможный вступление сила закон облачный фискализация дать . оператор отправлять информация касса магазин сервер налоговый служба . как объяснить газета основательница система открывать возможность маркетинговый аналитика дать . представитель сервис надеяться запустить новый вариант кэшбек розничный сеть некоторый начать сотрудничество . |ngramms запустить_сервис вернуть_часть принадлежащий_семья _ _ поступить_деньга мобильный_телефон coca_cola крупный_компания закрытый_режим проект_запустить московский_область часть_деньга стать_возможный налоговый_служба как_объяснить новый_вариант розничный_сеть +1951 |text начать производство богучанский алюминиевый завод боаз русало красноярский край мочь быть отложить год . ход телефонный конференция заявить заместитель гендиректор алюминиевый компания передавать . как пояснить русало обсуждать финансовый часть проект партнёр русгидро втб что быть окончательный решение начало производство . В русало сообщать что металл планироваться получить конец текущий год полный мощность предприятие выйти год . В компания отмечать что строительство первое пусковой комплекс завод освоить миллион доллар завершение работа требоваться миллион доллар инвестиция . мощность очередь боаз составить тысяча тонна алюминий год . как директор стратегия развитие бизнес русало себестоимость производство завод быть тысяча доллар тонна . В конец неделя совет директор алюминиевый компания решение временно закрыть завод европейский часть россия низкий цена алюминий . идти волгоградский уральский богословский завод . В русало не_планировать возобновлять выпуск металл стоимость не_вернуться уровень тысяча доллар тонна . В половина год цена алюминий среднее составить тысяча доллар тонна . |ngramms красноярский_край мочь_быть телефонный_конференция компания__ как_пояснить текущий_год мощность_предприятие компания_отмечать миллион_доллар миллион_доллар тысяча_тонна развитие_бизнес _ производство_на_завод В_конец совет_директор европейский_часть +1952 |text владелец базовый элемент русский алюминий группа газ бизнесмен дерипаск считать что рубль стоить дорого . заявить интервью россия сообщать принадлежащий семья газета ведомость . мнение хвалить банк россия точно что . видеть результат китай показать рост ввп большой процент америка демонстрировать рост процент . И что полный отсутствие рост связать неконкурентоспособность товар дерипаск . очередь связать завысить курс рубль отсутствие стимул нужный развиваться производство страна доступный финансирование низкий процентный ставка бизнесмен . мировой цена многие экспортный товар подняться россия продолжаться ситуация год высокий процентный ставка отсутствие реальный доступ основной финансовый рынок считать дерипаск . К мск курс американский валюта снизиться сравнение предыдущий закрытие копейка рубль евро копейка рубль . forbes дерипаск занимать место богатый россиянин состояние миллиард доллар . |ngramms базовый_элемент бизнесмен_ дерипаск_считать заявить_в_интервью принадлежащий_семья _ банк_россия показать_рост демонстрировать_рост курс_рубль производство_в_страна процентный_ставка процентный_ставка финансовый_рынок предыдущий_закрытие _дерипаск богатый_россиянин миллиард_доллар +1953 |text страшновый пост руководитель почта россия мочь сменить член правление ростех писать коммерсантъ . источник издание сообщить что встречаться министр обсуждать менеджер конкретный деталь назначение кандидатура новое глава почтовый оператор согласовать администрация президент фсб . новый руководитель ставиться задача не_удаться решить нынешний переход бизнес ориентировать модель управление акционирование приватизация фгуп рассказать собеседник газета . информация издание являться наиболее вероятный единственный кандидат пост гендиректор почта россия . претендент называться помощник аркадия член совет стратегический развитие почта россия замминистра . поиск новое кандидат смочь возглавить фгуп как отмечать коммерсантъ начаться год скандал выплата завысить премия . генпрокурор чайка крайне негативно высказаться премирование глава почта россия откровенный наглость . средний зарплата отрасль недотягивать тысяча рубль бонус миллион начислять . В год стать что генеральный прокуратура выявить незаконный выплата премия гендиректор почта россия размер миллион рубль . сотрудник прокуратура направить материал возбуждение уголовный отношение страшновый статья ук рф злоупотребление полномочие . прокуратура заявлять что качество наказание мочь быть назначить штраф лишение свобода не_идти . проверяться законность приобретение фгуп грузовой самолёт . страшновый занимать пост гендиректор почта россия год . трудовой контракт истекать . В текущий год войти состав наблюдательный совет публичный акционерный общество пао почта банк . |ngramms почта_россия почта_россия почта_россия почта_россия почта_россия почта_россия мочь_сменить член_правление _ _ _ _ источник_издание новое_глава почтовый_оператор администрация_президент новый_руководитель собеседник_газета являться_наиболее претендент_называться вице_премьер член_совет стратегический_развитие поиск_новое как_отмечать средний_зарплата тысяча_рубль генеральный_прокуратура миллион_рубль прокуратура_направить ук_рф злоупотребление_полномочие мочь_быть лишение_свобода занимать_пост текущий_год войти_в_состав акционерный_общество почта_банк +1954 |text японский компания suntory holdings сделать предложение покупка американский beam известный производство бурбон jim beam maker mark . как сообщаться совместный алкогольный компания японец оценить конкурент миллиард доллар учёт долг американец миллиард . указанный сумма процент превышать капитализация beam биржа закрытие биржа . большой годовой прибыль компания выплата налог амортизация . менеджер beam согласиться сделка причём suntory подчеркнуть что не_планировать менять команда менеджер американский компания глава шетток matthew J . shattock . В результат слияние гигант быть как отмечать marketwatch создать компания годовой продажа миллиард доллар . быть владеть известный марка как коньяк courvoisier текила sauza висок bowmore scotch ликёр midori . suntory holdings обычно называть япония производитель висок jim beam объявить сделка быть крупный история . крупный сделка быть поглощение orangina schweppes миллиард доллар год . информация источник york times японец пытаться приобрести beam половина год объявить сделка . компания beam быть создать год результат распродажа актив холдинг fortune brands год american brands . |ngramms японский_компания покупка_американский известный_производство пресс_релиз миллиард_доллар миллиард_доллар миллиард_доллар указанный_сумма процент_превышать прибыль_компания выплата_налог американский_компания В_результат как_отмечать производитель_висок сделка_быть сделка_быть крупный_в_история пытаться_приобрести актив_холдинг +1955 |text авиакомпания lufthansa заказать европейский концерн airbus сто лайнер различный модификация крупный мир пассажирский самолёт . как официальный airbus заказ получить одобрение наблюдательный совет lufthansa . сумма заказ каталожный цена составить миллиард доллар . как отмечать airbus сделка сторона вновь подтвердить что lufthansa являться крупный мир эксплуатант самолёт airbus . большой авиакомпания германия использовать самолёт европейский авиаконцерн лайнер семейство десять . В заказать перевозчик судно лайнер экономичный версия . планироваться что быть использовать модернизация существующий флот lufthansa помочь снизить затрата компания топливо процент . использование как сократить расход топливо процент . семейство являться продавать самолёт airbus . заказ лайнер достигнуть тысяча . заказчик получить свыше тысяча . airbus сообщить доставка сто счёт . получатель стать malaysia airlines лайнер стать заказать . |ngramms концерн_airbus крупный_в_мир крупный_в_мир пассажирский_самолёт пресс_релиз получить_одобрение сумма_заказ миллиард_доллар как_отмечать самолёт_airbus самолёт_airbus быть_использовать снизить_затрата +1956 |text мексиканский миллиардер слить forbes год поставить место глобальный рейтинг богатый человек мир опередить размер состояние лидер рейтинг основатель microsift . сообщать forbes . произойти благодаря резкий рост стоимость акция телекоммуникационный холдинг слима america movil рынок сша мексика . итог оценочный стоимость america movil вырасти процент миллион доллар . В результат состояние мексиканский магнат увеличиться миллиард доллар . образ состояние слима превысить состояние оценка forbes составлять миллиард доллар . акция america movil начать дорожать как компания начало объявить намерение избавиться некоторый актив . решение быть новое антимонопольный законодательство . согласно нынешний требование компания мочь занимать процент телекоммуникационный рынок не_хотеть попасть новое обременительный правило . В настоящее время america movil контролировать мексика процент рынок мобильный телефон процент стационарный . слить планировать далёкий расширять присутствие рынок европа латинский америка . В стать что america mоvil намерить приобрести оферта дополнительный процент акция telekom austria благодаря что доля мексиканский гигант компания возрасти процент . слить год впервые вытеснить первое место рейтинг богатый человек мир версия forbes . мексиканец удаваться удерживать лидерство год когда вернуться первое место . В год когда forbes опубликовать свежий рейтинг миллиардер лидировать список состояние миллиард доллар . состояние слима занять место быть оценить миллиард доллар . |ngramms миллиардер_ глобальный_рейтинг богатый_человек богатый_человек лидер_рейтинг _ _ _ резкий_рост стоимость_акция телекоммуникационный_холдинг миллион_доллар В_результат миллиард_доллар миллиард_доллар миллиард_доллар миллиард_доллар состояние_ состояние_ объявить_о_намерение антимонопольный_законодательство телекоммуникационный_рынок В_настоящее_время процент_рынок мобильный_телефон процент_акция год_впервые первое_место мир_по_версия forbes_опубликовать рейтинг_миллиардер +1957 |text приобретение российский бизнесмен роман доля отец дядя финский клуб хельсинкский не_связать попадание миллиардер аркадия западный санкционный список . как передавать сообщить . планировать провести сделка большой год . семейный бизнес оставаться семья . происходить постепенный смена поколение . замена собственник арена клуб степень формальный работа ничто не_меняться . оперативный управление актив быть одобрение старший акционер заявить . что касаться санкция слово совпадение срок . учёт введение завершение сделка затянуться . потребоваться получить разрешение министерство иностранный финляндия одобрение юрист находиться сша . формальный процедура потребоваться месяц . как формальность быть соблюсти обнародовать сделка . сообщаться что бизнесмен приобрести доля отец дядя аркадия хельсинкский хоккейный клуб . сделка осуществляться компания longviс capital отойти роман . одновременно доля хк уменьшить российский миллиардер передать младший . быть купить летом год . сумма сделка не_разглашаться . С год хельсинкский клуб начать выступать континентальный хоккейный лига . иметь финский гражданство являться президент петербургский хоккейный клуб ска председатель совет директор кхл . владелец московский динамо . администрация сша ввести санкция компания включая подконтрольный смп банк дочерний структура инвесткапиталбанк . В конец попасть чёрный список евросоюз . В конец стать что банк nordea прекратить обслуживание финский счёт longvic capital . ранний италия быть арестовать собственность аркадия вилла сардиния . |ngramms российский_бизнесмен аркадия_ аркадия_ аркадия_ санкционный_список _ _ _ _ _ оперативный_управление что_касаться получить_разрешение бизнесмен__ приобрести_доля российский_миллиардер быть_купить _и_ сумма_сделка являться_президент председатель_совет_директор подконтрольный_ дочерний_структура чёрный_список В_конец что_банк быть_арестовать +1958 |text московский управление фас предписать московский городской телефонный сеть мгтс прекратить распространять телефон реклама согласие абонент . О решение антимонопольный служба сообщать rambler service . столичный управление фас россия выявить действие пао мгтс нарушение часть статья закон реклама . В законодательство запрещать распространение реклама сеть электросвязь использование телефонный отсутствие согласие абонент получение сообщение управление служба . заявитель пожаловаться уфас обращение указать что не_давать мгтс согласие реклама . В соответствие антимонопольный служба потребовать компания устранить нарушение прекратить распространение сообщение . фас ранний находить нарушение рекламный законодательство столичный телефонный сеть . В год антимонопольный ведомство признать незаконный реклама мгтс рассылать почта счёт оплата услуга . |ngramms управление_фас телефонный_сеть телефонный_сеть О_решение антимонопольный_служба антимонопольный_служба сообщать_rambler_news_service фас_россия антимонопольный_ведомство признать_незаконный +1959 |text британский компания merlin entertainments владеть аттракцион мир объявить намерение провести ipo первичный размещение акция . сообщаться материал . pdf организация . размещение акция состояться лондонский фондовый биржа . В рамка ipo компания планировать привлечь миллион фунт миллион доллар . бумага собственник merlin владелец группа lego kirkbi фонд cvc capital partners blackstone group . акционер ожидать что рамка ipo компания оценить миллиард фунт . сообщать bloomberg ссылка неназванный источник . информация издание merlin планировать ipo год вместо публичный размещение акция фонд cvc . merlin entertainments принадлежать известный аттракцион как legoland музей восковой фигура мадам тюссо . компания являться второе количество посетитель walt disney оператор аттракцион мир . состояние конец прошлое год чистый долг merlin составлять миллиард фунт . период начало год выручка компания увеличиться процент миллион фунт . |ngramms британский_компания объявить_о_намерение провести_ipo первичный_размещение размещение_акция размещение_акция фондовый_биржа В_рамка компания_планировать миллион_фунт миллион_фунт миллион_доллар владелец_группа capital_partners что_в_рамка ipo_компания компания_являться прошлое_год чистый_долг миллиард_фунт выручка_компания +1960 |text company решение закрыть дочка ооо нидать сок . сообщать коммерсантъ . С компания остановить работа завод подмосковный котельник новосибирск совокупный мощность составлять миллион литр год работать тысяча человек . В закрытие завод объяснять сокращение рынок сок россия год упасть процент . флагманский бренд нидать семья быть передать мултонуть российский соковый компания принадлежащий . судьба бренд нидать ! caprice не_решить . компания нидать сообщить власть новосибирский область предстоящий сокращение местный предприятие . письмо закрытие нидать получить регион . приобрести нидать сок год . компания быть величина производитель сок россия доля рынок процент . сделка обойтись американец миллион доллар . удержать доля нидать рынок сок последующий год не_удаться . российский союз производитель сок год доля компания составлять процент год снизиться процент . |ngramms coca_cola coca_cola coca_cola coca_cola coca_cola остановить_работа миллион_литр тысяча_человек закрытие_завод рынок_сок быть_передать новосибирский_область компания_быть производитель_сок производитель_сок доля_рынок миллион_доллар российский_союз год_доля компания_составлять год_снизиться +1961 |text замоскворецкий суд москва не_найти нарушение действие столичный нотариус сидорука заверить переписка афк система башнефть год . документ стать доказательство иск роснефть афк миллиард рубль арбитражный суд башкирия . заявить представитель роснефть итог судебный заседание . судья вынести решение отклонить иск система оспаривание нотариальный действие . афк просить признать неправильный отменить нотариальный действие отсмотр информация почтовый ящик система outlook принадлежащий ряд пользователь . мнение истец роснефть башнефть дать переписка доказывать что ответчик изначально осознавать убыточность башнефть реорганизация год когда компания контролировать система . письменный объяснение нотариус представить суд следовать что безотлагательность нотариальный действие обусловить опасность заражение компьютер вирус вымогатель wannacry petya назначить следующий предварительный заседание арбитражный суд республика башкортостан . С учёт произойти год атака компьютерный вирус сервер различный компания пао анк башнефть существовать реальный основание опасаться утрата электронный переписка невозможность последующий использование качество доказательство заявить суд представитель роснефть . напомнить что опасение подтвердиться вирусный атака сервер компания . представитель истец подчеркнуть что нет доказательство что нотариус быть допустить нарушение . В очередь юрист башнефть выразить убеждение что действие представитель афк направить затягивание процесс арбитражный суд башкирия . представитель афк арбитражный суд башкирия просить приостановить производство иск роснефть башнефть рассмотрение заявление столичный суд настаивать недостоверность алгоритм получение нотариус доступ архив сообщение . В обращаться внимание что осмотр доказательство производиться нотариус представитель афк система система инвест . дать случай присутствие не_требоваться поскольку право электронный письмо отправить получить использование служебный почта принадлежать башнефть . образ мочь идти что иметь место вторжение частный жизнь сотрудник . переписка отмечать представитель роснефть доказывать что афк год начало готовиться возможный иск взыскание убыток реорганизация башнефть . В бывший компания год электронный почта дать указание подготовить тезис обосновать реорганизация текущий бизнес стратегия башнефть достижение позитивный бизнес цель . |ngramms суд_москва топ_менеджер топ_менеджер миллиард_рубль судебный_заседание _ вынести_решение отклонить_иск просить_признать что_ответчик арбитражный_суд республика_башкортостан С_учёт существовать_реальный заявить_в_суд представитель_истец что_нет быть_допустить В_свой_очередь представитель_афк представитель_афк приостановить_производство рассмотрение_заявление дать_случай электронный_письмо иметь_место частный_жизнь отмечать_представитель что_афк иск_о_взыскание компания__ дать_указание +1962 |text аэрофлот выполнить обязательство пассажир трансаэро полный объём . поступить редакция лента . . В документ отмечаться что продажа рейс трансаэро осуществляться штатный режим . пассажир быть перевезти место назначение . кто решение отказаться полёт смочь сдать билет место приобретение штрафной санкция . В настоящее время проходить процесс интеграция оао ак трансаэро группа аэрофлот . выполнение обязательство пассажир трансаэро аэрофлот осуществлять поддержка федеральный агентство воздушный транспорт росавиация . трансаэро перейти операционный управление аэрофлот . управлять директор трансаэро стать заместитель генеральный директор аэрофлот . информация что крупный россия авиакомпания аэрофлот собираться купить процент плюс акция трансаэро появиться . сумма сделка мочь составить рубль . финансовый консультант санация трансаэро стать сбербанк . трансаэро занимать место объём перевозка страна . В парк компания входить самолёт . состояние конец текущий год чистый долг трансаэро составлять миллиард рубль миллиард приходиться краткосрочный долг . крупный кредитор являться втб миллиард рубль газпромбанк миллиард рубль . аэрофлот крупный наиболее динамично развивающийся авиационный холдинг россия . В год авиакомпания группа совокупность перевезти миллион пассажир . |ngramms пресс_релиз поступить_в_редакция В_документ что_продажа быть_перевезти место_приобретение В_настоящее_время федеральный_агентство воздушный_транспорт операционный_управление управлять_директор стать_заместитель генеральный_директор _ крупный_в_россия собираться_купить процент_плюс сумма_сделка мочь_составить стать_сбербанк В_парк компания_входить текущий_год чистый_долг миллиард_рубль миллиард_рубль миллиард_рубль крупный_кредитор являться_втб авиационный_холдинг авиакомпания_группа миллион_пассажир +1963 |text антимонопольный комитет украина амка обратиться департамент государственный исполнительный служба министерство юстиция требование наложить арест имущество средство газпром украина . глава ведомство сообщить facebook . заявление открытие исполнительный производство взыскание штраф пеня газпром направить департамент государственный исполнительный служба министерство юстиция сообщение . стать обеспечительный мера взыскание российский компания миллиард доллар штраф . киевский апелляционный суд отклонить жалоба газпром требовать отменить решение взыскание компания штраф . В начало год хозяйственный суд киев обязать газпром выплатить штраф злоупотребление монопольный положение рынок транзит газа пенить просрочка . слушание проходить закрытый режим . амка обратиться киевский суд начало . истец настаивать взыскание штраф размер миллиард доллар пеня сумма просрочка уплата . комитет ссылаться что российский сторона не_хотеть исполнять требование регулятор добровольный порядок . |ngramms антимонопольный_комитет департамент_государственный департамент_государственный исполнительный_служба исполнительный_служба глава_ведомство __сообщить взыскание_штраф российский_компания миллиард_доллар миллиард_доллар апелляционный_суд требовать_отменить взыскание_с_компания В_начало суд_киев транзит_газа закрытый_режим киевский_суд штраф_в_размер что_российский_сторона исполнять_требование +1964 |text итальянский компания pirelli планировать увеличить инвестиция россия несмотря санкция . форум россия звать ! сообщить председатель совет директор pirelli маркий тронкетти провер передавать . планировать инвестировать россия большой добавить что компания не_бояться текущий ситуация россия . В антимонопольный служба италия одобрить сделка приобретение роснефть процент холдинговый компания camfin владеть процент акция компания pirelli . компания pirelli быть создать год . первое производство шина pirelli стартовать год . компания заниматься полный цикл производство шина проектировка производство продажа . В производственный структура pirelli входить завод страна мир аргентина бразилия китай египет германия великобритания италия мексика румыния россия турция сша венесуэла . год россия pirelli занимать третье место крупный производитель шина . pirelli владеть процентный доля совместный предприятие госкорпорация ростёха pirelli tyre russia принадлежать шинный завод киров воронеж . |ngramms компания_pirelli компания_pirelli планировать_увеличить председатель_совет_директор что_компания текущий_ситуация антимонопольный_служба италия_одобрить процент_акция_компания страна_мир pirelli_занимать третье_место крупный_производитель pirelli_владеть +1965 |text авиакомпания аэрофлот выплатить миллион рубль пассажир трансаэро вернуть билет обанкротиться перевозчик . новость сообщить официальный представитель аэрофлот . слово компания не_располагать информация количество заявка пассажир трансаэро возврат билет статус исполнение поскольку сбор обработка заниматься обанкротиться перевозчик аэрофлот финансировать дать возврат . С аэрофлот прекратить перевозка пассажир трансаэро . аэрофлот объявить окончание работа оперативный штаб создать решение проблема авиакомпания трансаэро . спустя неделя центральный офис трансаэро где администрация перевозчик находиться год решить передать новый арендатор . трансаэро являться объём перевозка российский авиакомпания оказаться грань банкротство высокий нагрузка миллиард рубль включая лизинговый платёж миллиард задолженность банка фон падение спрос перелёт . компания перейти операционный управление аэрофлот начало . росавиация аннулировать сертификат эксплуатант трансаэро что компания прекратить полёт . перевозка пассажир трансаэро продолжаться сила группа аэрофлот необходимость российский перевозчик . |ngramms миллион_рубль вернуть_билет официальный_представитель количество_заявка возврат_билет перевозка_пассажир перевозка_пассажир работа_оперативный решение_проблема центральный_офис решить_передать российский_авиакомпания _нагрузка миллиард_рубль лизинговый_платёж задолженность_банка операционный_управление сертификат_эксплуатант прекратить_полёт +1966 |text авиакомпания вим сохранить оперативный управление самолёт . итог переговоры собственник воздушный судно сообщить перевозчик передавать . В компания что лизингодатель понимание отнестись ситуация оказаться компания выразить готовность поддержать сложный . счесть представить план вывод перевозчик кризис реалистичный . воздушный суд оставаться оперативный управление вим несмотря некоторый просрочка выплата лизинговый платёж перевозчик . В вим подчеркнуть что отзыв мораторий использование воздушный судно привести дальнейший ухудшение финансовый положение перевозчик мочь привести необратимый последствие . днём стать что следственный комитет задержать гендиректор главный бухгалтер авиакомпания вим мошенничество . местонахождение сбежать россия совладелец устанавливаться . долг авиакомпания кредитор росавиация составлять семь миллиард рубль . компания признаться что нея нет финансовый средство продолжение работа прекращать выполнение чартерный рейс . регулярный полёт продолжаться . вопрос перевозка пассажир вим взять контроль росавиация минтранс . |ngramms оперативный_управление оперативный_управление воздушный_судно воздушный_судно В_компания оказаться_компания выразить_готовность воздушный_суд лизинговый_платёж дальнейший_ухудшение финансовый_положение следственный_комитет задержать_гендиректор долг_авиакомпания миллиард_рубль что_у_нея продолжение_работа регулярный_полёт перевозка_пассажир +1967 |text арбитражный суд москва зарегистрировать иск основатель нлмк лисиный . сообщать рапси ссылка представитель суд . максим просить взыскать польза компания миллиард рубль . собеседник агентство не_смочь уточнить основывать требование истец . В карточка сайт суд исковый заявление нет . судебный тяжба нлмк продолжаться год . В год нлмк купить миллион доллар . предполагаться что столько максим получить оценка предприятие . сторона договориться инвестиция компания миллиард рубль . поздний обвинить вывод средство предприятие отношение начаться расследование уголовный подозрение преднамеренный банкротство . В год быть признать банкрот как компания задолжать нлмк миллиард рубль . В очередь максим обвинить комбинат использование выделить деньга назначение . В год международный коммерческий арбитражный суд палата россия обязать нлмк выплатить миллиард рубль поздний решение быть обжаловать . максим начать подавать иск нлмк рубеж арестовать актив комбинат . В год парижский суд признать действительный решение международный коммерческий арбитражный суд территория франция . В очередь нлмк заявить что не_иметь актив франция . |ngramms арбитражный_суд_москва зарегистрировать_иск макси_группа макси_группа макси_группа _ миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль собеседник_агентство не_смочь_уточнить требование_истец исковый_заявление миллион_доллар вывод_средство быть_признать В_свой_очередь В_свой_очередь международный_коммерческий международный_коммерческий арбитражный_суд арбитражный_суд торгово_промышленный палата_россия решение_быть арестовать_актив суд_признать что_не_иметь +1968 |text объединить авиакомпания россия входить группа аэрофлот объявить начало полёт . сообщение аэрофлот . рейс быть выполнить начало весенний летний навигационный сезон . перевозчик планировать выполнять полёт пункт страна мир включая пункт внутри страна . пулково где базироваться компания быть выполняться регулярный рейс направление внутри страна рубеж . В расписание появиться рейс баку римини частотность неделя соответственно . В новый регулярный рейс оренбург быть выполняться неделя . россия планировать летать внуково аэропорт оренбург симферополь краснодар адлер . В внуково направление . связать столица анапа адлер краснодар махачкала минеральный вод оренбург симферополь . авиакомпания быть летать москва париж ницца . К середина сезон планироваться открытие маршрут ряд дальневосточный направление вылет внуково владивосток магадан хабаровск . важный задача построение маршрутный сеть объединить авиакомпания являться активный развитие авиасообщение полуостров крым сообщение . симферополь россия запланировать прямая рейс крупный региональный центр страна волгоград екатеринбург казань краснодар минеральный вода нижний новгород новосибирск омск оренбург пермь ростов тюмень уфа челябинск . планироваться что частота полёт линия симферополь увеличиться рейс неделя есть сравнение год . помимо перевозчик планировать выполнять рейс региональный базирование маршрут краснодар екатеринбург оренбург адлер оренбург анапа международный адлер ереван ростов . авиакомпания россия входить группа аэрофлот . создать база региональный перевозчик группа россия оренбургский авиалиния . компания базироваться иметь филиал москва оренбург . |ngramms объединить_авиакомпания объединить_авиакомпания входить_в_группа входить_в_группа объявить_о_начало быть_выполнить планировать_выполнять планировать_выполнять страна_мир регулярный_рейс ростов_на_дону ростов_на_дону ростов_на_дону авиакомпания_быть К_середина петропавловск_камчатский южно_сахалинск маршрутный_сеть активный_развитие полуостров_крым региональный_центр нижний_новгород санкт_петербург санкт_петербург тель_авив +1969 |text экспертный подкомиссия гохран заблокировать продажа российский бриллиант масса карат алрос собираться реализовать аукцион sotheby . номер писать коммерсантъ ссылка письмо глава алмазодобывающий компания глава гохран . ведомство признать бриллиант уникальный вывоз камень россия запретить закон . письмо попросить пересмотреть решение что бриллиант быть изготовить алмаз масса карат не_быть отнести категория уникальный камень . глава алроса указывать средний характеристика запретить продажа бриллиант . В гохран издание сообщить что бриллиант мочь быть признанный уникальный случай алмаз не_быть отнести категория . аргумент польза запрет продажа стать что алмазный фонд россия госфонд отсутствовать камень совокупный характеристика обладать запретить продажа бриллиант . информация неназванный представитель гохран направить отказ повторный экспертиза спорный бриллиант . образ гохран заблокировать сделка алроса продажа бриллиант премиум класс sotheby . В середина стать что российский компания намерить подписать меморандум сотрудничество крупный аукционный дом . В рамка партнерство как sotheby быть продавать российский бриллиант заниматься продвижение . гохран блокировать продажа российский бриллиант . С конец год ведомство признать уникальный семь камень масса карат . лимитный стоимость составлять миллион доллар как рыночный цена информация многократно превысить лимитный оценка . |ngramms письмо_глава компания__ _ ведомство_признать ведомство_признать запретить_закон _в_письмо издание_сообщить мочь_быть запрет_на_продажа неназванный_представитель В_середина что_российский_компания подписать_меморандум В_рамка С_конец стоимость_составлять миллион_доллар рыночный_цена +1970 |text вэб намеренный выкупить подконтрольный шереметьево аэропорт владивосток . номер писать коммерсантъ ссылка неназванный источник . информация издание подконтрольный госкорпорация фонд развитие дальний восток выкупить шереметьево процент международный аэропорт владивосток старый терминал процент зао терминал владивосток построить атэс терминал . пакет фонд заплатить миллиард рубль . покупатель вернуть шереметьево кредит миллиард рубль выдать аэропорт владивосток . покупатель взять обслуживание кредит миллиард рубль госкорпорация выдавать строительство новое терминал . сделка информация издание планироваться закрыть осень . В шереметьево издание подтвердить что продавать доля аэропорт владивосток . В фонд развитие дальний восток сообщить что рассматривать возможность вхождение капитал компания управлять аэропорт . шереметьево пытаться доля аэропорт владивосток . аукцион быть состояться осень год торг отложить аэропорт решить саммит атэс . интерес актив проявлять дерипаск реновый . шереметьево отложить торг развить бизнес повысить стоимость актив . |ngramms аэропорт_владивосток аэропорт_владивосток аэропорт_владивосток аэропорт_владивосток подконтрольный_госкорпорация фонд_развитие фонд_развитие дальний_восток дальний_восток международный_аэропорт миллиард_рубль миллиард_рубль миллиард_рубль обслуживание_кредит новое_терминал рассматривать_возможность _дерипаск _ стоимость_актив +1971 |text богатый россиянин занимать место мир количество принадлежащий имя яхта длина метр . первое место миллиардер сша . сообщаться доклад распределение благосостояние мир wealth report подготовить аналитик компания knight frank . гражданин россия владеть яхта средний водоизмещение тысяча тонна средний длина метр . россия снг год лидировать закупка частное самолёт количество увеличиться процент бизнес джет . В азия покупка частное самолёт прошлое год вырасти процент северный америка процент . первое место мир частное самолёт находиться северный америка тысяча единица процент количество мир . В целое год россиянин состояние миллион доллар вырасти процент сравнение составить тысяча человек . ультрабогатый knight frank относить обладатель миллион доллар россия год стать большой процент тысяча человек . исследователь россиянин чей состояние превышать миллион доллар вырасти сравнение процент человек . |ngramms богатый_россиянин принадлежащий_имя гражданин_россия тысяча_тонна частное_самолёт частное_самолёт частное_самолёт северный_америка северный_америка тысяча_единица В_целое миллион_доллар миллион_доллар тысяча_человек тысяча_человек год_стать чей_состояние +1972 |text окружный суд гаага обязать бывший акционер компания юкос выплатить россия тысяча евро качество компенсация издержка . сообщать ссылка bloomberg . информация агентство компания veteran petroleum yukos universal hulley enterprises уплатить москва тысяча евро . окружный суд отменить решение арбитраж выплата россия миллиард доллар польза бывший акционер юкос . быть установить что рассмотрение иск подобный род не_входить компетенция дать инстанция . летом год третейский суд гаага признать россия виновный нарушение энергетический хартия . образ иск бывший акционер нефтяной компания быть удовлетворить москва обязать выплатить имя миллиард доллар качество возмещение ущерб . опираться решение офшор представлять интерес бывший акционер подать разный страна ряд иск требование взыскать средство арестовать актив российский госкомпания . бывший акционер юкос пытаться добиться исполнение решение арбитраж бельгия франция германия великобритания сша нидерланды . сделать местный суд имя удаваться . парижский суд отменить решение арест актив российский компания космический признать незаконный заморозка счёт французский представительство россия . роскосмос удаться добиться отмена блокировка французский счёт . бывший акционер нефтяной компания объявить намерение добиться взыскание россия миллиард доллар индия . мочь идти российский актив сфера оборонка ядерный энергетика поскольку москва дели заключать крупный сделка сфера . |ngramms бывший_акционер бывший_акционер бывший_акционер бывший_акционер бывший_акционер бывший_акционер тысяча_евро тысяча_евро отменить_решение миллиард_доллар миллиард_доллар миллиард_доллар быть_установить рассмотрение_иск дать_инстанция признать_россия нарушение_энергетический нефтяной_компания нефтяной_компания быть_удовлетворить обязать_выплатить представлять_интерес подать_в_разный ряд_иск арестовать_актив российский_госкомпания пытаться_добиться решение_арбитраж суд_отменить арест_актив российский_компания признать_незаконный удаться_добиться объявить_о_намерение российский_актив крупный_сделка +1973 |text российский железный дорога ржд рассчитать господдержка потребоваться инфраструктурный монополия год оценить сумма миллиард рубль . писать газета коммерсантъ . издание сумма определить госкомпания учёт ежегодный субсидия электричка поезд дальний следование . дефицит бюджет ржд мочь быть связать падение погрузка рост тариф уровень инфляция . источник издание что официальный обращение кабинет министр компания не_поступать расчёт возможный дефицит носить предварительный характер миллиард рубль плохой сценарий . собеседник что президент ржд затрагивать тема разговор лицо государство . считать что российский правительство традиционно войти положение ржд не_исключать что мочь быть сложность совет потребитель правительственный комиссия транспорт . В год просить президент россия помочь ржд грозить убыток итог год миллиард рубль . идти индексация железнодорожный тариф перевозка выше уровень инфляция процент вместо выделение миллиард рубль бюджет . В результат правительство пошло навстречу ржд компания добиться дополнительный повышение тариф миллиард рубль господдержка . |ngramms российский_железный_дорога миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль писать_газета поезд_дальний мочь_быть мочь_быть источник_издание возможный_дефицит носить_предварительный президент_ржд _ российский_правительство президент_россия__ помочь_ржд грозить_убыток выше_уровень В_результат добиться_дополнительный повышение_тариф +1974 |text роснефть консолидировать процент акция якутский нефтяной компания таас юрь сообщаться государственный нк . консолидация произвести дочерний структура роснефть рн восточный сибирь получить кредит головной компания миллиард доллар . сумма сделка составить миллиард доллар . совет директор одобрить покупка заседание . приобретение осуществляться этап . В год роснефть выкупить сбербанк процент акция якутский компания миллион доллар . покупка остаться акция быть одобрить фас текущий год . роснефть приобретение важный повышение эффективность работа среднеботуобинский месторождение таас юрь владеть лицензия . слово президент корпорация сечин месторождение являться первоклассный портфель роснефть . добыча нефть немой начаться текущий месяц согласно план год достигнуть миллион тонна начинать год превысить миллион тонна год . поставка нефть месторождение быть производиться нефтеперерабатывающий нефтехимический предприятие роснефть дальний восток кнр рамка долгосрочный контракт . покупка стать очередной приобретение корпорация небольшой нефтяной структура . В начало сообщаться что роснефть подписать соглашение основный условие покупка процент акция петроресурс владеть разведочный лицензия нефтегазовый блок дельта волга . |ngramms процент_акция процент_акция процент_акция нефтяной_компания пресс_релиз дочерний_структура восточный_сибирь головной_компания миллиард_доллар миллиард_доллар сделка_составить совет_директор миллион_доллар быть_одобрить текущий_год повышение_эффективность владеть_лицензия президент_корпорация _сечин добыча_нефть согласно_план год_достигнуть миллион_тонна миллион_тонна год_превысить поставка_нефть быть_производиться дальний_восток долгосрочный_контракт покупка_стать нефтяной_структура В_начало основный_условие +1975 |text сбербанк подать встречный иск лукойл миллион рубль рамка спорый задолженность завод красный баррикада кредитный организация предоставить банковский гарантия . сообщать интерфакс . как отмечать агентство дочерний структура нефтяной холдинг лукойл нижневолжскнефть кредитовать предприятие заёмщик обязательство не_исполнить . что лукойл попытаться взыскать миллион рубль гарантия . арбитражный суд астраханский область объявить перерыв рассмотрение решение иск сбербанк рассмотрение . представитель сбербанк агентство что встречный заявление касаться взыскание убыток лукойл нижневолжскнефть . предприятие красный баррикада гендиректор привлечь рассмотрение качество третье лицо . астраханский арбитраж удовлетворить претензия дочерний структура лукойл сбербанк миллион рубль . В суд находиться иск сумма миллион . В быть судебный решение взыскание баррикада польза лукойл миллион рубль . |ngramms миллион_рубль миллион_рубль миллион_рубль миллион_рубль кредитный_организация как_отмечать дочерний_структура дочерний_структура арбитражный_суд область_объявить взыскание_убыток третье_лицо удовлетворить_претензия +1976 |text скоростной электропоезд ласточка производство немецкий компания siemens ввести пассажирский эксплуатация . сообщаться концерн поступить редакция лента . . торжественный церемония запуск эксплуатация состояться московский вокзал . ласточка пассажир борт отправиться рейс маршрут чудово великий новгород . скоростной электропоезд быть ежедневно ездить маршрут чудово бологое . год планироваться начать эксплуатация ласточка казань сочи . работник siemens строить ласточка завод немецкий город крефелёд год . К время россия получить скоростной электропоезд рамка партия siemens поставить рф ласточка . В середина год планироваться начать производство партия поезд совместный предприятие siemens российский группа синара завод уральский локомотив свердловский область . степень локализация производство поезд составить процент . уральский локомотив приступить выполнение заказ вагон ласточка ржд сделать год . локализация производство дать этап планироваться довести процент . siemens располагать заказ технический обслуживание подвижный состав срок год . стоимость контракт ржд немецкий компания оцениваться миллиард евро . |ngramms немецкий_компания немецкий_компания пресс_релиз поступить_в_редакция санкт_петербург санкт_петербург санкт_петербург великий_новгород планироваться_начать В_середина год_планироваться начать_производство совместный_предприятие российский_группа свердловский_область дать_этап технический_обслуживание подвижный_состав стоимость_контракт миллиард_евро +1977 |text премия глава apple год вырасти процент . сообщать bloomberg . годовой вознаграждение складываться заработный плата миллион доллар бонус итог год миллион доллар пакет акция компания миллион доллар . премия исполнительный директор apple получить рост продажа . А заработать год миллион доллар компания получить премия миллион доллар . зарплата акция годовой вознаграждение достигнуть миллион доллар . финансовый показатель корпорация многое улучшиться благодаря выход модель iphone X отмечать агентство . В год корпорация apple признаться снижение производительность iphone старое аккумулятор . делаться исключительно предотвращение самопроизвольный выключение аппарат высокий нагрузка отмечать компания . разработчик быть далёкий внедрять функция . С выход ios . появиться iphone . В год агентство bloomberg сообщить что получить вознаграждение вид тысяча акция apple половина привязать показатель компания . стоимость составить миллион доллар . |ngramms глава_apple _ _ сообщать_bloomberg годовой_вознаграждение годовой_вознаграждение миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллион_доллар миллион_доллар пакет_акция_компания исполнительный_директор рост_продажа топ_менеджер компания_получить финансовый_показатель модель_iphone отмечать_агентство корпорация_apple агентство_bloomberg акция_apple показатель_компания +1978 |text украинский энергогенерировать компания центрэнерго провести переговоры возможный поставка уголь сша станция . соответствующий информация разместить сайт компания . В качество партнёр центрэнерго рассматривать американский фирма recursion ventures . В ход переговоры представитель компания обсудить технический характеристика уголь объём стоимость срок возможный поставка . В завершение встреча сторона выразить надежда плодотворный взаимовыгодный сотрудничество быстрый решение проблемный вопрос сообщение центрэнерго . центрэнерго крупный энергогенерировать предприятие украина . включать тепловой электростанция суммарный мощность составлять мегаватт процент мощность украинский электростанция . центрэнерго приходиться процент выработать электроэнергия страна . украина договориться покупка миллион тонна уголь юар . поставка украина быть возбудить уголовный повод злоупотребление подписание контракт генпрокуратура посчитать что цена топливо быть завысить . впоследствии поставщик южноафриканский компания steel mont отказаться подписывать новый договор укринтерэнерго . В качество свидетель проходить министр энергетика угольный промышленность украина . быть допросить руководство укринтерэнерго центрэнерго . украина месяц сталкиваться нехватка уголь обеспечение зимний отопительный сезон производство электричество . связать что большой часть шахта донбасс оказаться подконтрольный днр лнр территория быть повредить ход действие . |ngramms провести_переговоры соответствующий_информация В_качество В_качество американский_фирма В_ход представитель_компания возможный_поставка В_завершение выразить_надежда суммарный_мощность договориться_о_покупка миллион_тонна быть_возбудить подписание_контракт топливо_быть министр_энергетика украина_ большой_часть _действие +1979 |text холдинг интеррос мочь ipo первичный размещение акция алмазодобывающий компания алрос . номер писать газета ведомость ссылка неназванный источник . издание интерес ipo алроса проявить фонд семья оппенгеймер oppenheimer founds год быть совладелец алмазодобывающий корпорация de beers . В фонд алрос интеррос отказаться прокомментировать информация издание . как писать коммерсантъ ссылка неназванный источник власть попросить интеррос стать якорный инвестор ipo алроса опасаться приход капитал российский алмазодобытчик иностранный конкурент . сколько акция алроса мочь купить фонд неизвестно . мнение участник рынок предложение стать покупатель акция алроса мочь получить бизнесмен вексельберг . не_прокомментировать информация коммерсант . рынок планироваться разместить процент ценный бумага алроса семь процент принадлежащий росимущество столько принадлежащий правительство якутия . предварительный оценка указанный пакет стоить миллиард рубль . ipo российский алмазодобытчик запланировать осень текущий год . государство лицо росимущество принадлежать процент акция алмазодобывающий компания якутия процент восемь улус район республика восемь процент остальной акционер девять процент . |ngramms _ первичный_размещение писать_газета фонд_семья год_быть отказаться_прокомментировать информация_издание как_писать мочь_купить участник_рынок покупатель_акция __и_ альфа_группа не_прокомментировать_информация планироваться_разместить ценный_бумага семь_процент миллиард_рубль текущий_год процент_акция восемь_процент остальной_акционер девять_процент +1980 |text основатель крупный китайский онлайн alibaba ма поддержать инициатива президент россия создание экспорт российский товар сообщать . ма заявить время встреча . считать что необходимый помочь малое средний предприятие развивать деятельность . верить что инициатива создание частное позволить увеличить экспорт российский товар промышленный производство ма . слово дать россия alibaba возможность совместный развитие . выразить надежда что alibaba смочь активный развитие российский инфраструктура электронный торговля создание платформа электронный торговля . послание федеральный собрание предложить уровень правительственный проектный офис курировать создание крупный российский частное площадка сфера электронный торговля экспорт отечественный товар . alibaba специализироваться электронный коммерция основать ма год . компания являться крупный мир . В cередина год рыночный капитализация alibaba group составить миллиард доллар . |ngramms крупный_китайский поддержать_инициатива президент_россия__ интернетом_площадка интернетом_площадка российский_товар российский_товар премьер_министр _ _ что_необходимый что_инициатива позволить_увеличить промышленный_производство возможность_совместный выразить_надежда развитие_российский электронный_торговля электронный_торговля электронный_торговля федеральный_собрание крупный_российский отечественный_товар являться_один_из_крупный интернетом_корпорация рыночный_капитализация alibaba_group миллиард_доллар +1981 |text федеральный антимонопольный служба фас россия возбудить продуктовый сеть лента дискриминация поставщик вино . сообщать интерфакс . В фас установить что партнёр оказывать сопоставимый услуга стоимость разный компания причина отличаться . особый условие обслуживание быть создать мыть хеннесси дистрибьюшн русый уайтхолл Л дистрибьюшный кубань вино сообщить ведомство . рассмотрение лента уайтхолл назначить срок указанный . лента российский торговый сеть объединять супермаркет страна . основать год . прибыль компания год составить миллиард рубль выручка миллиард . крупный акционер процентный доля акция являться tpg capital европейский банка реконструкция развитие принадлежать восемь процент процент акция находиться свободный обращение free float . |ngramms федеральный_антимонопольный_служба россия_возбудить фас_установить партнёр_ особый_условие быть_создать санкт_петербург санкт_петербург санкт_петербург торговый_сеть прибыль_компания год_составить миллиард_рубль крупный_акционер процентный_доля восемь_процент процент_акция свободный_обращение +1982 |text сотовый оператор мтс ввести приезжать крым российский абонент тариф равный роуминговый внутри россия . лента . сообщить компания . исходящая звонок российский абонент мтс крым сеть компания россия телефон оператор регион откуда приехать стоять рубль минута вместо рубль . столько стоять входящая звонок россия . отправка sms сообщение обойтись рубль вместо рубль мобильный доступ интернет рубль мегабайт трафик вместо рубль килобайт . можно подключить внутрироссийский понижать опция роуминг . абонентский плата рубль быть бесплатный входящая звонок цена исходящая быть составлять рубль sms обойтись рубль . как уточнить мтс услуга территория республика крым севастополь абонент мтс россия предоставляться привлечение роуминговый партнёр оператор мтс украина . вопрос снижение цена коммерческий решение компания . сегмент сеть мтс украина крым не_являться частью российский сеть что не_решить необходимый правовой технический вопрос . находиться территория крым российский абонент мтс мочь пополнить счёт . можно сделать платёжный терминал сайт pay.mts.ru использование банковский карта помощь приложение лёгкий платёж . |ngramms сотовый_оператор российский_абонент российский_абонент российский_абонент сообщить_в_компания входящая_звонок входящая_звонок быть_бесплатный как_уточнить снижение_цена сегмент_сеть российский_сеть можно_сделать платёжный_терминал банковский_карта +1983 |text завод bosch siemens петербург производить холодильник стиральный машина останавливать производство отсутствие комплектовать . сообщать рбк ссылка источник знакомый проблема предприятие . слово источник завод использовать большой количество комплектовать турция контейнер стоять таможня . В начало завод остановить выпуск стиральный машина встать сборка холодильник . информация подтвердить эфир телеканал рбк председатель комитет промышленный политика инновация максим мейксин . остановиться завод производство стиральный машина bosch siemens дорабатывать смена завод производство холодильник заявить . исполнительный директор представительство американский торговый палата подтвердить что проблема петербургский завод турецкий комплектовать дополнительный проверка таможня существовать . президент россия подписать указ применение специальный экономический мера отношение турция . значиться запрет ввоз турецкий продукт россия соответствующий список опубликовать правительство эмбарго новое контракт турецкий строительный компания продажа туристический путёвка турция ряд мера . угроза оказаться проект строительство газопровод турецкий поток аэс акковать . турция давутогла заявить что анкара подготовить комплекс ответный мера экономический санкция россия не_уточнить деталь . В глава мид республика мевлютый чавушогла встреча российский коллега что контрсанкция сторона анкара не_идти . отношение москва анкара обостриться как ввс турция сбить российский фронтовой бомбардировщик су задействовать антитеррористический операция сирия . |ngramms завод_использовать большой_количество В_начало санкт_петербург санкт_петербург завод_по_производство завод_по_производство исполнительный_директор торговый_палата _ _ что_проблема петербургский_завод турецкий_комплектовать дополнительный_проверка президент_россия__ соответствующий_список строительный_компания строительство_газопровод турецкий_поток премьер_министр экономический_санкция глава_мид встреча_с_российский +1984 |text арбитражный суд москва признать банкрот крупный российский агрохолдинг разгулять . сообщать новость . В отношение компания открыто конкурсный производство . процедура банкротство инициировать агрохолдинг русагро . В конец год разгуляй быть ввести внешний наблюдение . сообщаться что суд включить долг компания русагро размер миллиард рубль очередь реестр кредитор . сторона не_удаться заключить мировой соглашение . год бывший владелец разгулять стать фигурант уголовный хищение агрохолдинг миллиард рубль . версия следствие год компания заключить договор фирма однодневка покупка . следователь считать что деньга уйти счёт фиктивный компания быть похитить . группа разгулять объединять отраслевой направление сельскохозяйственный зерновой сахарный подразделение взаимодействие розничный сеть . В холдинг входить элеватор семь мукомольный предприятие крупяной завод сахарный завод молочный консервный комбинат . контроль группа находиться тысяча гектар земля . |ngramms арбитражный_суд_москва признать_банкрот крупный_российский сообщать_риа_новость В_отношение процедура_банкротство В_конец быть_ввести долг_компания миллиард_рубль миллиард_рубль очередь_реестр мировой_соглашение бывший_владелец _ топ_менеджер компания_заключить что_деньга розничный_сеть +1985 |text группа российский банкир арестовать хищение финансовый учреждение миллиард рубль . писать коммерсантъ . В год организовать выдача заведомо невозвратный кредит подконтрольный сообщник фирма однодневка миллиард рубль . качество залоговый обеспечение кредитный договор указываться сотня бочка дорогостоящий химический сырьём . тара красивый наклейка следствие находиться обыкновенный вод отмечать издание . деньга впоследствии быть украсть . средство похитить банк инвестиционный союз пульс столица . задолжать кредитор миллиард рубль миллиард рубль миллион рубль соответственно . лишиться лицензия год . коммерсантъ сообщать арест группа разорять банка работать . банк россия начать активный оздоровление финансовый сектор год . цб стать регулярно отзывать лицензия банк . инициатор процесс выступить назначить пост руководитель регулятор . год право ведение банковский деятельность лишиться кредитный организация . |ngramms финансовый_учреждение миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль топ_менеджер топ_менеджер кредитный_договор отмечать_издание впоследствии_быть миллион_рубль банк_россия финансовый_сектор _ банковский_деятельность кредитный_организация +1986 |text инвестиционный компания jab основный акционер reckitt benckiser выпускать vanish calgon dosia бытовой химия договориться приобретение голландский производитель кофе чай D . E . masterblenders . как официальный сумма сделка мочь составить миллиард евро . образ стать крупный потребительский рынок европа год . акционер D . E . masterblenders производить чаять кофе бренд как pickwick piazza oro moccona быть предложить акция евро штука . сравнение фондовый биржа стоять евро . руководство голландский компания заявить что полностью поддерживать сделка . D . E . masterblenders недавний время входить состав американский компания sara lee . В год разделиться часть североамериканский актив достаться компания название hillshire brands европейский быть выделить D . E . masterblenders . что касаться jab аббревиатура расшифровываться как johann A . benckiser имя основатель компания benckiser входить reckitt benckiser . jab владеть миноритарный пакет гигант производить бытовой химия десятка различный бренд . впервые jab вложиться чаять кофе год приобрести американский компания peet coffee tea caribou coffee |ngramms инвестиционный_компания основный_акционер пресс_релиз сумма_сделка мочь_составить миллиард_евро рынок_европа быть_предложить фондовый_биржа входить_в_состав американский_компания американский_компания быть_выделить что_касаться основатель_компания владеть_миноритарный десятка_различный +1987 |text сеть магазин продажа бытовой техника электроника М . видео намерить купить ближний конкурент сеть эльдорадо . номер писать газета коммерсантъ ссылка неназванный источник . сделка состояться стать крупный российский рынок сегмент продажа бытовой электроника . издание М . видео обратиться федеральный антимонопольный служба фас ходатайство покупка сто процент бизнес эльдорадо чешский ppf group . В фас газета заявить что заявка конец рабочий не_быть официально зарегистрировать . В ppf group М . видео отказаться дать комментарий относительно возможный сделка представитель М . видео что задача руководство компания входить повышение акционерный стоимость консолидация являться способ обеспечить рост . В год эльдорадо М . видео обсуждать возможность объединение . вариант быть обмен акция контроль образоваться компания получить ppf group . сделка состояться объединить компания занять процент рынок . конец год стать что компания прекратить переговоры слияние . как сообщать коммерсантъ ссылка неназванный источник сторона не_сойтись цена ppf group настаивать оценка бизнес М . видео исходить рыночный котировка М . видео считать что не_отражать реальный стоимость актив . прекращение переговоры осень год капитализация М . видео ммвб составлять миллиард рубль . текущий год московский биржа рыночный стоимость М . видео оцениваться миллиард рубль . М . видео занимать первое место российский рынок бытовой техника электроника доля процент . рыночный доля эльдорадо составлять процент . выручка М . видео являться лидер рынок уступать эльдорадо торговый . начать М . видео быть гипермаркетовый эльдорадо собственный гипермаркетовый магазин работать франчайзинг . итог год оборот М . видео увеличиться примерно процент превысить миллиард рубль продажа эльдорадо вырасти приблизительно процент достигнуть миллиард рубль . |ngramms сеть_магазин ближний_конкурент писать_газета сделка_состояться сделка_состояться стать_крупный федеральный_антимонопольный_служба сто_процент пресс_служба отказаться_дать возможный_сделка _ руководство_компания обсуждать_возможность обмен_акция компания_получить объединить_компания процент_рынок что_компания как_сообщать стоимость_актив год_капитализация миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль текущий_год рыночный_стоимость первое_место рыночный_доля лидер_рынок год_оборот +1988 |text ситуация закрытие московский станция метро недоразумение заявить компания crocus group являться инвестор объект . что прилагать усилие решить возникнуть проблема передавать интерфакс . В crocus group заявить что московский власть не_проинформировать руководство компания какой проблема безопасность выявить объект . никакой письменный уведомление что станция метро быть закрываться не_получать агентство президент crocus group . добавить что компания не_являться собственник станция . метро страна мочь принадлежать никакой частный сторона никак не_оформлять . финансировать строительство заявить . слово закрытие станция неясно как быть обеспечить транспортный доступность московский международный автомобильный салон ммас начаться выставочный комплекс крокус экспо . надо закрыть крокус концертный зал автосалон павшинский понять перекрыть человек не_жить быть метро нужно . зампредседатель профсоюз московский метрополитен собачкина очередь заявить что работник подземка не_получать никакой распоряжение вопрос закрытие станция . мера безопасность понятие растяжимый . У работа никакой бумага не_приходить повод закрытие национальный служба новость нсн . стать что станция арбатско покровский линия быть закрытый . В московский метрополитен заявить что не_соответствовать норма технологический пожарный транспортный безопасность . работать станция не_быть пора собственник не_устранить нарушение . станция открытый год расположить территория мякининский пойма входящая состав городской поселение красногорск московский область недалеко мкад непосредственный близость крокус экспо . проектирование строительство финансироваться бюджет москва область инвестиция crocus group . |ngramms станция_метро станция_метро заявить_в_компания возникнуть_проблема пресс_служба московский_власть руководство_компания _ что_компания заявить_ закрытие_станция закрытие_станция быть_обеспечить московский_международный автомобильный_салон концертный_зал московский_метрополитен московский_метрополитен мера_безопасность национальный_служба_новость что_станция быть_закрытый московский_область +1989 |text финансовый блог wall st выбрать компания чей акция наибольший степень вероятность вырасти время простой государственный учреждение . автор заметка огг john ogg предположить что выигрыш оказаться компания производить товар услуга пользоваться повседневный спрос . идти пищевой продукт телекоммуникационный услуга сфера развлечение . В огг прогнозировать рост спрос продукция табачный компания altria group reynolds american владеть торговый марка marlboro camel соответственно . В очередь рост спрос привести повышение продажа рост цена акция компания . огг предполагать увеличение продажа пиво мочь повысить котировка крупный пивоваренный компания мир anheuser busch inbev . владеть популярный сша бренд budweiser . неоплачиваемый отпуск позволить федеральный чиновник большой время проводить интернет . В wall st предположить что вырасти котировка акция aol . группа владеть популярный ресурс huffington techcrunch . соответственно вырасти интерес пользователь facebook . огг предупреждать что котировка социальный сеть мочь растить медленный компания список международный охват facebook зависимость американский рынок . В сфера развлечение огг полагать вероятный всплеск интерес кино что поднять котировка оператор кинотеатр cinemark holdings организатор тв вещание sinclair broadcast group . В медицинский отрасль wall st прогнозировать увеличение стоимость акция church dwight производить контрацептив . предприятие продукция услуга быть пользоваться спрос огг назвать оператор низкобюджетный магазин dollar general corp сеть закусочный быстрый питание domino pizza . В сша государственный ведомство сократить объесть деятельность непринятый бюджет финансовый год . В неоплачиваемый отпуск мочь уйти тысяча человек . ущерб американский экономика простой оценить миллион доллар . палата представитель конгресс сша большинство принадлежать республиканец отказаться одобрить бюджет следующий год существенный правка медицинский реформа . проведение настаивать президент партия демократ . В условие отсутствие бюджет федеральный ведомство работать ограниченный режим . |ngramms чей_акция государственный_учреждение телекоммуникационный_услуга прогнозировать_рост торговый_марка В_свой_очередь рост_спрос продажа_пиво пивоваренный_компания владеть_популярный владеть_популярный федеральный_чиновник большой_время социальный_сеть американский_рынок что_поднять стоимость_акция быстрый_питание В_сша сократить_объесть финансовый_год мочь_уйти тысяча_человек американский_экономика миллион_доллар следующий_год условие_отсутствие +1990 |text задолженность исполнитель коммунальный услуга управлять компания жкх товарищество собственник жильё жилищный кооператив московский объединить энергетический компания моэк тепловой энергия начать год превысить миллиард рубль . материал комсомольский правда . задолженность возникнуть результат неплатёж отопление встроить пристроенный нежилой помещение многоквартирный дом оцениваться миллиард рубль . подъезд лестничный клетка подвал чердак как правило магазинчик офис парикмахерский прочий коммерческий объект расположить многоквартирный дом . В публикация указываться что год моэк выявить здание тепловой нагрузка нежилой помещение не_включить договор теплоснабжение . неплатёж являться фактор формирование задолженность нежилой помещение тепловой энергия . ситуация владелец помещение оплачивать потребление тариф установленный жилой помещение являться льготный субсидироваться городской бюджет оборачиваться дополнительный расход как город компания . перевод жилой помещение нежилой потребитель зачастую игнорировать внесение соответствующий изменение договор моэк . В компания предлагать управлять компания товарищество собственник жильё жилищный кооператив год урегулировать вопрос теплоснабжение нежилой помещение многоквартирный дом . В срок организация погасить задолженность предоставить документ необходимый внесение изменение договор теплоснабжение горячее водоснабжение неоформленный нагрузка нежилой помещение . В случай моэк не_быть применять указанный лицо мера ответственность бездоговорный потребление . начинать год компания запланировать совместный представитель управа префектура правоохранительный орган проверка многоквартирный дом наличие нежилой помещение тепловой нагрузка не_учесть действующий договор . результат потребитель не_выполнять требование законодательство быть применить мера гражданский административный ответственность . |ngramms управлять_компания управлять_компания жилищно_строительный жилищно_строительный московский_объединить энергетический_компания год_превысить миллиард_рубль миллиард_рубль как_правило В_публикация жилой_помещение жилой_помещение дополнительный_расход компания_предлагать погасить_задолженность правоохранительный_орган действующий_договор требование_законодательство административный_ответственность +1991 |text ижевский автозавод принадлежать автоваз текущий год выпустить автомобиль lada vesta . сообщить президент автоваз бу андерссон передавать интерфакс . слово андерссон машина быть собрать ранний план . год андерссон сообщать что производственный план ижевский автозавод год составлять тысяча автомашина lada vesta . поздний заявить что план мочь быть увеличить тысяча автомобиль . пилотный партия машина тип быть выпустить ижевск год крупносерийный сборка начаться год . розничный продажа стартовать месяцами поздний . ижевский автозавод год выпустить тысяча автомобиль включая модель nissan sentra nissan tiida lada granta liftback lada vesta . автомобиль lada vesta относиться B класс создать автоваз замена производство машина семейство lada priora . стоимость разработка составить миллиард рубль . компоновка машина переднеприводной . выпускаться вариант четырехдверный седан пятидверной хэтчбек универсал . |ngramms lada_vesta lada_vesta lada_vesta lada_vesta бу_андерссон быть_собрать производственный_план год_составлять мочь_быть тысяча_автомобиль тысяча_автомобиль партия_машина розничный_продажа модель_nissan миллиард_рубль +1992 |text арбитражный суд москва отменить обеспечительный мера вид арест денежный средство корпорация уралвагонзавод увз чтз уралтрак размер миллион рубль . сообщать . В уралвагонзавод обжаловать решение арбитражный суд москва арест денежный средство предприятие сумма миллион рубль заявление качество обеспечительный мера . представитель увз заявить суд что обеспечительный мера необоснованный чрезмерный . слово стоимость недвижимый имущество увз миллиард рубль чтз уралтрак миллиард рубль являться подконтрольный государство структура не_предпринимать мочь предпринимать мера уменьшение имущество . обязательство спорный кредит миллион рубль слово представитель увз обеспечить залог имущество балансовый стоимость миллион рубль рыночный миллиард рубль . сообщить что основной долг кредит погасить остаться неустойка размер миллион рубль . представитель суд опровергнуть информация погашение долг . слово никакой оплата не_производиться . арбитражный суд москва рамка иск наложить арест денежный средство принадлежащий увз дочерний предприятие . обеспечительный мера рамка иск кредитный учреждение миллион рубль . согласно определение суд совокупный размер просрочить неисполненный обязательство увз составлять миллиард рубль . заёмщик не_исполнять обязательство уплата процент основный долг год . суд прийти вывод что опасение что непринятие мера обеспечение иск мочь затруднить сделать невозможный будущее исполнение судебный акт обоснованный . разместить газета коммерсантъ объявление намерение обратиться суд иск банкротство уралвагонзавод . банк подать иск арбитражный суд москва взыскание уралвагонзавод миллиард рубль миллион доллар кредит . соответчик выступать чтз уралтрак технопарк тракторозаводский . предварительный рассмотрение назначить . иск быть подать . корпорация уралвагонзавод являться крупный производитель танк мир доля приходиться процент выпустить машина . производить основной танк Т смена прийти танк армата . корпорация являться крупный производитель железнодорожный вагон . |ngramms арбитражный_суд_москва арбитражный_суд_москва арбитражный_суд_москва денежный_средство денежный_средство денежный_средство научно_производственный научно_производственный миллион_рубль миллион_рубль миллион_рубль миллион_рубль миллион_рубль миллион_рубль обжаловать_решение альфа_банк альфа_банк альфа_банк альфа_банк альфа_банк альфа_банк представитель_увз заявить_в_суд миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль миллиард_рубль подконтрольный_государство что_основной погашение_долг дочерний_предприятие кредитный_учреждение совокупный_размер уплата_процент основный_долг иск_мочь исполнение_судебный обратиться_в_суд иск_о_банкротство подать_иск миллион_доллар быть_подать являться_один_из_крупный являться_один_из_крупный выпустить_машина железнодорожный_вагон +1993 |text министерство потребительский рынок услуга московский область приостановить лицензия продажа алкоголь областной компания auchan . заявить директор внешний коммуникация ашан россия сообщать . подмосковный магазин ашан реализация спиртное напиток запретить . как компания мера как можно скорее возобновить продажа алкоголь торговый . слово передавать интерфакс запрет реализация алкоголь мочь негативно сказаться динамика продажа сеть как спиртное напиток приходиться существенный доля выручка гипермаркетовый . В ашан россия пояснить что росалкогольрегулирование московский область обнаружить ошибка декларация оборот алкогольный продукция . В областной министерство потребительский рынок услуга несмотря корректировка предоставить компания приостановить действие лицензия . российский рынок французский сеть auchan работать год . управление ашан россия находиться магазин ашан гипермаркетовый ашан сити радуга . В год выручка ашан увеличиться процент превысить миллиард рубль . российский власть приостанавливать продажа алкоголь торговый auchan . год московский сеть реализация крепкий спиртное напиток прерываться нарушение ритейлер норма пожарный безопасность год что столичный правительство ввести новое требование учёт оборот алкоголь розничный торговля . |ngramms московский_область московский_область продажа_алкоголь продажа_алкоголь продажа_алкоголь внешний_коммуникация ашан_россия ашан_россия ашан_россия _ как_отметить_ как_можно существенный_доля алкогольный_продукция предоставить_компания приостановить_действие год_выручка миллиард_рубль российский_власть год_в_московский ввести_новое розничный_торговля +1994 |text группа sollers планировать начать поставка внедорожник uaz patriot никарагуа искать дистрибьютор . сообщить лента . автомобилестроительный компания . слово представитель sollers идти поиск партнёр помочь продвигать российский внедорожник страна соседний рынок . активизировать экспортный деятельность поскольку дополнительный преимущество дать девальвация рубль . сокращение внутренний рынок заставлять искать компенсация выпадать объём экспортный рынок добавить . делегация sollers отправиться страна половина быть определить основной параметр поставка объём срок . российский торговый представитель никарагуа рассказать что sollers намерить поставлять uaz patriot страна поскольку внедорожник интересный местный население . большой интерес автомобильный сектор новый модель уаз . есть стереотип отношение цена качество цитировать новость . торгпредство россия слово помогать sollers поиск дистрибьютор . В стать что американский ford получить контроль совместный предприятие sollers выкупить дополнительный эмиссия привилегированный акция . выручить деньга быть направить реализация инвестиционный программа сп . структура владение обыкновенный акция предприятие не_меняться оставаться паритетный . группа sollers выпускать автомобиль уаз метод сборка ssangyong isuzu . рамка сп компания собирать машина ford автомобиль toyota mazda владивосток . |ngramms группа_sollers группа_sollers начать_поставка поиск_партнёр девальвация_рубль внутренний_рынок экспортный_рынок быть_определить российский_торговый __рассказать местный_население новый_модель американский_ford получить_контроль выручить_деньга инвестиционный_программа акция_предприятие выпускать_автомобиль +1995 |text производитель смартфон blackberry создать специальный комитет быть обсудить будущее компания потенциальный продажа сторонний инвестор . официальный blackberry . В сообщение что комитет рассмотреть возможный стратегический партнерство совместный предприятие производитель альянс компания альтернатива . агентство ссылка анонимный источник сообщать что blackberry обсуждать возможность выкуп собственный акция биржа . фон ценный бумага производитель смартфон подрасти цена девять процент . снижаться полтора процент . blackberry год считаться крупный игрок рынок смартфон проиграть конкуренция apple samsung . В итог второе квартал год доля смартфон операционный система blackberry снизиться согласно исследовательский компания idc процент . год аналогичный показатель составлять процент . В результат смартфон blackberry os занимать место популярность смартфон android ios windows phone . акция blackberry год подняться процент год упасть процент . пик доллар штука ценный бумага компания достигнуть год . акция blackberry оцениваться дорогой доллар . |ngramms производитель_смартфон производитель_смартфон создать_специальный пресс_релиз В_сообщение стратегический_партнерство совместный_предприятие источник_сообщать обсуждать_возможность собственный_акция ценный_бумага ценный_бумага девять_процент полтора_процент считаться_один_из_крупный рынок_смартфон В_итог второе_квартал год_доля операционный_система аналогичный_показатель В_результат акция_blackberry доллар_за_штука компания_достигнуть +1996 |text tesla объявить добровольный отзыв тысяча кроссовер model X возможный складывание задний сидение авария передавать . время тестирование автомобиль корпорация обнаружить небольшой нарушение отладка кабель создавать риск что время дтп спинка левый сидение задний ряд мочь загнуться вперёд . необходимый привести порядок незначительный количество проводы складываться сидение некоторый машина model X год выпуск пояснить компания . В tesla отмечать что сообщение проблема авария связанный дефект не_поступать . компания готовый провести диагностик автомобиль model X выпустить год год провести наладка случай необходимость . В год сообщаться что корпорация tesla искать помещение москва открытие офис сервисный центр . tesla являться наиболее популярный марка электромобиль россия доля приходиться процент продажа сегмент . tesla motors американский автомобилестроительный компания производить машина электротяга . В год обогнать производитель электрокар тысяча машина мир . В tesla инвестировать основатель google пейдж основатель paypal маск президент ebay джефри сколл . производитель электрокар настоящее время выпускать модель автомобиль седан model S кроссовер model X . |ngramms что_в_время год_выпуск пояснить_в_компания В_tesla В_tesla компания_готовый что_корпорация санкт_петербург открытие_офис шоу_рум наиболее_популярный tesla_motors тысяча_машина _маск +1997 |text google вновь стать хороший работодатель сша . свидетельствовать рейтинг издание fortune опубликовать . комментировать лидерство google рейтинг наиболее привлекательный сотрудник компания составитель что стоимость акция компания год превысить тысяча доллар . важный многий сотрудник одновременно являться акционер . поощрять волонтерство работник . часть участвовать благотворительный проект гана индия . второе место остаться разработчик программный обеспечение sas сохранить позиция итог год . основный преимущество сотрудник sas являться медицинский центр территория офис . третье место привлекательность выйти консалтинговый компания boston consulting group год полувековой юбилей . как отмечать fortune сотрудник boston consulting group получить интерактивный настольный скульптура любимый цитата основатель компания что помощь длинный рычаг опора смочь перевернуть мир . У есть опора bcg . В десятка оказаться финансовый консультант edward jones место ипотечный агентство quicken loans место разработчик биотехнология genentech место оператор облачный сервис salesforce . место разработчик intuit место финансовый компания robert W . baird место замыкать десятка девелопереть dpr construction . fortune выбрать хороший сотрудник компания . место оказаться юридический фирма cooley . комментировать результат cooley составитель рейтинг обратить внимание что женщина составлять процент персонал компания руководство процент достигать . |ngramms стать_хороший рейтинг_издание сотрудник_компания сотрудник_компания стоимость_акция_компания год_превысить тысяча_доллар интернетом_гигант благотворительный_проект программный_обеспечение медицинский_центр как_отмечать group_получить основатель_компания что_с_помощь оказаться_финансовый финансовый_компания место_оказаться юридический_фирма комментировать_результат обратить_внимание персонал_компания +1998 |text сервис микроблог twitter собираться объявить текущий неделя массовый увольнение сотрудник . сообщать bloomberg ссылка осведомить источник . информагентство идти сокращение штат восемь процент приблизительно человек . итоговый подлежащее увольнение мочь измениться . решение увольнение twitter как быть публикация отчётность прибыть третье квартал . официально компания отказаться комментировать информация . В сообщаться что совет директор twitter рассматривать возможность продажа компания отдельный сервис . цена twitter мочь составить миллиард доллар рынок не_счесть сумма завысить . претендент покупка компания называться владеть google корпорация alphabet apple принадлежащий магнат мердок холдинг century fox . В год twitter объявить сокращение восемь процент штат оптимизация бизнес . увольнение затронуть сотрудник штат тысяча человек . социальный сеть twitter представлять сервис микроблог публичный обмен короткий сообщение . ежемесячный аудитория активный пользователь превышать миллион человек . |ngramms twitter_собираться сокращение_штат восемь_процент восемь_процент третье_квартал отказаться_комментировать совет_директор рассматривать_возможность миллиард_доллар претендент_на_покупка оптимизация_бизнес тысяча_человек социальный_сеть активный_пользователь миллион_человек +1999 |text французский автомобильный группа psa peugeot citro итог год получить убыток размер миллиард евро . сообщаться отчёт компания . год psa заработать миллион евро . как отмечать presse убыток являться крупный история существование компания . выручка группа отчётный период упасть процент миллиард евро . psa объяснить убыток обесценивание актив миллиард евро . исключить переоценка актив компания равно получить убыток размер миллион евро как год операционный прибыль составить миллиард евро . peugeot citro разработать план реструктуризация соответствие группа намерить год сократить тысяча сотрудник закрыть завод олен су буа пригород париж . отмечать что остановка работа предприятие стать закрытие французский автомобильный завод год . В psa объяснять что вынудить пойти мера спад продажа автомобиль европа ассоциация европейский производитель автомобиль год продажа упасть восемь процент миллион штука спад быть сильный год . профсоюз выступить реструктуризация сокращение рабочий место несмотря что группа обещать предоставить сократить сотрудник рабочий место . работник дочка psa подать материнский компания суд требовать отказаться изменение . В конец апелляционный суд париж приостановить действие план реструктуризация . |ngramms французский_автомобильный французский_автомобильный убыток_в_размер убыток_в_размер миллиард_евро миллиард_евро миллиард_евро миллиард_евро отчёт_компания миллион_евро миллион_евро как_отмечать являться_крупный существование_компания выручка_группа отчётный_период объяснить_убыток операционный_прибыль план_реструктуризация план_реструктуризация тысяча_сотрудник что_остановка работа_предприятие что_вынудить продажа_автомобиль ассоциация_европейский производитель_автомобиль год_продажа миллион_штука рабочий_место рабочий_место группа_обещать В_конец апелляционный_суд приостановить_действие diff --git a/topicnet/demos/topic_prior_regularizer_tutorial.ipynb b/topicnet/demos/topic_prior_regularizer_tutorial.ipynb new file mode 100644 index 0000000..84436fc --- /dev/null +++ b/topicnet/demos/topic_prior_regularizer_tutorial.ipynb @@ -0,0 +1,424 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Пример работы с TopicPriorRegularizer\n", + "\n", + "В данном ноутбуке рассматривается применение и влияние на результат TopicPriorRegularizer и его версии с семплированием априорных вероятностей $\\varphi_t$ из распределения Дирихле." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TopicPriorRegularizer\n", + "$$R(\\Phi,\\Theta) = \\sum_t\\sum_w\\beta_t\\ln\\phi_{wt}$$\n", + "$$\\frac{\\partial R}{\\partial\\Phi_{wt}} = \\frac{\\beta_t}{\\varphi_{wt}}$$" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "from numpy import random\n", + "from matplotlib import pyplot as plt\n", + "\n", + "import artm" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append('../../')\n", + "\n", + "from topicnet.cooking_machine.dataset import Dataset\n", + "\n", + "from topicnet.cooking_machine.models import TopicModel\n", + "from topicnet.cooking_machine.models.topic_prior_regularizer import TopicPriorRegularizer\n", + "from topicnet.cooking_machine.models.topic_prior_regularizer import TopicPriorSampledRegularizer\n", + "\n", + "from topicnet.viewers.top_tokens_viewer import TopTokensViewer\n", + "from topicnet.viewers.top_documents_viewer import TopDocumentsViewer" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Загрузка данных" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Используемая для моделирования коллекция содержит 1000 документов по теме \"Бизнес\" и 100 документов по теме \"Музыка\"." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "../../topicnet/cooking_machine/dataset.py:343: UserWarning: Attempted to use batches for different dataset.Overwriting batches in data/lenta_1000_100_batches\n", + " warnings.warn(W_DIFF_BATCHES_1 + W_DIFF_BATCHES_2.format(batch_vectorizer_path))\n" + ] + } + ], + "source": [ + "DATA_PATH = 'data/lenta_1000_100.csv'\n", + "\n", + "dataset_lenta = Dataset(DATA_PATH, batch_size=10)\n", + "dictionary_lenta = dataset_lenta.get_dictionary()\n", + "batch_vectorizer_lenta = dataset_lenta.get_batch_vectorizer()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tags\n", + "Бизнес 1000\n", + "Музыка 100\n", + "Name: id, dtype: int64" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.read_csv(DATA_PATH).groupby('tags').count()['id']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Проведение обучения на 2 темы" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
                                                    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
                                                    Unnamed: 0Unnamed: 0.1urltitletexttopicidraw_lemmatizedlemmatizedngrammsvw_text
                                                    tags
                                                    Бизнес10001000100010001000100010001000100010001000
                                                    Музыка100100100100100100100100100100100
                                                    \n", + "
                                                    " + ], + "text/plain": [ + " Unnamed: 0 Unnamed: 0.1 url title text topic id \\\n", + "tags \n", + "Бизнес 1000 1000 1000 1000 1000 1000 1000 \n", + "Музыка 100 100 100 100 100 100 100 \n", + "\n", + " raw_lemmatized lemmatized ngramms vw_text \n", + "tags \n", + "Бизнес 1000 1000 1000 1000 \n", + "Музыка 100 100 100 100 " + ] + }, + "execution_count": 125, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.read_csv('data/lenta_1000_100.csv').groupby('tags').count()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "topic_prior_reg = TopicPriorRegularizer(name='topic_prior', tau=5, num_topics=2, beta=[10, 1])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "model_lenta = artm.ARTM(num_topics=2, cache_theta=True)\n", + "model_lenta.scores.add(artm.scores.PerplexityScore(name='perplexity'))\n", + "model_lenta.initialize(dictionary_lenta)\n", + "\n", + "model_lenta_unbalanced = artm.ARTM(num_topics=2, cache_theta=True)\n", + "model_lenta_unbalanced.scores.add(artm.scores.PerplexityScore(name='perplexity'))\n", + "model_lenta_unbalanced.initialize(dictionary_lenta)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "topic_model_lenta = TopicModel(artm_model=model_lenta, model_id='model_lenta')\n", + "topic_model_lenta_unbalanced = TopicModel(artm_model=model_lenta_unbalanced, model_id='model_lenta_unbalanced')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "topic_model_lenta._fit(batch_vectorizer_lenta, 10, custom_regularizers={topic_prior_reg.name: topic_prior_reg})\n", + "\n", + "topic_model_lenta_unbalanced._fit(batch_vectorizer_lenta, 10)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Баланс документов в модели с регуляризатором:\n", + "topic_1 1048\n", + "topic_0 52\n", + "dtype: int64\n", + "\n", + "Баланс документов в модели без регуляризатора:\n", + "topic_0 634\n", + "topic_1 466\n", + "dtype: int64\n" + ] + } + ], + "source": [ + "print('Баланс документов в модели с регуляризатором:\\n{}\\n'.format(\n", + " topic_model_lenta.get_theta().idxmax().value_counts()\n", + "))\n", + "\n", + "print('Баланс документов в модели без регуляризатора:\\n{}'.format(\n", + " topic_model_lenta_unbalanced.get_theta().idxmax().value_counts()\n", + "))" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAz8AAAEICAYAAABxtUp/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xd8FVX6x/HPk0rvoZdQAggiIKELiqBgW7uCFUURhbXrWnbVre4idsUGiqg0RYS1YKdIDx2khR56753z+2Mmv73GhARImJvc7/v1uq/cnGnPzC3nPjPnnDHnHCIiIiIiIgVdVNABiIiIiIiInAlKfkREREREJCIo+RERERERkYig5EdERERERCKCkh8REREREYkISn5EREREJFeZWWzQMYhkRsmPiIiIiJwWM0s0s4/MbIWZ7QBeDTomkcwo+TlFZrbKzA6Y2d6Qx0Ez+yXo2EREJDKpbpIgmFlpYBIwHzjbOVfaOXdfwGGJZErJz+m5wjlXLP0B9Ao6IBERiXiqm+RMewAY45zr65zbH3QwIiei5CcPmVllMxtpZlvMbKWZ3R8y7Tkz+8zMhpvZHjObZWaNQ6ZnPHt30MzGZVh/6DyHzezjkGmXm9kcM9tpZpPN7JwMy3Xyn7cwsw1m1sL/P9rMnjKz5X5cM82smj/NmVkd/3l1f9uh27zHzFb78ewzM5fN8fnF369Mz0ya2SB/v/b620oLmXaVmS3xY9zrx5aYxXZW+a9BXEjZdH+ZmJDXaoyZbTezVDO7O8M6OpnZ8ZDX43j6MczuePvTx2W2r34zgdA4Wvj//+MEx+1uM1vk7/uvZnZuFvM5M7vfb4Kw1cxeMLOokOl3+uvZYWbfmlmNDMvuC9nfoWbW3Mw2mVl0yHzXmNnckP+7m9mxkOVC3zNnmdkkM9vtTztmZt39aTn5PKS/Z4v5caQfw6JmNt9f7zYzezfD8Zzivy4bzOyN9PeBmf039L0aEvPbIfGO85ddaGZ/CIlnkJm9bWbf+/GOz3D82pjZDDPb5f9tk+G9cNjMyoeUjQg9ViJ5yVQ3qW763/TcqptaAGXNq2+2+zFXDtlOff/7crt/fG4ImdbXvDpqj5lNNbOzszheF5hZmv8+2Oofv5tDpsebWT8zW2NeHfG2mRUOWTb0OO01s/vM7DEzG5lhO6+Z2ash/5/S6+0f2+f913S3mY02szI5Ob5m1ta8z+ZeM1trZn1CtnmH/e83wAozuydk2s6Q1zK0Lr7Zn/4H8+qznX58Z4Usu8rMnjTvd8UOM/vAzAr500qb2Zf++3WH/7xqFu+F8Oec0+MUHsAqoFOGsu7AL/7zKGAm8AwQB9QCVgCd/enPAUeA64BY4FFgJRCb2fqBu4BxGba3BugYsr6P/edNgc1ASyAauN1fX3zouoGzgHXp6/CnPYZ32boeYEBjoKw/zQF1/OcfAmkh2ywKHAMu8P+v4729TngMJwG3Zzx2IdMHA3/3n18ApIVM2wh095/H+LElnuC1WgRc7//fCPjVXybGL5sA9AcKAU2ALcCFIeu4CFiZ2euf3fEOWX+PTN4niRniGO8f139ksS/X+69Zc//1qQPUyGJeB/wMlAGqA0uBu/xpVwKp/nsgBvgzMDnDsnUyWeevwCUh/48CHgn5/05gYmbrAYYBA0L29ZeQ1/A5cvh5AP7qH6P0YxgDNMT7zCXgvX+v8Kc1A1r58yT674MHM+zTb14DvyzWPz5P4X1+LwT2APX86YP8/9sD8Xht29PjKQPsAG71t9vN/z/9czTOj+Mx//9ywJysjrkeepzMA9VNqpuCqZvGAVuBc/G+E18HJoS8BmuBO/xj0tSft4E/vR5QxI/xX8DILLZxAXAUeMnfxvnAPv73vfwyMAbvO7g48F/g+cxep5B1VvLXUSrkNdsMNDvd19s/JuuAs/1jMJL/vS9PeHzx6rKqIa/jfqCk//9lQG28z8H5/rRzs/rMh5TV9ff1IrzP9uN49VxcyHtnAVDNP4aTQuIpC1zrv07FgU+BL4L+vjvVh6785J3mQIJz7m/OucPOuRXAe0DXkHlmOuc+c84dwfswF8L7oZZTccDhTMp7Au8456Y554455z4EDmVYdw3gO+DPzrkfQ8rv8suWOM9c59y20JX7Z45a41Uy6aKA43gf/pwqnEX86bLav3QxZmY53NZAoIf//G7/fwDMO3vYFviTc+6gc24O3o/023IYa06Od3b7gpldjvdl9sMJZrsL6Oucm+G/PqnOudUnmP8/zrntzrk1wCt4P8TBawbzvHNukXPuKF6F08RCrl5k4UPgFj/eMkBnYEjI9Oz2M5qsrzhn+3kws4p4r+NL6WXOuaPOuYXOueN4x28fXqKHc26mc26qP88q4B28yiI7rYBiwL/9z+9PwJf87/gBfOWcm+CcOwQ8DbT230uXAcuccx/52x0KLAauCFl2MF5yBN777KMcxCSSG1Q3ZU91U4gc1k0A7zvnZvnfiU/ifScmApcDq5xzH/jfibPxEoHrAfzXdL+/DYBZ2WznL865Q8658cBXwA3+8e4JPOTXeXvw6rWuJ1qRc24DXgJ4vV/UBdjqnJsZMtvpvN4fOecWOOf2AX/xY40OnSGz4+uc2+KcS7/CZMASvLoN59xXzrnl/udgPN7npd2J9tN3I1699b3/2e6H9/5pEzLPG865tc657cA/8es859w259xI59x+/9j+k5zVpWFJyU/eqQFU9i8t7jSznXhnkSuEzLM2/Yn/wy0NqEwO+B+0UnhnlDPb9iMZtl0tw7pf97d3UYZlqwHLs9n8f/A+xEdC4t+D9wU+2Mz2k/2XF0BFvLNYWUk/g56Z7sATwAG8M0jZmQOUNrN6ePs8JmRaZSD9yzLdaqBKDmPNyfE+0b6AlxQ8j3cm5kRy8vqEWhvyfHVITDWAV0Pi3Y73BVuFE/sYuMLMigI34F3l2RAy/UT7+TTeWeb9/jYz/pjKyefhWbz37vaMK/fXuclfbqNfVte/PL/RzHbjVYblstlH/O2u9eNIl/E9ERrvXj+myv4jY0KacdktwFIza4eXBA3OQUwiuUF1U/ZUN/1PTuumQ4R87/nfidv8WGsALTPEcbMfOwBm1h/vx/1NeC0WsrLDTyTSpddrCXhXJWaGbGOsX56d/z+p5//NeDLqdF7vjHVwLL+tg7I8vmZ2npntAabhXWU56pdfYl7zwO3+fl5Kzuu10NfouB9fpvUaIb8ZzKyImb1jXvPR3XgJY6mMiVx+oeQn76zFuxRdKuRR3Dl3acg81dKfmNcXoyqwPofrr4F3JmtFFtv+Z4ZtF/HPQKd7AegItLCQvgz+srVPsN0L8S5/jshk2hd4lU4HvEvfWfLP4FcE5p1gtrr4Z/Az8T2wG++HY04+9AAfAMPxzuAfCSlfD5Qxs+IhZdXxLlenawrMJXMnPN7mteeucYJ9Aa85whLn3NRs9iG71yejaiHPq/O/99da4J4MMRd2zk0+0cqcc+uAKcA1eMc+YyWR5WvmnFuOdwzfcc6VAjLua3afh7p4V5oyHT7VX2cZvB9eT/nFb+FddUlyzpXwy3NyRnY9UM1C+kjx+/dEaLzF/G2v9x8Zr6BlXBa8M7ivA6nOuRP90BLJTaqbTkB10+/ktG5aQ8j3nn+CrKwf61pgfIY4ijnn7k2f33kjwxXBe/1HnWA7pf11p0uv17biJSANQ7ZR0nkDfmTnC+Ac8/oaXQ58kmH66bzeGevgI/w2Scry+DrnfnHOFQcaAPf6SU883lWzfkAFv977mpzXa6GvkfnxZVqv8dvfDI/gNU9s6del7dNXk4Pthh0lP3lnOrDHzP5kZoXN66x5tpk1D5mnmXkdxmOAB/HOnGT3BYP/Rfgs8J3LfFSV94BeZtbSPEXN7LIMX6AT/WV7AP3NrJRfPgD4u5kl+cueY2ZlQ5Z7DnjcOa8RaAb/xhvtZVp2+wDcD/zknNucyf7FmFkvvGZHE7NY/hFgnXPu0xxsK90QvPbV74YWOufWApOB582skN90ogfeVQ7M67R5HTCUzGV5vM3rLPgM3g/cE1UwT+M1E8jOAOBRM2vmb6uOnbip2mPmdVSshjcaz3C//G3gSTNr6O9jSTO7PquVZDAY7yxVI+Dz9EIzawtchVeR/I6ZtfKnZ7Wf2X0e/gz8zTl3MMN6E8yskv9vDN6ZtQP+/8XxKqa9ZlYfuJecmYbXjvpxM4s1swvwmq0NC5nnUv/MXBzwd2Cq/176GqhrZjf57+Ub8SqvLzNs4zu8s9Av5zAmkdyguunEVDf9Vk7rpqHAHWbWxP+B/i9gmvOaG3+J9514q/99GmveADpn+ftxtp9kG15fngNZbCPdX80szrwr55cDn/pXMd4DXjZ/MBkzq2JmnbML3K9TPsN7HaY7r5l4br3et5hZAzMrAvwN+Mw5dyxkeqbH18xqmXdSDbxjEoV3XOL8/7cAR83sEuDi7PbRNwK4zMw6mncD2kfwPtuhJz17m1lV85q1P83/fjMU97e/05/2bA63GZaU/OQR/819OV4HxZV4mf4AoGTIbKPx2mCmd46+xm+HmZ3X8c4y35XFtlPw2g6/4a87Fe/SbGbzjsf7sZr+A+wlvA/Id3g/GgfitQlNN9s5Ny7jevwfvpfxvzPuWTKzp/A+7O3MH4kE78d4a39aD7yOkVc65373JWhmtfE+tCd1DwHn3G7nXDfn3LJMJnfD64C4Hu+s07POufT2t6vwzuiMDYm3Ol5nyuyO95/x2tNel014X2YRV8Z9+BSvre0QvA73X+C9F7IyGq9z8xy8ttED/fWMwmsiMsy8S9gLgEuy275vFN7Zo1HpP3DMrAFe04FHnXPTMy7gf9G+BzzgnNt9glhP9HnYSubNw6oC4/3XZSHe5+0Ff9qjeM0o9vjbH57J8r/jnDuMl+xc4m+3P3Cbc25xyGxD8CqA7XgDK9ziL7sN77P/CF6zj8eBy51zv2kS4Zw77py7M7urbSK5SXVT1lQ3ZSqnddNPeMnUSGAD3lW6rv60PXg/0Lv6+7ERr/6J9xd/3o9vmx9PaN/KjDb6867Hu0LTK+R7+U/+Pk7167Uf8K5W5MSHeCf0Qlsz5Mbr/RHeADkb8frO3Z9helbH9wK8ptF78ZLHl51z4/xjeT/eZ2EHXv02JpPlf8c5twSvnnod73N/Bd7gQKH9mYbgfcZW4DUzTR/d7xW8z9tWvBMhY3OyzXBlmZ8kkbxmZs/hjU5zS3bzFjT+vq9yzg3KUH4e3ig1zwUQVpbMbJVzLjGT8h+cc50yWSQsmDeca5JzLjUP1r0cr9lcdh1gc7q+58hHnwczG4Q34s+fg45FJDflt89iblLdFN78K/AfO+dyfYhlM6uO10S64glO0J3sOsfhxTsgN9aX18xsFd6IsLlSr4czXfmRIOzGH7Ukg0P+tHCzIYvyiOynYWbX4g3R+VPQsYiI5CLVTRHIb3L3MDAstxIfCW8nM/SjSK5wzr2URfkMYMYZDidbzrnWWZSf6NJ8geSfyWoA3Op+OxKaiEi+prop8pg3eMImvJHNugQcjpwhavYmIiIiIiIRQc3eREREREQkIoR9s7dy5cq5xMTEoMMQEYloM2fO3Oqcy8kNAyOO6ikRkeDltJ4K++QnMTGRlJSUoMMQEYloZrY6+7kik+opEZHg5bSeUrM3ERERERGJCEp+REREREQkIij5ERERERGRiKDkR0REREREIoKSHxERERERiQhKfkREREREJCIo+RERERERkYhQYJOfI8eO0+/bJazYsjfoUERERDL15s+pjF+6Bedc0KGIiESEsL/J6anavu8wn0xbzU+LN/P5fW0oFBsddEgiIiL/78DhY3w8dTUbdh2kTvli3NE2kWuaVqVwnOorEZG8UmCv/FQoUYgXb2jMrxt28/zXi4IOR0RE5DcKx0Uz/rEOvHJjEwrHRvP0qAW0ev5H/v3NYtbvPBB0eCIiBVKBvfIDcGH9Ctx1Xk0G/LKS1rXL0eXsikGHJCIi8v/iYqK4qmkVrmxSmZmrd/D+pJW8O2E5701cwSVnV+TO82pybvXSQYcpIlJgFOjkB+DxLvWZsWo7j382l7OrlKBq6SJBhyQiIvIbZkZyYhmSE8uQtmM/g6esZuj0NXw5bwNNqpXizvNqcsnZFYmNLrANNkREzogC/y0aFxPF693OxTn449DZHDl2POiQREREslS1dBGeuvQspj7Zkb9d2ZDdB45w/9DZtPvPz/Qfl8qOfYeDDlFEJN8q8MkPQPWyRXj+2kbMXrOTF79bGnQ4IiIi2SoaH8NtrRP54eHz+aB7c5IqFKPv2CW0/vePPDVqPss27Qk6RBGRfKfAN3tLd/k5lZm8fBtvj19O69plOb9uQtAhiYiIZCsqyuhQvzwd6pdnycY9DJq8kpEz0xgybQ3t6yZwZ9tE2iclEBVlQYcqIhL2IuLKT7pnLm9A/YrFeXj4HDbvPhh0OCIiIielXsXiPH/NOUx5siOPda7H4g276f7BDC56eTwfTV3N/sNHgw5RRCSsRVTyUyg2mjduasr+w8d4cPgcjh3XTeVERCT/KVM0jt4d6vDLny7k1a5NKBofw1++WECrf/3I898s0lDZIiJZiKjkB6BO+eL89cqGTF6+jf4/pwYdjoiIyCmLi4niyiZVGN27LSPvbU27pATem7CCdn1/pveQWcxcvSPoEEVEwkrE9PkJdX2zqkxO3crLPyylRc0ytKxVNuiQRERETpmZ0axGGZrV8IbK/sgfKvureRtoXK0Ud7ZN5NJGlTRUtohEvIj8FjQz/nF1I2qULcoDw+awXcOGiohIAVG1dBGevPQspjzZkb9f2ZA9B47wwLA5tPvPz7z5s4bKFpHIFpHJD0Cx+BjeuKkp2/cd5rFP5+Kc+v+IiEjBUTQ+hlvTh8q+wxsq+4VvvaGyn/xcQ2WLSGSK2OQHoGHlkjx92Vn8uHgzA39ZGXQ4IiIiuS4qyuhQrzwf9WjJdw+15+qmVfl8VhoXvTyBWwdO4+clmzmuAYBEJEJEdPIDcFvrGnRuWIH/jF3M3LU7gw5HREQkz9StUJznr2n0/0NlL920hzs+mEEnDZUtIhEi4pMfM6PvtY0pX7wQfYbOYvfBI0GHJCIikqcyDpVdPMNQ2es0VLaIFFARn/wAlCwSy2vdmrB+50Ge/Hy++v+IiEhEiI32hsr+ondbRt7bhnZ1ExgwcSXt+/5M709mMXP1dtWJIlKgRORQ15lpVqMMj15cj/+MXUzb2uW4qWX1oEMSERE5I7yhskvTrEZp1u08wOApqxg6bQ1fzd9A88TS/Pvac6idUCzoMEVETlu2V37M7H0z22xmC0LKmpjZVDObY2YpZtbCL7/AzHb55XPM7JmQZbqY2RIzSzWzJ/Jmd07PPe1r0b5uAn/970IWb9wddDgiIiJnXJVShXnykrOY+lRH/nZlQ5Zt3sulr07kg0krNTCCiOR7OWn2NgjokqGsL/BX51wT4Bn//3QTnXNN/MffAMwsGngTuARoAHQzswanG3xui4oyXrqhMSUKx9JnyGx1/BQRkYhVJC6G21on8t2D7Wlbpxx//e+v3DxgGmk79gcdmojIKcs2+XHOTQC2ZywGSvjPSwLrs1lNCyDVObfCOXcYGAZceZKxnhHlisXzyo1NWL5lL8+OXhh0OCIiIoEqX6IQA29P5j/XNmJe2k66vDKRESlr1RdIRPKlUx3w4EHgBTNbC/QDngyZ1trM5prZN2bW0C+rAqwNmSfNL8uUmfX0m9OlbNmy5RRDPHVt65SjT4c6fDozjS9mrzvj2xcREQknZsaNzasz9sH2NKxcgsc/m8fdg2eyZc+hoEMTETkpp5r83As85JyrBjwEDPTLZwE1nHONgdeBL05l5c65d51zyc655ISEhFMM8fQ80DGJFolleHrUfFZu3RdIDCIiIuGkWpkiDL27FX++7CwmLNtC51cm8M38DUGHJSKSY6ea/NwOfO4//xSvWRvOud3Oub3+86+BWDMrB6wDqoUsX9UvC1sx0VG82q0JcTFR9Bkyi0NHjwUdkoiISOCiooy72tXi6/vPo2rpwtz7ySweHDabXft1nzwRCX+nmvysB873n18ILAMws4pmZv7zFv76twEzgCQzq2lmcUBXYMzpBH4mVCpZmH7XN2bh+t08//XioMMREREJG3XKF2fkvW14sFMSX87bQOdXJjBh6Zlvqi4icjJyMtT1UGAKUM/M0sysB3A38KKZzQX+BfT0Z78OWOCXvwZ0dZ6jQB/gW2ARMMI5ly9GE+h4VgV6nFeTQZNXMXbBxqDDERGRDDK7JYNf/kczW2xmC82sr1+WaGYHQm7J8HbI/M3MbL5/S4bX0k/mSdZio6N4sFNdRt3XluKFYrjt/en8+Yv5Gi1VRMKWhftoLcnJyS4lJSXQGA4fPc51b09m1dZ9fP1AO6qWLhJoPCIiZ5qZzXTOJQcdR2bMrD2wFxjsnDvbL+sAPA1c5pw7ZGblnXObzSwR+DJ9vgzrmQ7cD0wDvgZec859k932w6GeCgcHjxzjxe+WMOCXlVQvU4QXr29McmKZoMMSkQiR03rqVJu9RZS4mChe79YU5+D+obM5cux40CGJiIgvi1sy3Av82zl3yJ9n84nWYWaVgBLOuanOOys4GLgqL+ItqArFRvP0ZQ0Ydncrjh133PDOFP79zWL1mRWRsKLkJ4dqlC3K89c2Ytaanbz0/dKgwxERkROrC7Qzs2lmNt7MmodMq2lms/3ydn5ZFbzbMKQL61syhLOWtcoy9sH23Ni8Gm+PX86Vb0xi4fpdQYclIgIo+Tkpl59TmW4tqvPWuOWMV6dOEZFwFgOUAVoBjwEj/D48G4DqzrmmwMPAEDMrkfVqMhcOt2QIZ8XiY3j+mnP4oHtztu87zFVvTuKNn5ZxVC0nRCRgSn5O0rNXNKBeheI8PHwOm3cfDDocERHJXBrwuT/oznTgOFDOOXfIObcNwDk3E1iOd5VoHd5tGNKF/S0Z8oMO9cvz7YPt6dywIv2+W8p1b09hxZa9QYclIhFMyc9JKhQbzRs3NWXf4aM8OHwOx46H94ARIiIR6gugA4CZ1QXigK1mlmBm0X55LSAJWOGc2wDsNrNW/hWi24DRwYResJQuGscbN53L692asmrbPi59bSKDJq3kuOpPEQmAkp9TkFShOH+78mwmL99G/59Tgw5HRCSiZXFLhveBWv7w18OA2/2BDNoD88xsDvAZ0Ms5lz5Ywn3AACAV74pQtiO9Sc5d0bgy3z3Ynta1yvLcf3/lloHTWLfzQNBhiUiE0VDXp8g5x0PD5zBm7nqG9WxNi5oazlNECq5wHuo6aOFaT4Ur5xzDZqzlH1/+SpQZz/6hIdeeWwXdVklEToeGus5jZsY/rm5EjbJFeWDYbHbsOxx0SCIiImHPzOjWojpjH2zPWZVL8Oinc+n50Uy27j0UdGgiEgGU/JyGYvExvN6tKdv2HubRT+cS7lfRREREwkW1MkUYdncr/nzZWYxfuoWLX57A2AUbgw5LRAo4JT+n6ewqJXnq0vr8uHgzA39ZGXQ4IiIi+UZUlHFXu1p89cfzqFyqEL0+nsnDw+ew68CRoEMTkQJKyU8uuL1NIhc3qMB/xi5mXtrOoMMRERHJV5IqFGfUfW15oGMSo+eup8srE5i4TPfTE5Hcp+QnF5gZfa87h/LFC9FnyGx2H9QZKxERkZMRGx3FQxfVZdR9bSgaH8OtA6fzzOgF7D98NOjQRKQAUfKTS0oVieO1bk1Yt/MAT30+X/1/RERETsE5VUvx5R/Po8d5Nflo6moufXUiM1fvCDosESkglPzkomY1yvDIxXX5ct4Ghs1YG3Q4IiIi+VKh2Gj+cnkDht7diqPHHde/PZm+Yxdz6OixoEMTkXxOyU8u69W+Nu2SyvHcmIUs3rg76HBERETyrVa1yjL2wfbckFyN/uOWc+Ubk1i0QXWriJw6JT+5LCrKeOmGJpQoHEufIbPVVllEROQ0FIuP4d/XnsP73ZPZtu8wf3jjF978OZWjx44HHZqI5ENKfvJAQvF4XrmxCcu37OW5MQuDDkdERCTfu7B+Bb57sD0XN6zIC98u4YZ3prBy676gwxKRfEbJTx5pW6ccfTrUYURKGqPnrAs6HBERkXyvdNE43rzpXF7r1pTlW/Zx6asTGTxllQYZEpEcU/KThx7omESLxDI89fl8nZ0SERHJJX9oXJnvHmpPi5pleGb0Qh75dC6Hj6oZnIhkT8lPHoqJjuLVbk2IjYmiz5BZGqVGREQkl1QoUYhBdzTn4Yvq8vmsdfT4cAZ7dJ89EcmGkp88VqlkYfpd15iF63fz/NeLgw5HRESkwDAz7u+YRN/rzmHy8m3c8M5UNu0+GHRYIhLGlPycAZ0aVKDHeTUZNHkV3y7cGHQ4IiIiBcoNydV4v3tzVm/bxzX9J7Ns056gQxKRMKXk5wz5U5f6nFO1JI9/No91Ow8EHY6IiEiBcn7dBEbc05pDR49z7VuTmb5ye9AhiUgYUvJzhsTFRPF6t6YcO+64f+hsjuj+BCIiIrnq7ColGXVfG8oVj+eWgdP4ev6GoEMSkTCj5OcMqlG2KM9f04iZq3fw0vdLgw5HRESkwKlWpggje7WhUZWS9B4yi4G/rAw6JBEJI0p+zrArGlemW4tqvDVuOROWbgk6HBERkQKndNE4PrmrJRc3qMDfv/yVf3z5K8eP615AIqLkJxDPXN6QuhWK8fCIOWzeo1FpREREcluh2Gj639yM7m0SGfDLSu4fNlu3nBARJT9BKBwXzZs3ncveQ0d5/LN5QYcjIiJSIEVHGc9e0YAnL6nPl/M2cNvA6ezar3sBiUQyJT8BSapQnEcvrse4JVuYnLo16HBEREQKJDPjnvNr82rXJsxas4Pr35nMeo26KhKxlPwE6JZWNahcshB9v12Cc2qLLCIikleubFKFD+9swYadB7m6/yQWbdgddEgiEoAcJT9m9r6ZbTazBSFlTcxsqpnNMbMUM2vhl5uZvWZmqWY2z8zODVnmdjNb5j9uz/3dyV8KxUbzQKck5qzdyQ+LNgcdjoiISIHWpnY5Pr23NYZxw9tTmKSWFyIRJ6dXfgYBXTKU9QX+6pxrAjzj/w9wCZD6DwjoAAAgAElEQVTkP3oCbwGYWRngWaAl0AJ41sxKn07wBcG151alZrmi9Pt2iUaiERERyWP1K5bg8/vaUKlUIbp/MJ0vZq8LOiQROYNylPw45yYAGW+V7IAS/vOSwHr/+ZXAYOeZCpQys0pAZ+B759x259wO4Ht+n1BFnJjoKB6+qC5LNu1hzNz12S8gIiIip6VyqcJ82qsNzWqU5sHhc+g/LlXNz0UixOn0+XkQeMHM1gL9gCf98irA2pD50vyyrMp/x8x6+k3pUrZsKfj3wrmsUSUaVCrBS98v5cix40GHIyIiUuCVLBzLh3e24IrGlek7dgnPjF7IMbXAECnwTif5uRd4yDlXDXgIGJg7IYFz7l3nXLJzLjkhISG3Vhu2oqKMxzrXY832/YxIWZv9AiIiInLa4mOiefXGJtzTvhYfTV3NvR/P5OAR3QtIpCA7neTnduBz//mneP14ANYB1ULmq+qXZVUuwAX1EkiuUZrXflymL14REZEzJCrKePLSs3juigZ8v2gTN703le37DgcdlojkkdNJftYD5/vPLwSW+c/HALf5o761AnY55zYA3wIXm1lpf6CDi/0ywbsPwWOd67Fp9yEGT1kVdDgiIiIRpXvbmvS/6VwWrN/NdW9NZs22/UGHJCJ5IKdDXQ8FpgD1zCzNzHoAdwMvmtlc4F94I7sBfA2sAFKB94D7AJxz24G/AzP8x9/8MvG1rFWW8+sm0H/ccvYc1B2oRUREzqRLGlViyF0t2bbvMNe8NYn5abuCDklEcllOR3vr5pyr5JyLdc5Vdc4NdM794pxr5pxr7Jxr6Zyb6c/rnHO9nXO1nXONnHMpIet53zlXx398kFc7lZ89enE9du4/wnsTVwYdioiISMRJTizDyHvbEB8TzY3vTuHnJboPn0hBcjrN3iQPNKpakksbVWTgxBVs23so6HBEREQiTp3yxRh1XxtqlivKXR+mMGKGBiMSKSiU/IShhy+qx4Ejx3hr3PKgQxEREYlI5UsUYvg9rWlTuyyPj5zHKz8s1b2ARAoAJT9hqE75Ylx7blUGT13Nhl0Hgg5HREQkIhWLj+H97s259tyqvPLDMp4YOV/34xPJ55T8hKkHOiXhnOO1H5dlP7OIiIjkidjoKPpdfw5/vLAOw1PWcvfgFPYdOhp0WCJyipT8hKmqpYtwc8sajEhJY+XWfUGHIyIiErHMjEcursc/rz6bCUu30PXdqWzZo365IvmRkp8w1rtDHeKio3j5+6VBhyIiIhLxbm5Zg/duSyZ1816ueWsSK7bsDTokETlJSn7CWELxeO48L5Exc9fz6/rdQYcjIiIS8TqeVYGhPVux/9Axrn1rMjNX7wg6JBE5CUp+wlzPdrUpUSiGF79bEnQoIiJhy8zeN7PNZrYgQ/kfzWyxmS00s74h5U+aWaqZLTGzziHlXfyyVDN74kzug+QfTaqVYuS9bShZOJab3pvKdws3Bh2SiOSQkp8wV7JILL0uqM2Pizczc/X2oMMREQlXg4AuoQVm1gG4EmjsnGsI9PPLGwBdgYb+Mv3NLNrMooE3gUuABkA3f16R30ksV5SR97ahfqUS9Pp4Jh9NXR10SCKSA0p+8oHubRIpVyyevmOX6B4DIiKZcM5NADKeIboX+Ldz7pA/z2a//EpgmHPukHNuJZAKtPAfqc65Fc65w8Awf16RTJUtFs/Qu1vSoV55/vLFAv4zdrHqaZEwp+QnHygSF8MfL6zDtJXbmbhsa9DhiIjkF3WBdmY2zczGm1lzv7wKsDZkvjS/LKvy3zGznmaWYmYpW7ZsyYPQJb8oEhfDO7c246aW1Xlr3HIeHjGXw0d1LyCRcKXkJ5/o2qIaVUoV5oVvdfVHRCSHYoAyQCvgMWCEmVlurNg5965zLtk5l5yQkJAbq5R8LCY6in9edTaPXlyXUbPXcceg6ew+eCTosEQkE0p+8on4mGgeuqgu89ft4lt1rBQRyYk04HPnmQ4cB8oB64BqIfNV9cuyKhfJlpnR58Ik+l3fmGkrtnPD21PYuOtg0GGJSAZKfvKRq5tWoU75YvT7binHjuvqj4hINr4AOgCYWV0gDtgKjAG6mlm8mdUEkoDpwAwgycxqmlkc3qAIYwKJXPKt65pV5f3uzVm7fT/X9J/E0k17gg5JREIo+clHoqOMRy6qS+rmvYyarZORIiLpzGwoMAWoZ2ZpZtYDeB+o5Q9/PQy43b8KtBAYAfwKjAV6O+eOOeeOAn2Ab4FFwAh/XpGT0r5uAsPvac2R447r3prM9JUarVUkXFi49x9JTk52KSkpQYcRNpxz/OGNSWzfd5ifHj2f+JjooEMSkQhgZjOdc8lBxxGOVE9JVtZu38/tH0xn/c4DvHdbMu2S1D9MJK/ktJ7SlZ98xsx4rHM91u08wLDpa7NfQERERAJRrUwRRtzTmsSyRekxKIUfF20KOiSRiKfkJx9ql1SOljXL8PpPqew/fDTocERERCQL5YrFM6xnK+pXKs49H83km/kbgg5JJKIp+cmHzIzHu9Rj695DDJq8KuhwRERE5ARKFYnj47ta0rhaKfoMnc3oOeq3KxIUJT/5VLMaZehYvzxvj1vOrv26l4CIiEg4K1EolsF3tqB5YmkeHD6HETPUdF0kCEp+8rFHLq7H7oNHeXfi8qBDERERkWwUjY/hg+4tOK9OOR4fOY+PpqwKOiSRiKPkJx9rULkEVzSuzPu/rGLLnkNBhyMiIiLZKBwXzYDbk+l0Vnn+MnohAyauCDokkYii5Cefe/iiuhw+dpw3f04NOhQRERHJgfiYaPrf3IzLGlXiH18t4vUflwUdkkjEUPKTz9UsV5QbkqsyZNoa0nbsDzocERERyYG4mChe7dqEa5pW4cXvl9Lv2yWE+70XRQoCJT8FwP0dk8Dg1R905khERCS/iImOot/1jenavBpv/JzKP79apARIJI8p+SkAKpUszG2tajByVhqpm/cGHY6IiIjkUFSU8a+rG3F76xoM+GUlz4xeyPHjSoBE8oqSnwLi3gtqUzg2mpe+XxJ0KCIiInISoqKM5/7QkHva1+Kjqat54vN5HFMCJJInlPwUEGWLxdOjXS2+nr+R+Wm7gg5HREREToKZ8cQl9bm/YxIjUtJ4eMQcjh47HnRYIgWOkp8C5O52NSlVJJZ+3+nqj4iISH5jZjx8UV0e61yP0XPW02fIbA4fVQIkkpuU/BQgxQvFct8FtRm/dAvTVmwLOhwRERE5Bb071OEvlzdg7MKN9Pp4JgePHAs6JJECI9vkx8zeN7PNZrYgpGy4mc3xH6vMbI5fnmhmB0KmvR2yTDMzm29mqWb2mplZ3uxSZLutdSIVSsTzgobMFBERybd6nFeTf1x1Nj8t3szdg1M4cFgJkEhuyMmVn0FAl9AC59yNzrkmzrkmwEjg85DJy9OnOed6hZS/BdwNJPmP36xTckeh2Gj+eGESKat3MG7JlqDDERERkVN0S6savHDdOUxK3crtH0xn76GjQYckku9lm/w45yYA2zOb5l+9uQEYeqJ1mFkloIRzbqrzLkcMBq46+XAlJ25sXo3qZYrQ99slGi5TREQkH7s+uRqvdG3KzNU7uHXgNHYdOBJ0SCL52un2+WkHbHLOhd5ds6aZzTaz8WbWzi+rAqSFzJPml2XKzHqaWYqZpWzZoqsXJys2OoqHL6rLog27+Wr+hqDDERERkdPwh8aVefOmc1mwbhc3D5jKjn2Hgw5JJN863eSnG7+96rMBqO6cawo8DAwxsxInu1Ln3LvOuWTnXHJCQsJphhiZrmhcmXoVivPS90s1VKaIiEg+1+Xsirx7azJLN+2l23tT2bLnUNAhieRLp5z8mFkMcA0wPL3MOXfIObfNfz4TWA7UBdYBVUMWr+qXSR6JjjIe7VyPlVv3MXJWWvYLiIiISFjrUL88H3Rvzupt+7nx3Sls3HUw6JBE8p3TufLTCVjsnPv/X9ZmlmBm0f7zWngDG6xwzm0AdptZK7+f0G3A6NPYtuRAp7PK06RaKV75YZmGyRQRESkA2tYpx4d3tmDz7kPc8M4U0nbsDzokkXwlJ0NdDwWmAPXMLM3MeviTuvL7gQ7aA/P8oa8/A3o559IHS7gPGACk4l0R+iYX4pcTMDMe71yPDbsO8sm0NUGHIyIiIrmgRc0yfNSjBTv3H+bGd6ayauu+oEMSyTcs3O8Fk5yc7FJSUoIOI1+7ZcA0Fm3YzfjHO1AsPibocEQkHzKzmc655KDjCEeqpyQoC9bt4taB04iNjmLI3a2oU75Y0CGJBCan9dTpDngg+cCjneuxbd9h3v9lZdChiIiISC45u0pJhvVszXEHXd+dwuKNu4MOSSTsKfmJAE2qleLiBhV4b8IKDY8pIiJSgNSrWJzh97QiJiqKru9OZX7arqBDEglrSn4ixCMX12Pv4aO8PWF50KGIiIhILqqdUIwR97SmWHwMN703lZmrdwQdkkjYUvITIepVLM7VTaowaNIqNu3W0JgiIiIFSfWyRRhxT2vKFovj1oHTmLpiW9AhiYQlJT8R5MFOdTl23PH6T8uCDkVERERyWeVShRlxT2sqlypM9w+mM2HplqBDEgk7Sn4iSPWyRejaohrDpq9lzTbdF0BERKSgKV+iEMN6tiKxbFHu+jCFHxdtCjokkbCi5CfC3H9hEjHRxis/LA06FBEREckD5YrFM6xnK+pXKs49H83km/kbgg5JJGwo+Ykw5UsU4vY2iYyas44lG/cEHY6IiIjkgVJF4vj4rpY0rlaKPkNn88XsdUGHJBIWlPxEoF7ta1MsLoYXv1sSdCgiIiKSR0oUimXwnS1onliah0bMYfiMNUGHJBI4JT8RqHTROO5uX4vvft3EnLU7gw5HRERE8kjR+BgG3dGCdkkJ/GnkfAZPWRV0SCKBUvIToe48ryZli8bxwreLgw5FRERE8lCh2Gjeu60Znc6qwDOjF/LehBVBhyQSGCU/EapYfAz3dajDpNRtTErdGnQ4IiIikofiY6J565ZzuaxRJf759SJe/1G3vZDIpOQngt3csjqVSxbihW+X4JwLOhwRERHJQ7HRUbzatQnXNK3Ci98vpZ/qf4lASn4iWKHYaB7olMSctTv5/lfdB0BERKSgi4mOot/1jenavBpv/JzKP79apARIIoqSnwh37blVqVmuKC9+t5Rjx/XlJyIiUtBFRRn/uroR3dskMuCXlfz5iwX6DSARQ8lPhIuJjuLhi+qyZNMe/jt3fdDhiIiIyBkQFWU8e0UDep1fm0+mreGej1LYd+ho0GGJ5DklP8JljSrRoFIJXvp+KYePHg86HBGRk2Jm75vZZjNbEFL2nJmtM7M5/uNSvzzRzA6ElL8dskwzM5tvZqlm9pqZWRD7I3KmmBlPXFKfv13ZkJ8Wb+b6t6ewYdeBoMMSyVNKfoSoKOOxzvVYs30/I1LWBh2OiMjJGgR0yaT8ZedcE//xdUj58pDyXiHlbwF3A0n+I7N1ihQ4t7VOZGD35qzeto+r3pzEgnW7gg5JJM8o+REALqiXQHKN0rz24zIOHjkWdDgiIjnmnJsAbD+ddZhZJaCEc26q83p/Dwauyo34RPKDDvXK89m9bYg24/q3p2ggJCmwlPwI4F36fqxzPTbvOaS7P4tIQdHHzOb5zeJKh5TXNLPZZjbezNr5ZVWAtJB50vyyTJlZTzNLMbOULVu25EHoImfeWZVK8EXvttStUIyeH6UwYOIKjQQnBY6SH/l/LWuV5fy6CfQft5zdB48EHY6IyOl4C6gNNAE2AC/65RuA6s65psDDwBAzK3GyK3fOveucS3bOJSckJORWzCKBK1+iEMN6tqZLw4r846tF/GX0Ao4eU39gKTiU/MhvPHpxPXbuP8KAiSuDDkVE5JQ55zY55445544D7wEt/PJDzrlt/vOZwHKgLrAOqBqyiqp+mUjEKRwXzZs3nUuv82vz8dQ13PlhCnt0UlQKCCU/8huNqpbk0kYVGThxBdv2Hgo6HBGRU+L34Ul3NbDAL08ws2j/eS28gQ1WOOc2ALvNrJU/ytttwOgzHLZI2IiK8kaC+/c1jZicupXr3ppC2o79QYclctqU/MjvPHxRPQ4cOUb/ccuDDkVEJFtmNhSYAtQzszQz6wH09Yetngd0AB7yZ28PzDOzOcBnQC/nXPpgCfcBA4BUvCtC35zJ/RAJR11bVOfDO1uwftcBrnpzErPX7Ag6JJHTYuHekS05OdmlpKQEHUbEeezTuYyeu55xj15A5VKFgw5HRAJmZjOdc8lBxxGOVE9JJEjdvIc7Bs1g8+5DvHxjEy5tVCn7hUTOoJzWU7ryI5l6oFMSOHj9p2VBhyIiIiIBq1O+OF/c15azq5Tkvk9m0X9cqkaCk3xJyY9kqmrpItzUsjojUtJ0szMRERGhbLF4PrmrJVc0rkzfsUv408h5HD6qkeAkf1HyI1l6oGMSCcXi6TNklkZ5EREREQrFRvNa1ybc3zGJESlp3P7+dHbt128EyT+U/EiWSheN47VuTVm74wBPfj5fl7dFREQEM+Phi+ry0g2NSVm9navfmsTqbfuCDkskR5T8yAm1qFmGhy+qy5fzNjBk+pqgwxEREZEwcc25Vfm4R0u27zvMVW9OYsaq7dkvJBIwJT+SrXvPr037ugn89b+/8uv63UGHIyIiImGiZa2yjLqvLaWKxHHze9MYPUf3Bpbwlm3yY2bvm9lmM1sQUjbczOb4j1X+/RLSpz1pZqlmtsTMOoeUd/HLUs3sidzfFckrUVHGSzc0plThWHoPmcXeQ0eDDklERETCRM1yRRl1XxuaVi/FA8Pm8MoPS9VUXsJWTq78DAK6hBY45250zjVxzjUBRgKfA5hZA6Ar0NBfpr+ZRft3034TuARoAHTz55V8olyxeF7r1pTV2/bxlPr/iIiISIhSReL4qEdLrj23Kq/8sIyHhs/h0NFjQYcl8jvZJj/OuQlApo04zcyAG4ChftGVwDDn3CHn3Eq8u2S38B+pzrkVzrnDwDB/XslHWtUqy0Od6jJm7nqGzVgbdDgiIiISRuJiouh3/Tk8enFdvpiznlsGTGP7vsNBhyXyG6fb56cdsMk5l34nzCpA6K/iNL8sq/JMmVlPM0sxs5QtW7acZoiSm+7rUId2SeV4bsxCFm1Q/x8RERH5HzOjz4VJvN6tKXPTdnF1/0ks37I36LBE/t/pJj/d+N9Vn1zjnHvXOZfsnEtOSEjI7dXLaYiOMl66oQkl/P4/+9T/R0RERDK4onFlht7dir0Hj3L1m5OYvHxr0CGJAKeR/JhZDHANMDykeB1QLeT/qn5ZVuWSDyUUj+fVrk1YtXUff/5igfr/iIiIyO80q1GaL3q3pXyJQtw2cDojUtRkXoJ3Old+OgGLnXNpIWVjgK5mFm9mNYEkYDowA0gys5pmFoc3KMKY09i2BKxN7XI80LEuo2av05eZiIiIZKpamSKMvLcNrWqV5fHP5tF37GKOH9dJUwlOToa6HgpMAeqZWZqZ9fAndSVDkzfn3EJgBPArMBbo7Zw75pw7CvQBvgUWASP8eSUf63NhHdrWKcuzYxayZOOeoMMRERGRMFSycCwf3NGcbi2q0X/ccv44dDYHj2gkOAmGhXuTpeTkZJeSkhJ0GJKFLXsOccmrEylZOIYxfc6jaHxM0CGJSB4ws5nOueSg4whHqqdEcsY5x3sTV/D8N4tpXLUU792WTELx+KDDkgIip/XU6Q54IBEuoXg8r3Vtwoqt+/jL6AXZLyAiIiIRyczo2b42b93cjMUbd3PVm5NYukktR+TMUvIjp61NnXLcf2ESn89ax6fq/yMiIiIn0OXsioy4pzVHjh3n2v6TmbBUtzWRM0fJj+SK+zsm0bpWWf4yeoHO4oiIiMgJnVO1FF/0bkuV0oW5Y9AMPpm2OuiQJEIo+ZFcER1lvNqtCcXiY+j9ySz2H9b9f0RERCRrlUsV5rN729A+qRxPj1rAP778lWMaCU7ymJIfyTXlixfilRubkrplL8+M1mB+IiIicmLF4mN477ZkurdJZMAvK+n18UydQJU8peRHctV5SeX4Y4c6fDYzjc9mpmW/gIiIiES0mOgonvtDQ567ogE/LtrEDe9MYdPug0GHJQWUkh/JdQ90qkvLmmX4yxcLWKb+PyIiIpID3dvWZMDtyazcso8r35jEwvW7gg5JCiAlP5LroqOM17o1pUhcNL2HzOLAYd3ITERERLJ3Yf0KfNqrDWZw/dtT+GnxpqBDkgJGyY/kiQolCvHyjU1Ytnkvz47R/X9EREQkZxpULsHo3m2pnVCMuz5M4YNJK4MOSQoQJT+SZ9rXTaD3BXUYkZLGqNnq/yMiIiI5U75EIYbf04pOZ1Xgr//9ldvfn66m9JIrlPxInnqwUxItEsvw9KgFpG7eG3Q4IiIikk8UiYvh7Vua8ZfLGzB7zQ66vDqRZ0YvYPu+w0GHJvmYkh/JUzHRUbzWrSmFYqPpM2QWB4+o/4+IiIjkTFSU0eO8mox7rAM3t6zOJ9PWcMELPzPwl5UcPno86PAkH1LyI3muYslCvHRDYxZv3MNf/6v7/4iIiMjJKVM0jr9deTbfPNCOxtVK8fcvf6XzKxP44ddNOKcbo0rOKfmRM+KCeuW574LaDJ2+ltFz1gUdjoiIiORDdSsUZ/CdLfige3OiDO4anMKtA6ezeOPuoEOTfELJj5wxD19Ul+aJpXnq8/ks36L+PyIiInLyzIwO9csz9sH2PHdFA+av28Wlr07kqVHz2br3UNDhSZhT8iNnTHr/n7iYKHp/ov4/IiIicupio6Po3rYm4x+7gNvbJDJixlo6vDCOd8Yv59BR/caQzCn5kTOqUsnCvHRjExZv3MPfvvw16HBEREQknytVJI5nr2jI2Afb07xmGZ7/ZjEXvTSBsQs2qj+Q/I6SHznjOtQrzz3n12LItDWMmbs+6HBERESkAKhTvhjvd2/O4DtbUCg2il4fz6Tru1NZsG5X0KFJGFHyI4F49OJ6NKtRmidHzmPl1n1BhyMiIiIFRPu6CXx9fzv+ftXZLN20hyve+IU/fTaPzXsOBh2ahAElPxKI2OgoXu/WlFj1/xEREZFcFhMdxa2tajDusQ7cdV5NPp+dRocXxvHmz6n6zRHhlPxIYCqXKsyL1zfm1w27+cdX6v8jIiIiuatk4VievqwB3z10Pm3rlOOFb5fQ6aXxfDVvg/oDRSglPxKojmdVoGf7Wnw8dQ1fzlP/HxEREcl9NcsV5d3bkhlyV0uKxcfQe8gsbnhnCvPSdgYdmpxhSn4kcI91rkfT6qV4YuR8Vqn/j4iIiOSRNnXK8dX97fj3NY1YuXUff3hjEg+PmMPGXeoPFCmU/EjgYqOjeOOmc4mOMnoPUf8fERERyTvRUUbXFtX5+dEL6HV+bb6cu4EO/cbx2o/LOHBYv0EKOiU/Ehaq+P1/Fq7fzb++XhR0OCKSz5jZ+2a22cwWhJQ9Z2brzGyO/7g0ZNqTZpZqZkvMrHNIeRe/LNXMnjjT+yEiZ07xQrE8cUl9fnj4fDrUT+Cl75fS8cVxjJ6zTv2BCjAlPxI2OjWowF3n1WTwlNV8PX9D0OGISP4yCOiSSfnLzrkm/uNrADNrAHQFGvrL9DezaDOLBt4ELgEaAN38eUWkAKtetgj9b27G8J6tKF00jgeGzeGatyYza82OoEOTPKDkR8LK413q06RaKf702TxWb1P/HxHJGefcBGB7Dme/EhjmnDvknFsJpAIt/Eeqc26Fc+4wMMyfV0QiQMtaZflvn/N44bpzSNtxgGv6T+aBYbNZv/NA0KFJLlLyI2ElLsa7/48Z9Bkym0NH1fZWRE5LHzOb5zeLK+2XVQHWhsyT5pdlVf47ZtbTzFLMLGXLli15EbeIBCAqyrg+uRrjHr2APh3q8M2CjVz44jhe+n4p+w8fDTo8yQVKfiTsVCtThH7XN2b+ul08//XioMMRkfzrLaA20ATYALyYWyt2zr3rnEt2ziUnJCTk1mpFJEwUjY/h0c71+OmR8+l0VgVe+3EZHfqNY+TMNI4fV3+g/EzJj4SlixtW5M62NRk0eRVjF6j/j4icPOfcJufcMefcceA9vGZtAOuAaiGzVvXLsioXkQhVtXQR3rjpXD7r1ZqKJQrxyKdzuar/JFJW5bSVrYSbbJOfzEbQ8cv/aGaLzWyhmfX1yxLN7EDIyDpvh8zfzMzm+yPovGZmlvu7IwXJE5fUp3HVkjz22TzWbt8fdDgiks+YWaWQf68G0uuxMUBXM4s3s5pAEjAdmAEkmVlNM4vDGxRhzJmMWUTCU3JiGUbd15aXb2zM5t2HuO7tKfQeMku/T/KhnFz5GUSGEXTMrANeJ9DGzrmGQL+QyctDRtbpFVL+FnA3XiWTlHGdIhnFxXj3/wHoM2QWh48eDzgiEQlXZjYUmALUM7M0M+sB9PVPus0DOgAPATjnFgIjgF+BsUBv/wrRUaAP8C2wCBjhzysiQlSUcXXTqvz06Pk80DGJHxdtouNL4+k7djG7Dx4JOjzJIcvJOOZmlgh86Zw72/9/BPCuc+6HE80XUl4J+Nk5V9//vxtwgXPunuy2nZyc7FJSUnKyL1JAjV2wkV4fz+TOtjV55gqNOisSBDOb6ZxLDjqOcKR6SiQybdh1gL5jlzBq9jriYqJoV6ccnRtWpFODCpQpGhd0eBEnp/VUzCmuvy7Qzsz+CRwEHnXOzfCn1TSz/2vv3oPjKs87jn+fXdmyrIuNdfcNLBzLls01hKsxMg7YEDfNNJ3pZdqGtlPIhKSkaZtJepnQzHSmYZK0006bGQZok0kgQ4BAaakNoRIN98E2DJZkeYyNgy+6+IJlG9uS9jz94xxJq5UFWGv7HGl/n5mdPbt7tPuTNNKzz77vec8WoA/4G3f/JeFqOXuyvn7cFXSi8HcCdwIsXLhwghFlqli3oo47rr+Ih17axTUNc1i7vC7uSCIiIlLg6meV8B+QCS0AAA45SURBVI+/dTl/vHIRT2zey8a2Lp7f1kPqCbh60RzWLa/j1uV1zJ1dEndUyTLR5qcImANcC3wKeNTMGghX01no7gfN7JPAk2a2/Eyf3N3vB+6H8BO1CWaUKeSbty9l0+7D/OXP3qKpvoIFc2bGHUlERESEFfNmsWLeLP52/TLa9vWxYWsXG9u6uPfpdu59up3L5s9i7Yo61i6v4+LqsrjjFryJrva2B3jCQ68DAVAVnTDuIIC7bwLeIRwl2ku4as4QraAjZ6S4KM2//u6VuMOXH9mi439EREQkUcyMFfNm8RdrG3nuazfx/J/fxNfXNQJw34ZO1nzvBW75/gt8d2MnW/ce4eMceiJn30SbnycJDx7FzJYA04EDZlZtZuno/gbChQ12uvt+oM/Mro1WefsD4Km800tBWVg5k/t+81Leeu997tug8/+IiIhIcl1cXcaXmhfz1JdX8vI3bubeX2uiqqyYf2vdwfp/eZGV32nh20+389rOg2R07qDz5iOnvUUr6DQDVWa2B/gW8BDwULT8dT/wBXd3M1sFfNvMBghHg77o7kMLoX+JcOW4EuB/oovIGbntknq+cN2FPPDiLq5pqOSWptq4I4mIiIh8qLmzS7jjhkXcccMiDh3v5xft3Wxs6+LHr+7moZd2UVk6nVuaalm7oo7rL66kuCgdd+Qp62Ot9hYnraIjuU4NZvj8D17mvUMn+O8/Xcn8C3T8j8i5ptXexqc6JSITdezUIK2dPWzY2kXLth6O92coLy5i9dIa1q2o46Yl1ZQWT/QQ/cJyrld7E4nN0PE/6//5Rb7yyBYeves6pqUnOoNTREREJB5lxUWsv3Qu6y+dy8mBDC+/c4CNW7t5rqOb/3xrH8VFKW78RDVrl9fy6WW1XKAltPOm5kcmpQsrS/mHz1/K3Q9vZs33XuDmpTU0N1ZzbUMlM6ZpqFhEREQmlxnT0ty8tJabl9by95mAN3YfHl457hcd3aRTxrXRKT9ubaqjbtaMuCNPSpr2JpPaU2/u5ckte3ll50FODgTMmJbiuoZKmhtrWN1Yw8JKTYkTORs07W18qlMici65O2/vPcKGrV1saOtiZ+9xAC5fMJt10RLai6pKY04Zv49bp9T8yJRwciDDqzsP0trZS2tnD+8e/ACAhupSmpfUsHppNVcvmqMDCEUmSM3P+FSnROR82tFzlI1t3WzY2sXbe48A0FhbHp1LqJam+grCxZULi5ofKWi7DhyntbOH1s5eXtl5kP7BgJJpaW5YXMlNjTU0L6nWiVJFzoCan/GpTolIXPYc/oBn27rZ0NbFG+8eInBYMKeEtU11rFtRx5ULLyCVKoxGSM2PSOREfzgq1NLZQ0tnD+8dOgHA4poyVjdW09xYw6cumsP0Ii2aIDIeNT/jU50SkSQ4cOzU8BLaL+44wEDGqSor5tbltaxZWsMl82ZRXV48ZUeF1PyInIa7s/PA8eHpca/tPER/JqB0eprrF1exujFcOGHu7JK4o4okipqf8alOiUjS9J0coGVbD8+2ddPS2cMH/RkAqsqms6y+gqb6CpZFl4bq0imxaq6aH5GP4fipQV555yCt23to2dbL3vfDUaHG2nKao1Ghqy66YEr8UxDJh5qf8alOiUiSnRzI8OZ779Oxv4+O/X207+9je/cx+gcDAKYXpVhSWzbcEDXVV7C0voJZJdNiTn5m1PyInCF3553eY7Rs66V1ew+v7zrEQMYpKy5i5eKq4WZIS0tKIVLzMz7VKRGZbAYyATt7j49qiNr39XHweP/wPvNml9A0d6QhaqqvYMGcksROm9NJTkXOkJmxuKacxTXl/MmqBo6dGuTlHQdo6ezlhc4eNrR1AbC0rpzVS8NFE668UKNCIiIiMrlMS6dorCunsa6cz10xDwg/BO49eor2/X107D8aXffxfEc3QTRWUlZcxLL68lFT5xrryifVORY18iPyMbg727uP0RotmvDGu4cZDJzyGUXc+IkqmqMV5GoqNCokU5NGfsanOiUiU9mJ/gzbu0eaoY6oOTp2ahCAlEFDdVlWQ1RO09wKasrP73sijfyInEVmNvwJyV03XczRkwO8tOMArZ29tHT28Mzb4ajQ8rkVNDdWs7qxhssXzKZIo0JC2Dy7Q8adINoO3MkETuDh46O2PdwOgnD/INo/CLK23QmCrO2sr8nkvIY7XDp/FpVlxXH/KEREZJIpmZ7msgWzuWzB7OH7gsDZc/gE7fuP0L7/KO37+ti8+zBPv7VveJ/cxRWa5lbQUFUa+3sjjfyI5Mnd6dh/lNbt4XmFNu0+TCZwKmYUsWpJNZfNn01R2ihKGelUKro2itLRddb9qeHb2depMfunLPt2Kmf/8PpczckNAmcwCN9UDwYBQQCDQUAmetM9mBl6LHxDPnQ7404mCEbdHgycTGbosaHnDcgEhPsGPur1guhrgsDDfXzk8aE3+mP383H242Pul/N8UdOR/T1mNxljtqNGJG4/+qOrWbWkesJfr5Gf8alOiYiEjnwwQEdXdBzRvj46us7f4gpa8EAkJkdOhKNCLdt6aN3eS+/RU7HkSKeMtGU1ROnTNFRRw5Xb0IzXfAwGyft/MfR9plJE1yPfZ8pGrovSNvx49n7hbUbtN/R1Y/fLer6h+1KQsuzXim5nbw9fiO4fZ7+s7bQZNrSdGtkOb4ejkWO2o+e1rCxD2w3VpVTMmHhxUfMzPtUpEZHxZS+uMDR17nSLK/z1Z5Zx+yX1E34dTXsTicmskmncfkk9t19Sj7tz9NTgmAYik4lGTaIRhezRkpEGJHvf04+ejHrOqFkZu//Q8wc5+4+MZmQ3DGkbaZSG3uQPN04WjVKlsx5L2YfcDpus3JGpUa+X05Clcx7LbjTGNjUkdtUZERER+ejFFYYWWKg6T1Oz1fyInENmlten7SIiIiJTjZlRUzGDmooZNDfWnNfX1tHYIiIiIiJSENT8iIiIiIhIQVDzIyIiIiIiBUHNj4iIiIiIFAQ1PyIiIiIiUhDU/IiIiIiISEFQ8yMiIiIiIgVBzY+IiIiIiBQEc/e4M3woM+sFdufxFFXAgbMU51xQvvwlPaPy5S/pGZOeD/LPeKG7V5+tMFOJ6lQiJD2j8uUv6RmVL3/npU4lvvnJl5m94e5XxZ1jPMqXv6RnVL78JT1j0vPB5MhYqJL+u0l6Pkh+RuXLX9IzKl/+zldGTXsTEREREZGCoOZHREREREQKQiE0P/fHHeAjKF/+kp5R+fKX9IxJzweTI2OhSvrvJun5IPkZlS9/Sc+ofPk7Lxmn/DE/IiIiIiIiUBgjPyIiIiIiImp+RERERESkMEzZ5sfMHjKzHjPbGneW0zGzBWbWYmbtZtZmZvfEnSmbmc0ws9fN7K0o39/Fnel0zCxtZlvM7L/iznI6Zvaumb1tZm+a2Rtx58llZrPN7DEz22ZmHWZ2XdyZhphZY/RzG7r0mdlX486Vy8z+LPob2Wpmj5jZjLgzZTOze6JsbUn8+RUy1an8qE6dHapT+ZkMtUp1Kuf1puoxP2a2CjgG/MjdV8SdJ5eZ1QP17r7ZzMqBTcDn3L095mgAmJkBpe5+zMymAS8C97j7qzFHG8XMvgZcBVS4+/q48+Qys3eBq9w9kScWM7MfAr909wfMbDow093fjztXLjNLA3uBa9w9n5NJnlVmNo/wb6PJ3U+Y2aPAM+7+H/EmC5nZCuCnwNVAP7AB+KK774g1mACqU/lSnTo7VKfOniTWKtWpsabsyI+7/x9wKO4c43H3/e6+Odo+CnQA8+JNNcJDx6Kb06JLojplM5sPfAZ4IO4sk5GZzQJWAQ8CuHt/UgsKsAZ4JynFJEcRUGJmRcBMYF/MebItA15z9w/cfRB4AfiNmDNJRHUqP6pTU98kq1OQ3FqlOpVlyjY/k4mZXQRcAbwWb5LRoqH6N4Ee4Dl3T1Q+4J+ArwNB3EE+hAPPmtkmM7sz7jA5FgG9wL9HUzIeMLPSuEON47eBR+IOkcvd9wLfBX4F7AeOuPuz8aYaZStwo5lVmtlM4HZgQcyZZBJSnZow1an8TKY6BQmsVapTY6n5iZmZlQGPA191976482Rz94y7Xw7MB66OhiYTwczWAz3uvinuLB9hpbtfCdwG3B1Nc0mKIuBK4AfufgVwHPhGvJHGiqY5fBb4WdxZcpnZBcCvExbouUCpmf1evKlGuHsH8B3gWcKpBG8CmVhDyaSjOjUxqlNnxaSoU5DcWqU6NZaanxhFc5QfB37i7k/EnWc80RBzC7Au7ixZbgA+G81V/ilws5n9ON5IY0WfuODuPcDPCee0JsUeYE/WJ6WPERaZpLkN2Ozu3XEHOY1PA7vcvdfdB4AngOtjzjSKuz/o7p9091XAYWB73Jlk8lCdyovqVP4mS52C5NYq1akcan5iEh2o+SDQ4e7fjztPLjOrNrPZ0XYJcAuwLd5UI9z9m+4+390vIhxm/l93T8wnGQBmVhodJEw0TH8r4fBuIrh7F/CemTVGd60BEnEgc47fIWHTCLL8CrjWzGZGf9NrCI+LSAwzq4muFxLOo3443kQyWahO5Ud1Kn+TqE5BcmuV6lSOonP55HEys0eAZqDKzPYA33L3B+NNNcoNwO8Db0fzlQH+yt2fiTFTtnrgh9HKJSngUXdP5DKdCVYL/Dz8X0MR8LC7b4g30hhfAX4SDdfvBP4w5jyjRMX4FuCuuLOcjru/ZmaPAZuBQWALcH+8qcZ43MwqgQHg7oQfLFxQVKfypjqVP9WpsyDJtUp1aqwpu9S1iIiIiIhINk17ExERERGRgqDmR0RERERECoKaHxERERERKQhqfkREREREpCCo+RERERERkYKg5kdERERERAqCmh8RERERESkI/w98AFkmtuBEogAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
                                                    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(14,4))\n", + "\n", + "plt.subplot(1,2,1)\n", + "values = np.array(model_lenta.score_tracker['perplexity'].value)\n", + "med = np.median(values)\n", + "values[values > 5 * med] = np.nan\n", + "\n", + "plt.title('Перплексия для модели с регуляризатором')\n", + "plt.plot(values)\n", + "\n", + "plt.subplot(1,2,2)\n", + "values = np.array(model_lenta_unbalanced.score_tracker['perplexity'].value)\n", + "med = np.median(values)\n", + "values[values > 5 * med] = np.nan\n", + "\n", + "plt.title('Перплексия для модели без регуляризатора')\n", + "plt.plot(values)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Topic 0:\n", + "\n", + "Top ngramms: рок_группа, студийный_альбом, лидер_группа, _бибер, музыкант__, причина_смерть, певица_, джей_зи, музыкальный_премия, ляпис_\n", + "\n", + "Top words: альбом, музыкант, певица, песня, концерт, музыкальный, фестиваль, артист, песнь, выступление\n", + "\n", + "\n", + "Topic 1:\n", + "\n", + "Top ngramms: _, миллиард_рубль, миллиард_доллар, миллион_доллар, процент_акция, пресс_релиз, миллион_рубль, российский_компания, прошлое_год, генеральный_директор\n", + "\n", + "Top words: ., , год, компания, что, В, быть, процент, миллиард, рубль\n", + "\n", + "\n" + ] + } + ], + "source": [ + "tokens_viewer = TopTokensViewer(model=topic_model_lenta, num_top_tokens=10)\n", + "top_tokens_dict = tokens_viewer.view()\n", + " \n", + "for topic_id, topic in enumerate(top_tokens_dict.values()):\n", + " print('Topic {}:\\n\\nTop ngramms: {}\\n\\nTop words: {}\\n\\n'.format(\n", + " str(topic_id), ', '.join(topic['ngramms'].keys()), ', '.join(topic['text'].keys())\n", + " ))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tokens_viewer_unbalanced = TopTokensViewer(model=topic_model_lenta_unbalanced, num_top_tokens=10)\n", + "top_tokens_dict_unbalanced = tokens_viewer_unbalanced.view()\n", + " \n", + "for topic_id, topic in enumerate(top_tokens_dict_unbalanced.values()):\n", + " print('Topic {}:\\n\\nTop ngramms: {}\\n\\nTop words: {}\\n\\n'.format(\n", + " str(topic_id), ', '.join(topic['ngramms'].keys()), ', '.join(topic['text'].keys())\n", + " ))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/topicnet/internals.txt b/topicnet/internals.txt index 9277956..92b3f2f 100644 --- a/topicnet/internals.txt +++ b/topicnet/internals.txt @@ -104,7 +104,7 @@ When a regularizer is already present in a model, user can alter it's parameters >> "tau_grid": [-0.2, -0.4, -0.6, -0.7] >> }, >> reg_search="pair", ->> relative_coefficients=False, +>> use_relative_coefficients=False, >> ) Alternatively, if one wishes to introduce a new regularizer (or overwrite the existing one), then the following approach is recomended: @@ -116,13 +116,13 @@ Alternatively, if one wishes to introduce a new regularizer (or overwrite the ex >> "tau_grid": [-0.2, -0.4, -0.6, -0.7] >> }, >> reg_search="pair", ->> relative_coefficients=False, +>> use_relative_coefficients=False, >> ) Relative Coefficients --------------------- -By default, TopicNet makes use of relative regularization coefficients, which is a way to make generic model hyperparameters, robust to change of the dataset. Most of the body of existing work in topic modeling does not use relative coefficients. Therefore, when reproducing exisiting research, one shoud set `relative_coefficients=False` when defining a cube. +By default, TopicNet makes use of relative regularization coefficients, which is a way to make generic model hyperparameters, robust to change of the dataset. Most of the body of existing work in topic modeling does not use relative coefficients. Therefore, when reproducing exisiting research, one shoud set `use_relative_coefficients=False` when defining a cube. See [4] for details. diff --git a/topicnet/tests/__init__.py b/topicnet/tests/__init__.py index 4e183b6..7378e24 100644 --- a/topicnet/tests/__init__.py +++ b/topicnet/tests/__init__.py @@ -1,6 +1,8 @@ +''' import artm # change log style lc = artm.messages.ConfigureLoggingArgs() lc.minloglevel = 3 lib = artm.wrapper.LibArtm(logging_config=lc) +''' diff --git a/topicnet/tests/test_cube_controller.py b/topicnet/tests/test_cube_controller.py index d4c6aa7..ed14ba3 100644 --- a/topicnet/tests/test_cube_controller.py +++ b/topicnet/tests/test_cube_controller.py @@ -1,12 +1,14 @@ import pytest import warnings + import os import shutil import artm import numpy as np +from time import sleep from ..cooking_machine.cubes.controller_cube import RegularizationControllerCube, W_HALT_CONTROL from ..cooking_machine.cubes import RegularizersModifierCube from ..cooking_machine.models.topic_model import TopicModel @@ -23,6 +25,9 @@ artm.regularizers.SmoothSparseThetaRegularizer(name='test_theta_sparse'), artm.regularizers.DecorrelatorPhiRegularizer(name='test_decor') ] +MAX_ITER_WARNING = 'Maximum number of iterations is exceeded;' +# MULTIPROCESSING_FLAGS = [False, True] +MULTIPROCESSING_FLAGS = [False] def resource_teardown(): @@ -43,7 +48,6 @@ def teardown_function(): def approx_equal(x, y): return (abs(x - y) < 0.01) -# =============================== def generate_sparse_regularizers( @@ -187,7 +191,8 @@ def _retrieve_tau_history(result_tm, agent): return history -def test_simple_experiment_with_controller(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_simple_experiment_with_controller(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -220,7 +225,7 @@ def test_simple_experiment_with_controller(experiment_enviroment): parameters=parameters, reg_search="grid", use_relative_coefficients=True, - separate_thread=False + separate_thread=thread_flag ) with pytest.warns(UserWarning, match=W_HALT_CONTROL[:10]): @@ -247,7 +252,8 @@ def test_simple_experiment_with_controller(experiment_enviroment): assert(prev_val > val) -def test_flicker_with_controller(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_flicker_with_controller(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -270,10 +276,10 @@ def test_flicker_with_controller(experiment_enviroment): parameters=parameters, reg_search="grid", use_relative_coefficients=True, - separate_thread=False + separate_thread=thread_flag ) - - tmodels = [dummy.restore() for dummy in cube(tm, dataset)] + dummies = cube(tm, dataset) + tmodels = [dummy.restore() for dummy in dummies] assert len(tmodels) == 1 @@ -290,7 +296,8 @@ def test_flicker_with_controller(experiment_enviroment): assert t1 + t2 > 0 -def test_flicker_with_controller_lambdas(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_flicker_with_controller_lambdas(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -327,10 +334,10 @@ def very_complex_func(initial_tau, prev_tau, cur_iter, user_value): parameters=parameters, reg_search="grid", use_relative_coefficients=True, - separate_thread=False + separate_thread=thread_flag ) - - tmodels = [dummy.restore() for dummy in cube(tm, dataset)] + dummies = cube(tm, dataset) + tmodels = [dummy.restore() for dummy in dummies] for one_cube_part in cube.get_jsonable_from_parameters(): source = one_cube_part["tau_converter"] @@ -353,7 +360,8 @@ def very_complex_func(initial_tau, prev_tau, cur_iter, user_value): assert t1 + t2 > 0 -def test_description_for_insanely_complicated_lambdas(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_description_for_insanely_complicated_lambdas(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -384,7 +392,7 @@ def test_description_for_insanely_complicated_lambdas(experiment_enviroment): parameters=parameters, reg_search="grid", use_relative_coefficients=True, - separate_thread=False + separate_thread=thread_flag ) tmodels = cube(tm, dataset) @@ -398,7 +406,8 @@ def test_description_for_insanely_complicated_lambdas(experiment_enviroment): assert len(tmodels) == 1 -def test_inline_relative_regularizers(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_inline_relative_regularizers(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -418,10 +427,10 @@ def test_inline_relative_regularizers(experiment_enviroment): parameters=parameters, reg_search="grid", use_relative_coefficients=True, - separate_thread=False + separate_thread=thread_flag ) - - tmodels = [dummy.restore() for dummy in cube(tm, dataset)] + dummies = cube(tm, dataset) + tmodels = [dummy.restore() for dummy in dummies] assert len(tmodels) == 1 @@ -433,7 +442,8 @@ def test_inline_relative_regularizers(experiment_enviroment): assert len(set(history)) == 1, "tau shouldn't been changed" -def test_inline_regularizers(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_inline_regularizers(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -452,10 +462,10 @@ def test_inline_regularizers(experiment_enviroment): parameters=parameters, reg_search="grid", use_relative_coefficients=False, - separate_thread=False + separate_thread=thread_flag ) - - tmodels = [dummy.restore() for dummy in cube(tm, dataset)] + dummies = cube(tm, dataset) + tmodels = [dummy.restore() for dummy in dummies] assert len(tmodels) == 1 @@ -465,7 +475,8 @@ def test_inline_regularizers(experiment_enviroment): @pytest.mark.parametrize('num_iters', [5, float("inf")]) -def test_max_iters(experiment_enviroment, num_iters): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_max_iters(experiment_enviroment, num_iters, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -485,9 +496,8 @@ def test_max_iters(experiment_enviroment, num_iters): parameters=parameters, reg_search="grid", use_relative_coefficients=False, - separate_thread=False + separate_thread=thread_flag ) - cube(tm, dataset) resulting_models = experiment.select() for one_model in resulting_models: @@ -511,7 +521,7 @@ def test_max_iters(experiment_enviroment, num_iters): regularizer_parameters=regularizer_parameters, reg_search="grid", use_relative_coefficients=False, - separate_thread=False + separate_thread=thread_flag ) dummies = cube_second(experiment.select()[0], dataset) @@ -526,3 +536,4 @@ def test_max_iters(experiment_enviroment, num_iters): print(history) print(agent.is_working) assert one_model.regularizers['test'].tau == expected_tau + sleep(1) diff --git a/topicnet/tests/test_cube_creator.py b/topicnet/tests/test_cube_creator.py index c433071..e0bc212 100644 --- a/topicnet/tests/test_cube_creator.py +++ b/topicnet/tests/test_cube_creator.py @@ -29,6 +29,9 @@ def teardown_function(): resource_teardown() +MULTIPROCESSING_FLAGS = [True, False] + + # to run all test @pytest.fixture(scope="function") def experiment_enviroment(request): @@ -49,11 +52,12 @@ def experiment_enviroment(request): ex_score = ScoreExample() tm = TopicModel(model_artm, model_id='new_id', custom_scores={'example_score': ex_score}) # experiment starts without model - experiment = Experiment(tm, experiment_id="test", save_path="tests/experiments") + experiment = Experiment(tm, experiment_id="test_cube_creator", save_path="tests/experiments") return tm, dataset, experiment, dictionary -def test_simple_experiment(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_simple_experiment(experiment_enviroment, thread_flag): """ """ # experiment with one level created by CubeCreator tm, dataset, experiment, dictionary = experiment_enviroment @@ -72,7 +76,7 @@ def test_simple_experiment(experiment_enviroment): num_iter=10, parameters=parameters, reg_search="grid", - separate_thread=False, + separate_thread=thread_flag, ) dummies = cube(experiment.root, dataset) tmodels = [dummy.restore() for dummy in dummies] @@ -93,7 +97,8 @@ def test_simple_experiment(experiment_enviroment): assert len(one_model.scores['SparsityThetaScore']) > 0, 'Smth wrong with scores' -def test_two_cubes_experiment(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_two_cubes_experiment(experiment_enviroment, thread_flag): """ """ # experiment with two levels: first one is CubeCreator, # second one is RegularizersModifierCube @@ -114,7 +119,7 @@ def test_two_cubes_experiment(experiment_enviroment): num_iter=10, parameters=parameters, reg_search="grid", - separate_thread=False, + separate_thread=thread_flag, ) dummies = cube(experiment.root, dataset) @@ -132,7 +137,7 @@ def test_two_cubes_experiment(experiment_enviroment): regularizer_parameters=regularizer_parameters, reg_search="grid", use_relative_coefficients=False, - separate_thread=False, + separate_thread=thread_flag, ) dummies = cube(tmodels[2], dataset) tmodels = [dummy.restore() for dummy in dummies] @@ -147,11 +152,8 @@ def test_two_cubes_experiment(experiment_enviroment): assert len(experiment.models) == 15 -sleep(1) - - # @pytest.mark.xfail -@pytest.mark.parametrize('thread_flag', [True, False]) +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) def test_three_cubes_hier_model(experiment_enviroment, thread_flag): """ """ # experiment with two levels: first one is CubeCreator, @@ -219,14 +221,14 @@ def test_three_cubes_hier_model(experiment_enviroment, thread_flag): tmodels_third_level = [dummy.restore() for dummy in dummies] for model in tmodels_third_level: - # TODO: Failing SparsityPhiScore print(model.scores) assert len(model.scores['PerplexityScore']) > 0, 'Smth wrong with scores' assert len(model.scores['SparsityPhiScore']) > 0, 'Smth wrong with scores' assert len(model.scores['SparsityThetaScore']) > 0, 'Smth wrong with scores' -def test_scores_are_different_after_cube(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_scores_are_different_after_cube(experiment_enviroment, thread_flag): tm, dataset, experiment, dictionary = experiment_enviroment parameters = [ @@ -240,7 +242,7 @@ def test_scores_are_different_after_cube(experiment_enviroment): num_iter=10, parameters=parameters, reg_search="grid", - separate_thread=False, + separate_thread=thread_flag, ) def check_scores(tmodels): @@ -271,9 +273,10 @@ def check_scores(tmodels): reg_search="grid", use_relative_coefficients=False, verbose=True, - separate_thread=False, + separate_thread=thread_flag, ) dummies = cube(tmodels[1], dataset) tmodels = [dummy.restore() for dummy in dummies] check_scores(tmodels) + sleep(1) diff --git a/topicnet/tests/test_cubes.py b/topicnet/tests/test_cubes.py index 278c1ac..6e67330 100644 --- a/topicnet/tests/test_cubes.py +++ b/topicnet/tests/test_cubes.py @@ -12,10 +12,14 @@ from ..cooking_machine.cubes import RegularizersModifierCube, CubeCreator from ..cooking_machine.models.topic_model import TopicModel +from ..cooking_machine.models.topic_prior_regularizer import TopicPriorRegularizer +from ..cooking_machine.models.topic_prior_regularizer import TopicPriorSampledRegularizer from ..cooking_machine.experiment import Experiment from ..cooking_machine.dataset import Dataset, W_DIFF_BATCHES_1 from ..cooking_machine.rel_toolbox_lite import count_vocab_size, compute_regularizer_gimel +DATA_PATH = f'tests/test_data/test_dataset.csv' + MAIN_MODALITY = "@text" NGRAM_MODALITY = "@ngramms" EXTRA_MODALITY = "@str" @@ -26,12 +30,14 @@ artm.regularizers.DecorrelatorPhiRegularizer(name='test_decor') ] RENORMALIZE_FLAG = [False, True] +MULTIPROCESSING_FLAGS = [True, False] def resource_teardown(): """ """ if os.path.exists("tests/experiments"): shutil.rmtree("tests/experiments") + pass if os.path.exists("tests/test_data/test_dataset_batches"): shutil.rmtree("tests/test_data/test_dataset_batches") @@ -50,7 +56,7 @@ def experiment_enviroment(request): """ """ with warnings.catch_warnings(): warnings.filterwarnings(action="ignore", message=W_DIFF_BATCHES_1) - dataset = Dataset(f'tests/test_data/test_dataset.csv') + dataset = Dataset(DATA_PATH) dictionary = dataset.get_dictionary() model_artm = artm.ARTM( @@ -64,7 +70,9 @@ def experiment_enviroment(request): ) tm = TopicModel(model_artm, model_id='new_id') - experiment = Experiment(experiment_id="test", save_path="tests/experiments", topic_model=tm) + experiment = Experiment(experiment_id="test_cubes", + save_path="tests/experiments", + topic_model=tm) return tm, dataset, experiment, dictionary @@ -78,7 +86,8 @@ def test_initial_tm(experiment_enviroment): assert len(tm.callbacks) == 0 -def test_simple_experiment(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_simple_experiment(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -94,17 +103,19 @@ def test_simple_experiment(experiment_enviroment): regularizer_parameters=regularizer_parameters, reg_search="grid", use_relative_coefficients=False, - separate_thread=False + separate_thread=thread_flag ) + dummies = cube(tm, dataset) - tmodels = [dummy.restore() for dummy in cube(tm, dataset)] + tmodels = [dummy.restore() for dummy in dummies] assert len(tmodels) == len(TAU_GRID) for i, one_model in enumerate(tmodels): assert one_model.regularizers['test'].tau == TAU_GRID[i] -def test_simple_experiment_pair_strategy(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_simple_experiment_pair_strategy(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -120,7 +131,7 @@ def test_simple_experiment_pair_strategy(experiment_enviroment): regularizer_parameters=regularizer_parameters, reg_search="pair", use_relative_coefficients=False, - separate_thread=False + separate_thread=thread_flag ) dummies = cube_pair(tm, dataset) for dummy in dummies: @@ -134,7 +145,8 @@ def test_simple_experiment_pair_strategy(experiment_enviroment): assert one_model.regularizers['test'].tau == TAU_GRID[i] -def test_double_steps_experiment(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_double_steps_experiment(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -149,7 +161,7 @@ def test_double_steps_experiment(experiment_enviroment): regularizer_parameters=regularizer_parameters, reg_search="grid", use_relative_coefficients=False, - separate_thread=False + separate_thread=thread_flag ) tmodels_lvl2 = cube_first(tm, dataset) @@ -166,10 +178,11 @@ def test_double_steps_experiment(experiment_enviroment): regularizer_parameters=regularizer_parameters, reg_search="grid", use_relative_coefficients=False, - separate_thread=False + separate_thread=thread_flag ) + dummies = cube_second(tmodels_lvl2[0], dataset) - tmodels_lvl3 = [dummy.restore() for dummy in cube_second(tmodels_lvl2[0], dataset)] + tmodels_lvl3 = [dummy.restore() for dummy in dummies] assert len(tmodels_lvl3) == len(TAU_GRID_LVL2) for i, one_model in enumerate(tmodels_lvl3): @@ -177,8 +190,9 @@ def test_double_steps_experiment(experiment_enviroment): assert one_model.depth == 3 +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) @pytest.mark.parametrize('artm_regularizer', POSSIBLE_REGULARIZERS) -def test_relative_coefficients(experiment_enviroment, artm_regularizer): +def test_relative_coefficients(experiment_enviroment, artm_regularizer, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment modality_weights = tm.class_ids @@ -195,7 +209,7 @@ def test_relative_coefficients(experiment_enviroment, artm_regularizer): regularizer_parameters=regularizer_parameters, reg_search="grid", use_relative_coefficients=False, - separate_thread=False + separate_thread=thread_flag ) first_cube_tmodels = cube_first(tm, dataset) @@ -232,7 +246,7 @@ def test_relative_coefficients(experiment_enviroment, artm_regularizer): regularizer_parameters=regularizer_parameters, reg_search="grid", use_relative_coefficients=True, - separate_thread=False + separate_thread=thread_flag ) second_cube_models = cube_second(tm, dataset) @@ -247,7 +261,8 @@ def test_relative_coefficients(experiment_enviroment, artm_regularizer): assert one_model.scores['PerplexityScore'] == second_model.scores['PerplexityScore'] -def test_two_regularizers_on_step_experiment(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_two_regularizers_on_step_experiment(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -270,10 +285,10 @@ def test_two_regularizers_on_step_experiment(experiment_enviroment): regularizer_parameters=regularizer_parameters, reg_search="grid", use_relative_coefficients=False, - separate_thread=False + separate_thread=thread_flag ) - - tmodels_lvl2 = [dummy.restore() for dummy in cube(tm, dataset)] + dummies = cube(tm, dataset) + tmodels_lvl2 = [dummy.restore() for dummy in dummies] TAU_FOR_CHECKING = [ (1, -0.1), (1, -0.5), (5, -0.1), (5, -0.5), (10, -0.1), (10, -0.5) @@ -291,7 +306,8 @@ def test_two_regularizers_on_step_experiment(experiment_enviroment): assert lvl2_model.depth == 2 -def test_two_regularizers_on_step_experiment_pair_grid(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_two_regularizers_on_step_experiment_pair_grid(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -314,10 +330,11 @@ def test_two_regularizers_on_step_experiment_pair_grid(experiment_enviroment): regularizer_parameters=regularizer_parameters, reg_search="pair", use_relative_coefficients=False, - separate_thread=False + separate_thread=thread_flag ) + dummies = cube_pair(tm, dataset) - tmodels_lvl2_pair = [dummy.restore() for dummy in cube_pair(tm, dataset)] + tmodels_lvl2_pair = [dummy.restore() for dummy in dummies] TAU_FOR_CHECKING = [ (1, -0.1), (5, -0.5), (10, -0.3) @@ -332,7 +349,8 @@ def test_two_regularizers_on_step_experiment_pair_grid(experiment_enviroment): assert taus == TAU_FOR_CHECKING[i] -def test_modifier_cube_on_two_steps_experiment(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_modifier_cube_on_two_steps_experiment(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -355,7 +373,7 @@ def test_modifier_cube_on_two_steps_experiment(experiment_enviroment): regularizer_parameters=regularizer_parameters, reg_search="pair", use_relative_coefficients=False, - separate_thread=False + separate_thread=thread_flag ) tmodels_lvl2_pair = cube_pair(tm, dataset) @@ -370,10 +388,10 @@ def test_modifier_cube_on_two_steps_experiment(experiment_enviroment): regularizer_parameters=regularizer_parameters_second, reg_search="pair", use_relative_coefficients=False, - separate_thread=False + separate_thread=thread_flag ) - - tmodels_second = [dummy.restore() for dummy in cube_second(tmodels_lvl2_pair[1], dataset)] + dummies = cube_second(tmodels_lvl2_pair[1], dataset) + tmodels_second = [dummy.restore() for dummy in dummies] TAU_FOR_CHECKING = [ (5, -0.2), (5, -0.4), (5, -0.6), (5, -0.7) ] @@ -387,7 +405,8 @@ def test_modifier_cube_on_two_steps_experiment(experiment_enviroment): assert taus == TAU_FOR_CHECKING[i] -def test_class_ids_cube(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_class_ids_cube(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -400,10 +419,10 @@ def test_class_ids_cube(experiment_enviroment): num_iter=1, parameters=class_id_params, reg_search="grid", - separate_thread=False + separate_thread=thread_flag ) - - tmodels_lvl2 = [dummy.restore() for dummy in cube(tm, dataset)] + dummies = cube(tm, dataset) + tmodels_lvl2 = [dummy.restore() for dummy in dummies] CLASS_IDS_FOR_CHECKING = [(1, 1), (1, 2), (2, 1), (2, 2), (3, 1), (3, 2)] assert len(tmodels_lvl2) == 6 @@ -413,39 +432,11 @@ def test_class_ids_cube(experiment_enviroment): assert one_model.class_ids[NGRAM_MODALITY] == CLASS_IDS_FOR_CHECKING[i][1] -''' -# most likely fail -@pytest.mark.xfail -def test_phi_matrix_after_class_ids_cube(experiment_enviroment): - tm, dataset, experiment, dictionary = experiment_enviroment - - class_id_params = { - "class_ids" + MAIN_MODALITY: [0, 1, 2], - "class_ids" + NGRAM_MODALITY: [1, 0, 2], - } - - cube = CubeCreator( - num_iter=5, - parameters=class_id_params, - reg_search="pair", - use_relative_coefficients=False, - ) - - tmodels = cube(tm, dataset) - for first_ind in range(len(tmodels)): - for second_ind in range(first_ind + 1, len(tmodels)): - phi_first = tmodels[first_ind].get_phi_dense()[0] - phi_second = tmodels[second_ind].get_phi_dense()[0] - if phi_first.shape == phi_second.shape: - assert (np.prod(phi_first.shape) - np.sum(phi_first == phi_second)) > 0, \ - 'Phi matrixes are the same after class_ids_cube.' - - resource_teardown() -''' - - +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) @pytest.mark.parametrize('renormalize', RENORMALIZE_FLAG) -def test_class_id_cube_strategy_elliptic_paraboloid(experiment_enviroment, renormalize): +def test_class_id_cube_strategy_elliptic_paraboloid(experiment_enviroment, + renormalize, + thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment class_id_params = { @@ -465,10 +456,11 @@ def retrieve_elliptic_paraboloid_score(topic_model): reg_search="grid", strategy=GreedyStrategy(renormalize), tracked_score_function=retrieve_elliptic_paraboloid_score, - separate_thread=False + separate_thread=thread_flag ) + dummies = cube(tm, dataset) - tmodels_lvl2 = [dummy.restore() for dummy in cube(tm, dataset)] + tmodels_lvl2 = [dummy.restore() for dummy in dummies] if not renormalize: assert len(tmodels_lvl2) == sum(len(m) for m in class_id_params.values()) @@ -490,8 +482,9 @@ def retrieve_elliptic_paraboloid_score(topic_model): assert cube.strategy.best_score >= -0.09 +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) @pytest.mark.parametrize('renormalize', RENORMALIZE_FLAG) -def test_class_id_cube_strategy_rosenbrock(experiment_enviroment, renormalize): +def test_class_id_cube_strategy_rosenbrock(experiment_enviroment, renormalize, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -512,10 +505,10 @@ def retrieve_rosenbrock_score(topic_model): reg_search="grid", strategy=GreedyStrategy(renormalize), tracked_score_function=retrieve_rosenbrock_score, - separate_thread=False + separate_thread=thread_flag ) - - tmodels_lvl2 = [dummy.restore() for dummy in cube(tm, dataset)] + dummies = cube(tm, dataset) + tmodels_lvl2 = [dummy.restore() for dummy in dummies] if not renormalize: assert len(tmodels_lvl2) == sum(len(m) for m in class_id_params.values()) @@ -537,8 +530,9 @@ def retrieve_rosenbrock_score(topic_model): assert cube.strategy.best_score >= -0.09 +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) @pytest.mark.parametrize('renormalize', RENORMALIZE_FLAG) -def test_class_id_cube_strategy_3d_parabolic(experiment_enviroment, renormalize): +def test_class_id_cube_strategy_3d_parabolic(experiment_enviroment, renormalize, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -562,10 +556,10 @@ def retrieve_parabolic_3d_score(topic_model): strategy=GreedyStrategy(renormalize), tracked_score_function=retrieve_parabolic_3d_score, verbose=True, - separate_thread=False + separate_thread=thread_flag ) - - tmodels_lvl2 = [dummy.restore() for dummy in cube(tm, dataset)] + dummies = cube(tm, dataset) + tmodels_lvl2 = [dummy.restore() for dummy in dummies] if not renormalize: assert len(tmodels_lvl2) == sum(len(m) for m in class_id_params.values()) @@ -619,7 +613,8 @@ def extract_strategic_scores(cube): return list(map(lambda score: np.round(score, 3), cube.strategy.score)) -def test_perplexity_strategy_grid(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_perplexity_strategy_grid(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -637,10 +632,11 @@ def test_perplexity_strategy_grid(experiment_enviroment): tracked_score_function='PerplexityScore', reg_search="grid", use_relative_coefficients=False, - separate_thread=False + separate_thread=thread_flag ) with pytest.warns(UserWarning, match='Grid would be used instead'): - tmodels = [dummy.restore() for dummy in cube(tm, dataset)] + dummies = cube(tm, dataset) + tmodels = [dummy.restore() for dummy in dummies] visited_taus = extract_visited_taus(tmodels) expected_taus = [0] + TAU_GRID @@ -655,7 +651,8 @@ def test_perplexity_strategy_grid(experiment_enviroment): assert cube.strategy.best_point[0][2] == 50 -def test_perplexity_strategy_add(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_perplexity_strategy_add(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -673,10 +670,11 @@ def test_perplexity_strategy_add(experiment_enviroment): reg_search='add', use_relative_coefficients=False, verbose=True, - separate_thread=False + separate_thread=thread_flag ) with pytest.warns(UserWarning, match="Max progression length"): - tmodels = [dummy.restore() for dummy in cube(tm, dataset)] + dummies = cube(tm, dataset) + tmodels = [dummy.restore() for dummy in dummies] visited_taus = extract_visited_taus(tmodels) expected_taus = [0, 1, 2, 3, 4, 5] @@ -691,7 +689,8 @@ def test_perplexity_strategy_add(experiment_enviroment): assert cube.strategy.best_point[0][2] == 5 -def test_perplexity_strategy_mul(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_perplexity_strategy_mul(experiment_enviroment, thread_flag): """ """ tm, dataset, experiment, dictionary = experiment_enviroment @@ -709,11 +708,12 @@ def test_perplexity_strategy_mul(experiment_enviroment): reg_search='mul', use_relative_coefficients=False, verbose=True, - separate_thread=False + separate_thread=thread_flag ) with pytest.warns(UserWarning, match="Perplexity is too high for threshold"): - tmodels = [dummy.restore() for dummy in cube(tm, dataset)] + dummies = cube(tm, dataset) + tmodels = [dummy.restore() for dummy in dummies] visited_taus = extract_visited_taus(tmodels) expected_taus = [0, 0.001, 0.01, 0.1, 1.0, 10.0] @@ -726,3 +726,95 @@ def test_perplexity_strategy_mul(experiment_enviroment): f"expected == {SCORES}") assert cube.strategy.best_point[0][2] == 1.0 + + +def test_phi_matrix_after_lda_regularizer(experiment_enviroment): + with warnings.catch_warnings(): + warnings.filterwarnings(action="ignore", message=W_DIFF_BATCHES_1) + dataset = Dataset(DATA_PATH) + dictionary = dataset.get_dictionary() + batch_vectorizer = dataset.get_batch_vectorizer() + + topic_prior_reg = TopicPriorRegularizer( + name='topic_prior', tau=5, + num_topics=5, beta=[10, 1, 100, 2, 1000] + ) + + model_artm_1 = artm.ARTM( + num_processors=1, + num_topics=5, + cache_theta=True, + class_ids={MAIN_MODALITY: 1.0, NGRAM_MODALITY: 1.0}, + num_document_passes=1, + dictionary=dictionary, + scores=[artm.PerplexityScore(name='PerplexityScore',)], + ) + model_artm_2 = artm.ARTM( + num_processors=1, + num_topics=5, + cache_theta=True, + class_ids={MAIN_MODALITY: 1.0, NGRAM_MODALITY: 1.0}, + num_document_passes=1, + dictionary=dictionary, + scores=[artm.PerplexityScore(name='PerplexityScore',)], + ) + + tm_1 = TopicModel( + model_artm_1, model_id='new_id_1', + custom_regularizers={topic_prior_reg.name: topic_prior_reg} + ) + tm_2 = TopicModel(model_artm_2, model_id='new_id_2') + + tm_1._fit(batch_vectorizer, 10) + tm_2._fit(batch_vectorizer, 10) + + phi_first = tm_1.get_phi() + phi_second = tm_2.get_phi() + + assert any(phi_first != phi_second), 'Phi matrices are the same after regularization.' + + +def test_phi_matrix_after_lda_sampled_regularizer(experiment_enviroment): + with warnings.catch_warnings(): + warnings.filterwarnings(action="ignore", message=W_DIFF_BATCHES_1) + dataset = Dataset(DATA_PATH) + dictionary = dataset.get_dictionary() + batch_vectorizer = dataset.get_batch_vectorizer() + + topic_prior_reg = TopicPriorSampledRegularizer( + name='topic_prior', tau=5, + num_topics=5, beta_prior=[10, 1, 100, 2, 1000] + ) + + model_artm_1 = artm.ARTM( + num_processors=1, + num_topics=5, + cache_theta=True, + class_ids={MAIN_MODALITY: 1.0, NGRAM_MODALITY: 1.0}, + num_document_passes=1, + dictionary=dictionary, + scores=[artm.PerplexityScore(name='PerplexityScore',)], + ) + model_artm_2 = artm.ARTM( + num_processors=1, + num_topics=5, + cache_theta=True, + class_ids={MAIN_MODALITY: 1.0, NGRAM_MODALITY: 1.0}, + num_document_passes=1, + dictionary=dictionary, + scores=[artm.PerplexityScore(name='PerplexityScore',)], + ) + + tm_1 = TopicModel( + model_artm_1, model_id='new_id_1', + custom_regularizers={topic_prior_reg.name: topic_prior_reg} + ) + tm_2 = TopicModel(model_artm_2, model_id='new_id_2') + + tm_1._fit(batch_vectorizer, 10) + tm_2._fit(batch_vectorizer, 10) + + phi_first = tm_1.get_phi() + phi_second = tm_2.get_phi() + + assert any(phi_first != phi_second), 'Phi matrices are the same after regularization.' diff --git a/topicnet/tests/test_data/config_short_modals.yml b/topicnet/tests/test_data/config_short_modals.yml new file mode 100644 index 0000000..c462077 --- /dev/null +++ b/topicnet/tests/test_data/config_short_modals.yml @@ -0,0 +1,40 @@ +topics: + background_topics: 1 + specific_topics: 4 + +regularizers: +- SmoothSparsePhiRegularizer: + name: sparse_phi_@text + topic_names: specific_topics + tau: 1 + class_ids: ["@text"] + +scores: + - BackgroundTokensRatioScore: + class_id: '@text' + name: 'BTRS' + - ScoreExample: + +model: + dataset_path: tests/test_data/test_dataset.csv + modalities_weights: {'@text': 1, '@ngramms': 2, '@str': 3} + main_modality: '@text' + +stages: + +- CubeCreator: + num_iter: 5 + selection: + - PerplexityScore@all -> min + parameters: + - name: class_ids@text + values: [1.0] + +- RegularizersModifierCube: + num_iter: 5 + regularizer_parameters: + name: sparse_phi_@text + tau_grid: [-1, 0, 1] + selection: + - TopicKernel@text.average_contrast -> max + use_relative_coefficients: False diff --git a/topicnet/tests/test_experiment.py b/topicnet/tests/test_experiment.py index c20f797..5057539 100644 --- a/topicnet/tests/test_experiment.py +++ b/topicnet/tests/test_experiment.py @@ -17,6 +17,7 @@ MAIN_MODALITY = "@text" NGRAM_MODALITY = "@ngramms" EXTRA_MODALITY = "@str" +MULTIPROCESSING_FLAGS = [True, False] def resource_teardown(): @@ -90,7 +91,8 @@ def test_initial_save_load(two_experiment_enviroments): assert experiment.criteria[0] == ['test_criteria'], 'Experiment failed to load criteria' -def test_simple_experiment(two_experiment_enviroments): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_simple_experiment(two_experiment_enviroments, thread_flag): """ """ tm_1, experiment_1, tm_2, experiment_2, dataset, dictionary = two_experiment_enviroments @@ -111,18 +113,21 @@ def test_simple_experiment(two_experiment_enviroments): num_iter=10, regularizer_parameters=regularizer_parameters, use_relative_coefficients=False, - reg_search="grid" + reg_search="grid", + separate_thread=thread_flag, ) cube_2 = RegularizersModifierCube( num_iter=10, regularizer_parameters=regularizer_parameters, use_relative_coefficients=False, - reg_search="grid" + reg_search="grid", + separate_thread=thread_flag, ) - - tmodels = [dummy.restore() for dummy in cube(tm, dataset)] - tmodels_2 = [dummy.restore() for dummy in cube_2(tm_2, dataset)] + dummies = cube(tm, dataset) + tmodels = [dummy.restore() for dummy in dummies] + dummies_2 = cube_2(tm_2, dataset) + tmodels_2 = [dummy.restore() for dummy in dummies_2] assert len(tmodels) == len(tmodels_2) assert cube.strategy.score == cube_2.strategy.score @@ -134,7 +139,8 @@ def test_simple_experiment(two_experiment_enviroments): assert models[1].depth == 2 -def test_double_steps_experiment(two_experiment_enviroments): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_double_steps_experiment(two_experiment_enviroments, thread_flag): """ """ tm_1, experiment_1, tm_2, experiment_2, dataset, dictionary = two_experiment_enviroments @@ -148,18 +154,21 @@ def test_double_steps_experiment(two_experiment_enviroments): num_iter=10, regularizer_parameters=regularizer_parameters, use_relative_coefficients=False, - reg_search="grid" + reg_search="grid", + separate_thread=thread_flag, ) cube_first_2 = RegularizersModifierCube( num_iter=10, regularizer_parameters=regularizer_parameters, use_relative_coefficients=False, - reg_search="grid" + reg_search="grid", + separate_thread=thread_flag, ) - - tmodels_lvl2_1 = [dummy.restore() for dummy in cube_first_1(tm_1, dataset)] - tmodels_lvl2_2 = [dummy.restore() for dummy in cube_first_2(tm_2, dataset)] + dummies_first = cube_first_1(tm_1, dataset) + tmodels_lvl2_1 = [dummy.restore() for dummy in dummies_first] + dummies_second = cube_first_2(tm_2, dataset) + tmodels_lvl2_2 = [dummy.restore() for dummy in dummies_second] experiment_1.save_path = 'tests/experiments/test' experiment_1.save() @@ -179,18 +188,21 @@ def test_double_steps_experiment(two_experiment_enviroments): num_iter=10, regularizer_parameters=regularizer_parameters, use_relative_coefficients=False, - reg_search="grid" + reg_search="grid", + separate_thread=thread_flag, ) cube_second_2 = RegularizersModifierCube( num_iter=10, regularizer_parameters=regularizer_parameters, use_relative_coefficients=False, - reg_search="grid" + reg_search="grid", + separate_thread=thread_flag, ) - - tmodels_lvl3 = [dummy.restore() for dummy in cube_second(tmodels_lvl2[0], dataset)] - tmodels_lvl3_2 = [dummy.restore() for dummy in cube_second_2(tmodels_lvl2_2[0], dataset)] + dummies_lvl3 = cube_second(tmodels_lvl2[0], dataset) + tmodels_lvl3 = [dummy.restore() for dummy in dummies_lvl3] + dummies_lvl3_2 = cube_second_2(tmodels_lvl2_2[0], dataset) + tmodels_lvl3_2 = [dummy.restore() for dummy in dummies_lvl3_2] assert len(tmodels_lvl3) == len(tmodels_lvl3_2) assert cube_second.strategy.score == cube_second_2.strategy.score @@ -207,7 +219,8 @@ def test_double_steps_experiment(two_experiment_enviroments): assert models[1].depth == 3 -def test_describe(two_experiment_enviroments): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_describe(two_experiment_enviroments, thread_flag): """ """ tm_1, experiment_1, tm_2, experiment_2, dataset, dictionary = two_experiment_enviroments @@ -221,7 +234,8 @@ def test_describe(two_experiment_enviroments): num_iter=10, regularizer_parameters=regularizer_parameters, use_relative_coefficients=False, - reg_search="grid" + reg_search="grid", + separate_thread=thread_flag, ) _ = cube_first(tm_1, dataset) @@ -233,7 +247,8 @@ def test_describe(two_experiment_enviroments): num_iter=10, regularizer_parameters=regularizer_parameters, use_relative_coefficients=False, - reg_search="grid" + reg_search="grid", + separate_thread=thread_flag, ) _ = cube_second(tmodels_lvl1, dataset) diff --git a/topicnet/tests/test_experiment_logging.py b/topicnet/tests/test_experiment_logging.py index b738370..2e22783 100644 --- a/topicnet/tests/test_experiment_logging.py +++ b/topicnet/tests/test_experiment_logging.py @@ -11,6 +11,7 @@ from ..cooking_machine.cubes.perplexity_strategy import PerplexityStrategy MAIN_MODALITY = "@text" +USE_MULTIPROCESSING = [True] class TestLogging: @@ -51,7 +52,8 @@ def test_experiment_exists(cls): save_path=cls.experiment_path, ) - def test_experiment_prune(cls): + @pytest.mark.parametrize('thread_flag', USE_MULTIPROCESSING) + def test_experiment_prune(cls, thread_flag): """ """ cls.topic_model.experiment = None experiment_run = Experiment( @@ -69,7 +71,8 @@ def test_experiment_prune(cls): tracked_score_function='PerplexityScore@all', reg_search='mul', use_relative_coefficients=False, - verbose=True + verbose=True, + separate_thread=thread_flag ) test_cube(cls.topic_model, cls.dataset) diff --git a/topicnet/tests/test_pipeline.py b/topicnet/tests/test_pipeline.py index 0e2d064..6bf470e 100644 --- a/topicnet/tests/test_pipeline.py +++ b/topicnet/tests/test_pipeline.py @@ -3,7 +3,6 @@ import os import shutil -from time import sleep import artm @@ -15,6 +14,11 @@ from ..cooking_machine.config_parser import build_experiment_environment_from_yaml_config +# MULTIPROCESSING_FLAGS = [True, False] +MULTIPROCESSING_FLAGS = [True] +USE_MULTIPROCESS = True + + def resource_teardown(): """ """ if os.path.exists("tests/experiments"): @@ -24,7 +28,8 @@ def resource_teardown(): def setup_function(): - resource_teardown() + # resource_teardown() + pass def teardown_function(): @@ -40,7 +45,7 @@ def experiment_enviroment(request): dictionary = dataset.get_dictionary() model_artm = artm.ARTM( - num_processors=1, + num_processors=3, num_topics=5, cache_theta=True, num_document_passes=1, dictionary=dictionary, scores=[artm.PerplexityScore(name='PerplexityScore')] @@ -51,7 +56,7 @@ def experiment_enviroment(request): ex_score = ScoreExample() tm = TopicModel(model_artm, model_id='new_id', custom_scores={'example_score': ex_score}) - experiment = Experiment(tm, experiment_id="test", save_path="tests/experiments") + experiment = Experiment(tm, experiment_id="test_pipeline", save_path="tests/experiments") cube_settings = [{ 'CubeCreator': { @@ -63,6 +68,7 @@ def experiment_enviroment(request): }, ], 'reg_search': 'grid', + 'separate_thread': USE_MULTIPROCESS, }, 'selection': [ 'model.seed = 82019 and PerplexityScore -> min COLLECT 2', @@ -77,6 +83,7 @@ def experiment_enviroment(request): }, 'reg_search': 'grid', 'use_relative_coefficients': False, + 'separate_thread': USE_MULTIPROCESS, }, 'selection': [ 'PerplexityScore -> max COLLECT 2', @@ -86,14 +93,16 @@ def experiment_enviroment(request): return tm, dataset, experiment, dictionary, cube_settings -def test_bad_empty_config(experiment_enviroment): - with open("tests/test_data/bad_empty_config.yml", "r") as f: +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_bad_empty_config(experiment_enviroment, thread_flag): + with open("tests/test_data/bad_empty_config.yml", "r", encoding='utf-8') as f: yaml_string = f.read() experiment, dataset = build_experiment_environment_from_yaml_config( yaml_string, experiment_id="Test_config", - save_path="tests/experiments" + save_path="tests/experiments", + force_single_thread=not thread_flag ) with pytest.warns(UserWarning, match='Unable to calculate special'): experiment.run(dataset) @@ -101,26 +110,30 @@ def test_bad_empty_config(experiment_enviroment): assert len(final_models) == 0 -def test_bad_config(experiment_enviroment): - with open("tests/test_data/bad_config.yml", "r") as f: +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_bad_config(experiment_enviroment, thread_flag): + with open("tests/test_data/bad_config.yml", "r", encoding='utf-8') as f: yaml_string = f.read() with pytest.raises(ValueError, match='Unsupported stages value: SecondStageCube at line 53'): experiment, dataset = build_experiment_environment_from_yaml_config( yaml_string, experiment_id="Test_config", - save_path="tests/experiments" + save_path="tests/experiments", + force_single_thread=not thread_flag ) -def test_pipeline_from_config(experiment_enviroment): - with open("tests/test_data/config.yml", "r") as f: +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_pipeline_from_config(experiment_enviroment, thread_flag): + with open("tests/test_data/config.yml", "r", encoding='utf-8') as f: yaml_string = f.read() experiment, dataset = build_experiment_environment_from_yaml_config( yaml_string, experiment_id="Test_config", - save_path="tests/experiments" + save_path="tests/experiments", + force_single_thread=not thread_flag ) with pytest.warns(UserWarning, match="Max progression length") as record: experiment.run(dataset) @@ -164,16 +177,17 @@ def test_pipeline_from_config(experiment_enviroment): assert "PerplexityScore@all" in description -def test_config_with_blei_score(experiment_enviroment): - with open("tests/test_data/config_blei.yml", "r") as f: +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_config_with_blei_score(experiment_enviroment, thread_flag): + with open("tests/test_data/config_blei.yml", "r", encoding='utf-8') as f: yaml_string = f.read() experiment, dataset = build_experiment_environment_from_yaml_config( yaml_string, experiment_id="Test_config", - save_path="tests/experiments" + save_path="tests/experiments", + force_single_thread=not thread_flag ) - sleep(2) experiment.run(dataset) final_models = experiment.select() @@ -182,14 +196,16 @@ def test_config_with_blei_score(experiment_enviroment): assert final_models[0].scores["BleiLaffertyScore"][-1] > 0 -def test_config_with_scores(experiment_enviroment): - with open("tests/test_data/config_short.yml", "r") as f: +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_config_with_scores(experiment_enviroment, thread_flag): + with open("tests/test_data/config_short.yml", "r", encoding='utf-8') as f: yaml_string = f.read() experiment, dataset = build_experiment_environment_from_yaml_config( yaml_string, experiment_id="Test_config", - save_path="tests/experiments" + save_path="tests/experiments", + force_single_thread=not thread_flag ) experiment.run(dataset) @@ -200,17 +216,17 @@ def test_config_with_scores(experiment_enviroment): assert "BTRS" in final_models[0].scores -def test_config_with_greedy_strategy(experiment_enviroment): - sleep(1) - with open("tests/test_data/config2.yml", "r") as f: +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_config_with_greedy_strategy(experiment_enviroment, thread_flag): + with open("tests/test_data/config2.yml", "r", encoding='utf-8') as f: yaml_string = f.read() experiment, dataset = build_experiment_environment_from_yaml_config( yaml_string, experiment_id="Test_config", - save_path="tests/experiments" + save_path="tests/experiments", + force_single_thread=not thread_flag ) - sleep(1) experiment.run(dataset) final_models = experiment.select() @@ -221,8 +237,6 @@ def test_simple_pipeline(experiment_enviroment): tm, dataset, experiment, dictionary, cube_settings = experiment_enviroment experiment.build(cube_settings) - # an ugly workaround for strange multithreading issue - sleep(2) with pytest.warns(UserWarning, match="Not enough models for"): final_models = experiment.run(dataset, verbose=False, nb_verbose=False) @@ -238,12 +252,11 @@ def test_simple_pipeline(experiment_enviroment): assert len(set(scores)) == 2, 'Incorrect number of final models.' -def test_pipeline_with_new_cube_after(experiment_enviroment): +@pytest.mark.parametrize('thread_flag', MULTIPROCESSING_FLAGS) +def test_pipeline_with_new_cube_after(experiment_enviroment, thread_flag): tm, dataset, experiment, dictionary, cube_settings = experiment_enviroment experiment.build(cube_settings) - # an ugly workaround for strange multithreading issue - sleep(2) with pytest.warns(UserWarning, match="Not enough models for"): models = experiment.run(dataset, verbose=False, nb_verbose=False) models = list(models) @@ -256,6 +269,7 @@ def test_pipeline_with_new_cube_after(experiment_enviroment): }, reg_search="grid", use_relative_coefficients=False, + separate_thread=thread_flag, ) new_models = cube(models[-1], dataset) diff --git a/topicnet/tests/test_top_tokens_viewer.py b/topicnet/tests/test_top_tokens_viewer.py index ceaf9b4..ddcabbe 100644 --- a/topicnet/tests/test_top_tokens_viewer.py +++ b/topicnet/tests/test_top_tokens_viewer.py @@ -31,7 +31,7 @@ def setup_class(cls): warnings.filterwarnings(action="ignore", message=W_DIFF_BATCHES_1) dataset = Dataset('tests/test_data/test_dataset.csv') raw_data = [] - with open('tests/test_data/test_vw.txt') as file: + with open('tests/test_data/test_vw.txt', encoding='utf-8') as file: for line in file: raw_data += [line.split(' ')] dictionary = dataset.get_dictionary() diff --git a/topicnet/topicnet_doc_generation/README.md b/topicnet/topicnet_doc_generation/README.md index 5c7441c..d281982 100644 --- a/topicnet/topicnet_doc_generation/README.md +++ b/topicnet/topicnet_doc_generation/README.md @@ -13,6 +13,11 @@ pdoc --html -o topicnet_documentation/ -c show_source_code=False --force ../topi ``` внутри папки ```topicnet```. +Обычно достаточно команды +``` +pdoc --html -o topicnet_doc_generation/ --force ../topicnet +``` + ### Readme При необходимости все Markdown-файлы могут быть добавлены в @@ -24,4 +29,4 @@ pdoc --html -o topicnet_documentation/ -c show_source_code=False --force ../topi #### ```pdoc``` не распознает команду. -Проверьте, что установлена версия ```pdoc 0.6.3```. \ No newline at end of file +Проверьте, что установлена версия ```pdoc 0.6.3```. diff --git a/topicnet/topicnet_doc_generation/insert_md.sh b/topicnet/topicnet_doc_generation/insert_md.sh index e4eb819..47eaa23 100755 --- a/topicnet/topicnet_doc_generation/insert_md.sh +++ b/topicnet/topicnet_doc_generation/insert_md.sh @@ -1,4 +1,4 @@ #!/bin/bash # find all md files -find ../../topicnet -not -path '*/\.[a-z]*/*' -not -path '*documentation*' -not -path '*_doc_generation*' -name README.md -print0 | xargs -0 -I % ./transform_replace.sh % +find ../../topicnet -not -path '*/\.[a-z]*/*' -not -path '*doc_generation*' -name *.md -print0 | xargs -0 -I % ./transform_replace.sh % diff --git a/topicnet/topicnet_doc_generation/transform_replace.sh b/topicnet/topicnet_doc_generation/transform_replace.sh index 8e8796f..c6b494d 100755 --- a/topicnet/topicnet_doc_generation/transform_replace.sh +++ b/topicnet/topicnet_doc_generation/transform_replace.sh @@ -5,6 +5,13 @@ DIR=$(dirname "$1") DIR=${DIR#..\/..\/} pandoc -f markdown -t html $1 -o $DIR/htmled.html +# echo "created html-file from markdown $1 in $DIR" +# ls $DIR sed -i '\|Index.*/

                                                    Документация к модулю topicnet<\/code><\/h1>/" "$DIR/index.html" + +# echo "removed html-file and created index.html" +# ls $DIR +# echo "" +sed -i "s/

                                                    Index.*/

                                                    TopicNet<\/code> library documentation <\/h1>/" "$DIR/index.html" diff --git a/topicnet/viewers/document_cluster.py b/topicnet/viewers/document_cluster.py index 71b067f..bca85d1 100644 --- a/topicnet/viewers/document_cluster.py +++ b/topicnet/viewers/document_cluster.py @@ -82,7 +82,7 @@ def view( text=data_dict['text'],)], ) if save_path is not None: - with open(save_path, 'w') as f: + with open(save_path, 'w', encoding='utf-8') as f: f.write(html_div) return reduced_data diff --git a/topicnet/viewers/top_tokens_viewer.py b/topicnet/viewers/top_tokens_viewer.py index e82675d..40b0a35 100644 --- a/topicnet/viewers/top_tokens_viewer.py +++ b/topicnet/viewers/top_tokens_viewer.py @@ -1,9 +1,10 @@ -import pandas as pd import numpy as np +import pandas as pd +from sklearn.feature_extraction.text import TfidfVectorizer +from typing import Dict, Iterator, List, Tuple, Union import warnings from .base_viewer import BaseViewer -from sklearn.feature_extraction.text import TfidfVectorizer def get_top_values(values, top_number, return_indexes=True): @@ -157,13 +158,13 @@ def compute_blei_scores(phi): Parameters ---------- - phi : pd.Dataframe + phi : pd.DataFrame phi matrix of the model Returns ------- - score : pd.Dataframe - wheighted phi matrix + score : pd.DataFrame + weighted phi matrix """ # noqa: W291 @@ -182,8 +183,9 @@ def compute_blei_scores(phi): return score -def compute_clusters_top_tokens_by_clusters_tfidf(objects_cluster, objects_content, - max_top_number=10, n_topics=None): +def compute_clusters_top_tokens_by_clusters_tfidf( + objects_cluster, objects_content, + max_top_number=10, n_topics=None): """ Function for document-like clusters. For each cluster compute top tokens of cluster. Top tokens are defined by tf-idf scheme. @@ -251,16 +253,15 @@ def compute_clusters_top_tokens_by_clusters_tfidf(objects_cluster, objects_conte return cluster_top_tokens -# get top tokens from topic (sorted by scores) class TopTokensViewer(BaseViewer): - """ """ + """Gets top tokens from topic (sorted by scores)""" def __init__(self, model, class_ids=None, method='blei', - num_top_tokens=5, + num_top_tokens=10, alpha=1, - dataset=None,): + dataset=None): """ The class provide information about top tokens of the model topics providing with different methods to score that. @@ -290,12 +291,15 @@ class ids for documents in topic needed only for tfidf method known = ['top', 'phi', 'blei', 'tfidf', 'likelihood', 'ptw'] super().__init__(model=model) + self.num_top_tokens = num_top_tokens self.class_ids = class_ids + if method in known: self.method = method else: raise ValueError(f'method {method} is not known') + self.alpha = alpha self._dataset = dataset @@ -305,6 +309,7 @@ def _get_target_values(self, phi): """ if self.method == 'blei': return compute_blei_scores(phi) + elif self.method in ['top', 'phi']: return phi.transpose() @@ -314,40 +319,55 @@ def _get_target_values(self, phi): if self.method == 'likelihood': return compute_likelihood_vectorised(phi, p_t, joint_pwt) + elif self.method == 'ptw': ptw_vector = compute_ptw(joint_pwt) ptw_component = self.alpha * ptw_vector phi_component = (1 - self.alpha) * phi.transpose() + return ptw_component + phi_component - def view(self, class_ids=None, raw_data=None): + def view( + self, + class_ids: List[str] = None, + raw_data: List[List[str]] = None, + three_levels: bool = True + ) -> Union[Dict[str, Dict[str, Dict[str, float]]], + Dict[str, Dict[Tuple[str, str], float]]]: """ - Returns list of tuples (token,score) for each topic in the model. + Returns list of tuples (token, score) for each topic in the model. Parameters ---------- + class_ids + Modalities from which to retrieve top tokens raw_data : list of list of str - necessary for 'tfidf' option - - Returns + Necessary for 'tfidf' option + three_levels + If true, three level dict will be returned, otherwise — two level one + returns ------- - all_topics_top_tokens : nested 3 level dict - dict of topics each key contains dict of modalities with each modality key - having dict of top tokens format: (token, value) + topic_top_tokens : nested 3 or 2-level dict + Topic -> Modality -> Token -> Probability or + Topic -> (Modality, Token) -> Probability """ if class_ids is None: class_ids = self.class_ids + phi = self.model.get_phi(class_ids=class_ids) if self.method == 'tfidf': objects_cluster = ( self._model .get_theta(dataset=self._dataset) - .values.argmax(axis=0) + .values + .argmax(axis=0) ) - top_tokens_sorted = compute_clusters_top_tokens_by_clusters_tfidf(objects_cluster, - raw_data,) + top_tokens_sorted = compute_clusters_top_tokens_by_clusters_tfidf( + objects_cluster, raw_data + ) + return top_tokens_sorted target_values = self._get_target_values(phi) @@ -355,65 +375,127 @@ def view(self, class_ids=None, raw_data=None): phi = target_values.T phi.index = pd.MultiIndex.from_tuples(phi.index) topic_names = phi.columns.values + if self.class_ids is None: modalities = phi.index.levels[0].values else: modalities = self.class_ids - all_topics_top_tokens = {} + topic_top_tokens = {} + for topic_name in topic_names: - phi_column = phi[topic_name] - topic_top_tokens = {} + topic_column = phi[topic_name] + modality_top_tokens = {} for modality in modalities: top_tokens_values, top_tokens_indexes = get_top_values( - phi_column.loc[modality].values, + topic_column.loc[modality].values, top_number=self.num_top_tokens, ) - top_tokens = phi_column.loc[modality].index[top_tokens_indexes] + top_tokens = topic_column.loc[modality].index[top_tokens_indexes] - topic_top_tokens[modality] = dict(zip(top_tokens, top_tokens_values)) + if three_levels: + modality_top_tokens[modality] = dict(zip(top_tokens, top_tokens_values)) + else: + modality_top_tokens.update( + dict(zip([(modality, token) for token in top_tokens], top_tokens_values)) + ) - all_topics_top_tokens[topic_name] = topic_top_tokens + topic_top_tokens[topic_name] = modality_top_tokens - return all_topics_top_tokens + return topic_top_tokens - def to_html(self, all_topics_top_tokens, topic_names=None, thresh=1e-5): + def to_html( + self, + topic_top_tokens=None, + topic_names: List[str] = None, + digits: int = 5, + thresh: float = None) -> str: """ - method that generates html version of - dataframes to be displayed by jupyter notebooks - display by: - from IPython.display import display_html - display_html(html_line, raw=True) - :param all_topics_top_tokens: dict of dicts - dict where first level keys are topic names - second level keys are modalities - third level keys are tokens with their scores - as float values - :param topic_names: list of strings -- optional - ordered list of initial dictionary keys - :return topic_dataframes: list of strings - list of dataframes in html encoding + Generates html version of dataframes to be displayed by Jupyter notebooks + + Parameters + ---------- + topic_top_tokens : dict of dicts [Deprecated] + Dict where first level keys are topic names + Second level keys are modalities + Third level keys are tokens with their scores as float values + topic_names : list of strings + Initial dictionary keys + digits : int + Number of digits to round each probability to + thresh : float [Deprecated] + Threshold used for calculating `digits` and throwing out too low probabilities + + Examples + -------- + >>> from IPython.display import HTML, display_html + >>> + >>> # model training here + >>> # ... + >>> viewer = TopTokensViewer(model) + >>> display_html(viewer.to_html(), raw=True) + >>> # or + >>> HTML(viewer.to_html()) """ - topic_dataframes = [] - if topic_names is None: - topic_names = all_topics_top_tokens.keys() - digits = int(- np.log10(thresh)) - for topic in topic_names: - data = all_topics_top_tokens[topic] - dfs = [ - pd.DataFrame.from_dict( - mod, - orient='index', - columns=[topic + ' ' + key] - ).round(digits) - for key, mod in data.items() - ] - df_style = [] - for df in dfs: - df = df.loc[(df.values > thresh).flatten()] - if len(df) > 0: - df.index = df.index.str.replace('<', '<').str.replace('>', '>') - df_style += [df.style.set_table_attributes("style='display:inline'")._repr_html_()] - topic_dataframes += [''.join(df_style)] - return topic_dataframes + if topic_top_tokens is not None: # TODO: remove topic_top_tokens some day + warnings.warn( + 'Don\'t specify `topic_top_tokens` in `to_html()`', + DeprecationWarning + ) + + if topic_names is not None: + topic_names = [t for t in topic_names if t in topic_top_tokens.keys()] + + if thresh is not None: # TODO: remove thresh some day + warnings.warn( + 'Don\'t specify `thresh` in `to_html()` anymore, use `digits`', + DeprecationWarning + ) + + digits = int(-np.log10(thresh)) + + df = self.to_df(topic_names, digits) + + if len(df) > 0: + df.index = df.index.str.replace('<', '<').str.replace('>', '>') + + # TODO: check why this better than plain df.to_html() + return df.style\ + .set_table_attributes("style='display:inline'")\ + ._repr_html_() + + def to_df(self, topic_names: Iterator[str] = None, digits: int = 5) -> pd.DataFrame: + topic_top_tokens = self.view(three_levels=False) + + if topic_names is not None: + topic_top_tokens = { + topic: tokens for topic, tokens in topic_top_tokens.items() + if topic in topic_names + } + + if not isinstance(digits, int): + warnings.warn( + f'Need "int" digits. ' + f'Casting given value "{digits}" of type "{type(digits)}" to int' + ) + + digits = int(digits) + + return self._to_df(topic_top_tokens, digits) + + @staticmethod + def _to_df( + topic_top_tokens: Dict[str, Dict[Tuple[str, str], float]], + digits: int) -> pd.DataFrame: + + df = pd.DataFrame.from_dict(topic_top_tokens).round(digits) + + df.index = pd.MultiIndex.from_tuples( + df.index, + names=['modality', 'token'] # TODO: names should be the same as in TopicModel's Phi? + ) + + df.fillna(0.0, inplace=True) + + return df diff --git a/topicnet/viewers/topic_flow_viewer.py b/topicnet/viewers/topic_flow_viewer.py new file mode 100644 index 0000000..709bcb8 --- /dev/null +++ b/topicnet/viewers/topic_flow_viewer.py @@ -0,0 +1,141 @@ +import numpy as np +import plotly.graph_objects as go +import artm +from .base_viewer import BaseViewer +from .top_tokens_viewer import TopTokensViewer + + +class TopicFlowViewer(BaseViewer): + """ + Viewer to show trending topics over time. + """ + def __init__(self, model, time_labels, + dataset, + modality='@lemmatized', + sort_key_function=None): + """ + Parameters + ---------- + model : TopicModel + an instance of topic model class + time_labels : list of numbers + time label that supports comparrison for each document + dataset : Dataset + dataset used for model training (is used to compute nwd here) + modality : str + model's modality for topics description + sort_key_function : Function + function that can be used with python sorted + """ + super().__init__(model) + self.dataset = dataset + + theta = model.get_theta() + self.unique_time_labels = sorted(np.unique(time_labels)) + + attached_model_nwt = model._model.master.attach_model('nwt') + nt = np.sum(attached_model_nwt[1], axis=0) + nd = self.compute_nd(theta.shape[1]) + + scaled_theta = theta.values * nd.reshape(1, -1) + self.topic_values = np.zeros((theta.shape[0], len(self.unique_time_labels))) + for time_ind, t in enumerate(self.unique_time_labels): + indices = np.argwhere(time_labels == t) + self.topic_values[:, time_ind] = ( + np.sum(scaled_theta[:, indices] / np.array(nt).reshape(-1, 1), axis=1) + ) + self.topic_tokens_str = self.compute_top_tokens(model, modality) + + def compute_nd(self, number_of_docs): + """ + Compute number of tokens in each document from dataset. + + Parameters + ---------- + number_of_docs : int + number of documents in theta + """ + batches_list = self.dataset.get_batch_vectorizer().batches_ids + nd = np.zeros(number_of_docs) + + current_doc = 0 + for batch_path in batches_list: + batch = artm.messages.Batch() + + with open(batch_path, "rb") as f: + batch.ParseFromString(f.read()) + + for item in batch.item: + doc_number_of_words = 0 + for (token_id, token_weight) in zip(item.token_id, item.token_weight): + doc_number_of_words += token_weight + nd[current_doc] = doc_number_of_words + current_doc += 1 + return nd + + def compute_top_tokens(self, model, modality): + """ + Function for top tokens extraction. + + Parameters: + ---------- + model : TopicModel + modality : str + modality for topic representation + """ + top_tokens_viewer = TopTokensViewer(model) + top_tokens_dict = top_tokens_viewer.view() + topic_tokens_str = {} + for topic, value in top_tokens_dict.items(): + topic_tokens_str[topic] = '
                                                    '.join(value[modality].keys()) + return topic_tokens_str + + def plot(self, topics, significance_threshold=1e-2): + """ + Function for plotly graph building. + + Parameters + ---------- + topics : list of int + topics that need to be visualized + significance_threshold : float + plot ignores values lower than threshold + """ + fig = go.Figure() + + for t in topics: + fig.add_trace(go.Scatter(x=np.arange(len(self.unique_time_labels)), + y=[ + value if value > significance_threshold + else None + for value in self.topic_values[t, :] + ], + text=self.topic_tokens_str[f'topic_{t}'], + hoverinfo='text', + mode=None, + hoveron='points+fills', + fill='tozeroy', + name=f'topic_{t}')) + + fig.update_layout( + title='Trending Topics Over Time', + title_font_size=30, + autosize=True, + paper_bgcolor='LightSteelBlue' + ) + + fig.update_xaxes(title_text='Time', + tickvals=np.arange(len(self.unique_time_labels))[::4], + ticktext=self.unique_time_labels[::4]) + fig.update_yaxes(title_text='Value') + fig.show() + + def view(self, topic_names=None): + """ + Parameters + ---------- + topic_names : list of str + topics that user wants to see on plot + """ + topics = list(map(lambda x: int(x.split('_')[1]), topic_names)) + self.plot(topics)