arekit 0.24.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- arekit/__init__.py +0 -0
- arekit/common/__init__.py +0 -0
- arekit/common/bound.py +48 -0
- arekit/common/context/__init__.py +0 -0
- arekit/common/context/terms_mapper.py +51 -0
- arekit/common/context/token.py +16 -0
- arekit/common/data/__init__.py +0 -0
- arekit/common/data/const.py +21 -0
- arekit/common/data/doc_provider.py +6 -0
- arekit/common/data/input/__init__.py +0 -0
- arekit/common/data/input/providers/__init__.py +0 -0
- arekit/common/data/input/providers/columns/__init__.py +0 -0
- arekit/common/data/input/providers/columns/base.py +9 -0
- arekit/common/data/input/providers/columns/sample.py +59 -0
- arekit/common/data/input/providers/const.py +3 -0
- arekit/common/data/input/providers/contents.py +9 -0
- arekit/common/data/input/providers/instances/__init__.py +0 -0
- arekit/common/data/input/providers/instances/base.py +14 -0
- arekit/common/data/input/providers/instances/multiple.py +27 -0
- arekit/common/data/input/providers/instances/single.py +8 -0
- arekit/common/data/input/providers/label/__init__.py +0 -0
- arekit/common/data/input/providers/label/base.py +24 -0
- arekit/common/data/input/providers/label/binary.py +11 -0
- arekit/common/data/input/providers/label/multiple.py +15 -0
- arekit/common/data/input/providers/rows/__init__.py +0 -0
- arekit/common/data/input/providers/rows/base.py +64 -0
- arekit/common/data/input/providers/rows/samples.py +227 -0
- arekit/common/data/input/providers/sample/__init__.py +0 -0
- arekit/common/data/input/providers/sample/cropped.py +43 -0
- arekit/common/data/input/providers/text/__init__.py +0 -0
- arekit/common/data/input/providers/text/single.py +49 -0
- arekit/common/data/input/repositories/__init__.py +0 -0
- arekit/common/data/input/repositories/base.py +68 -0
- arekit/common/data/input/repositories/sample.py +22 -0
- arekit/common/data/input/sample.py +66 -0
- arekit/common/data/input/terms_mapper.py +88 -0
- arekit/common/data/rows_fmt.py +82 -0
- arekit/common/data/rows_parser.py +43 -0
- arekit/common/data/storages/__init__.py +0 -0
- arekit/common/data/storages/base.py +109 -0
- arekit/common/data/views/__init__.py +0 -0
- arekit/common/data/views/samples.py +26 -0
- arekit/common/docs/__init__.py +0 -0
- arekit/common/docs/base.py +30 -0
- arekit/common/docs/entities_grouping.py +16 -0
- arekit/common/docs/entity.py +18 -0
- arekit/common/docs/objects_parser.py +37 -0
- arekit/common/docs/parsed/__init__.py +0 -0
- arekit/common/docs/parsed/base.py +101 -0
- arekit/common/docs/parsed/providers/__init__.py +0 -0
- arekit/common/docs/parsed/providers/base.py +68 -0
- arekit/common/docs/parsed/providers/base_pairs.py +51 -0
- arekit/common/docs/parsed/providers/entity_service.py +175 -0
- arekit/common/docs/parsed/providers/opinion_pairs.py +20 -0
- arekit/common/docs/parsed/providers/text_opinion_pairs.py +78 -0
- arekit/common/docs/parsed/service.py +31 -0
- arekit/common/docs/parsed/term_position.py +42 -0
- arekit/common/docs/parser.py +34 -0
- arekit/common/docs/sentence.py +14 -0
- arekit/common/entities/__init__.py +0 -0
- arekit/common/entities/base.py +51 -0
- arekit/common/entities/collection.py +72 -0
- arekit/common/entities/str_fmt.py +8 -0
- arekit/common/entities/types.py +9 -0
- arekit/common/experiment/__init__.py +0 -0
- arekit/common/experiment/api/__init__.py +0 -0
- arekit/common/experiment/api/base_samples_io.py +20 -0
- arekit/common/experiment/data_type.py +17 -0
- arekit/common/frames/__init__.py +0 -0
- arekit/common/frames/connotations/__init__.py +0 -0
- arekit/common/frames/connotations/descriptor.py +17 -0
- arekit/common/frames/connotations/provider.py +4 -0
- arekit/common/frames/text_variant.py +43 -0
- arekit/common/frames/variants/__init__.py +0 -0
- arekit/common/frames/variants/base.py +21 -0
- arekit/common/frames/variants/collection.py +60 -0
- arekit/common/labels/__init__.py +0 -0
- arekit/common/labels/base.py +19 -0
- arekit/common/labels/provider/__init__.py +0 -0
- arekit/common/labels/provider/base.py +7 -0
- arekit/common/labels/provider/constant.py +14 -0
- arekit/common/labels/scaler/__init__.py +0 -0
- arekit/common/labels/scaler/base.py +85 -0
- arekit/common/labels/scaler/sentiment.py +7 -0
- arekit/common/labels/scaler/single.py +10 -0
- arekit/common/labels/str_fmt.py +55 -0
- arekit/common/linkage/__init__.py +0 -0
- arekit/common/linkage/base.py +44 -0
- arekit/common/linkage/meta.py +23 -0
- arekit/common/linkage/opinions.py +9 -0
- arekit/common/linkage/text_opinions.py +22 -0
- arekit/common/log_utils.py +29 -0
- arekit/common/model/__init__.py +0 -0
- arekit/common/model/labeling/__init__.py +0 -0
- arekit/common/model/labeling/base.py +24 -0
- arekit/common/model/labeling/modes.py +8 -0
- arekit/common/model/labeling/single.py +24 -0
- arekit/common/opinions/__init__.py +0 -0
- arekit/common/opinions/annot/__init__.py +0 -0
- arekit/common/opinions/annot/algo/__init__.py +0 -0
- arekit/common/opinions/annot/algo/base.py +4 -0
- arekit/common/opinions/annot/algo/pair_based.py +99 -0
- arekit/common/opinions/annot/algo/predefined.py +16 -0
- arekit/common/opinions/annot/algo_based.py +55 -0
- arekit/common/opinions/annot/base.py +15 -0
- arekit/common/opinions/base.py +74 -0
- arekit/common/opinions/collection.py +150 -0
- arekit/common/opinions/enums.py +6 -0
- arekit/common/opinions/provider.py +4 -0
- arekit/common/opinions/writer.py +4 -0
- arekit/common/pipeline/__init__.py +0 -0
- arekit/common/pipeline/base.py +25 -0
- arekit/common/pipeline/context.py +36 -0
- arekit/common/pipeline/conts.py +2 -0
- arekit/common/pipeline/items/__init__.py +0 -0
- arekit/common/pipeline/items/base.py +12 -0
- arekit/common/pipeline/items/flatten.py +14 -0
- arekit/common/pipeline/items/handle.py +17 -0
- arekit/common/pipeline/items/iter.py +11 -0
- arekit/common/pipeline/items/map.py +11 -0
- arekit/common/pipeline/items/map_nested.py +13 -0
- arekit/common/synonyms/__init__.py +0 -0
- arekit/common/synonyms/base.py +151 -0
- arekit/common/synonyms/grouping.py +21 -0
- arekit/common/text/__init__.py +0 -0
- arekit/common/text/enums.py +12 -0
- arekit/common/text/parsed.py +42 -0
- arekit/common/text/parser.py +12 -0
- arekit/common/text/partitioning/__init__.py +0 -0
- arekit/common/text/partitioning/base.py +4 -0
- arekit/common/text/partitioning/str.py +36 -0
- arekit/common/text/partitioning/terms.py +35 -0
- arekit/common/text/stemmer.py +16 -0
- arekit/common/text_opinions/__init__.py +0 -0
- arekit/common/text_opinions/base.py +105 -0
- arekit/common/utils.py +129 -0
- arekit/contrib/__init__.py +0 -0
- arekit/contrib/bert/__init__.py +0 -0
- arekit/contrib/bert/input/__init__.py +0 -0
- arekit/contrib/bert/input/providers/__init__.py +0 -0
- arekit/contrib/bert/input/providers/cropped_sample.py +17 -0
- arekit/contrib/bert/input/providers/text_pair.py +62 -0
- arekit/contrib/bert/terms/__init__.py +0 -0
- arekit/contrib/bert/terms/mapper.py +20 -0
- arekit/contrib/networks/__init__.py +0 -0
- arekit/contrib/networks/embedding.py +149 -0
- arekit/contrib/networks/embedding_io.py +18 -0
- arekit/contrib/networks/input/__init__.py +0 -0
- arekit/contrib/networks/input/const.py +6 -0
- arekit/contrib/networks/input/ctx_serialization.py +28 -0
- arekit/contrib/networks/input/embedding/__init__.py +0 -0
- arekit/contrib/networks/input/embedding/matrix.py +29 -0
- arekit/contrib/networks/input/embedding/offsets.py +55 -0
- arekit/contrib/networks/input/formatters/__init__.py +0 -0
- arekit/contrib/networks/input/formatters/pos_mapper.py +22 -0
- arekit/contrib/networks/input/providers/__init__.py +0 -0
- arekit/contrib/networks/input/providers/sample.py +129 -0
- arekit/contrib/networks/input/providers/term_connotation.py +23 -0
- arekit/contrib/networks/input/providers/text.py +24 -0
- arekit/contrib/networks/input/rows_parser.py +47 -0
- arekit/contrib/networks/input/term_types.py +13 -0
- arekit/contrib/networks/input/terms_mapping.py +60 -0
- arekit/contrib/networks/vectorizer.py +6 -0
- arekit/contrib/prompt/__init__.py +0 -0
- arekit/contrib/prompt/sample.py +61 -0
- arekit/contrib/source/__init__.py +0 -0
- arekit/contrib/source/brat/__init__.py +0 -0
- arekit/contrib/source/brat/annot.py +84 -0
- arekit/contrib/source/brat/doc.py +28 -0
- arekit/contrib/source/brat/entities/__init__.py +0 -0
- arekit/contrib/source/brat/entities/compound.py +13 -0
- arekit/contrib/source/brat/entities/entity.py +42 -0
- arekit/contrib/source/brat/entities/parser.py +53 -0
- arekit/contrib/source/brat/opinions/__init__.py +0 -0
- arekit/contrib/source/brat/opinions/converter.py +19 -0
- arekit/contrib/source/brat/relation.py +32 -0
- arekit/contrib/source/brat/sentence.py +69 -0
- arekit/contrib/source/brat/sentences_reader.py +128 -0
- arekit/contrib/source/download.py +41 -0
- arekit/contrib/source/nerel/__init__.py +0 -0
- arekit/contrib/source/nerel/entities.py +55 -0
- arekit/contrib/source/nerel/folding/__init__.py +0 -0
- arekit/contrib/source/nerel/folding/fixed.py +74 -0
- arekit/contrib/source/nerel/io_utils.py +62 -0
- arekit/contrib/source/nerel/labels.py +241 -0
- arekit/contrib/source/nerel/reader.py +46 -0
- arekit/contrib/source/nerel/utils.py +24 -0
- arekit/contrib/source/nerel/versions.py +12 -0
- arekit/contrib/source/nerelbio/__init__.py +0 -0
- arekit/contrib/source/nerelbio/io_utils.py +62 -0
- arekit/contrib/source/nerelbio/labels.py +265 -0
- arekit/contrib/source/nerelbio/reader.py +8 -0
- arekit/contrib/source/nerelbio/versions.py +8 -0
- arekit/contrib/source/ruattitudes/__init__.py +0 -0
- arekit/contrib/source/ruattitudes/collection.py +36 -0
- arekit/contrib/source/ruattitudes/doc.py +51 -0
- arekit/contrib/source/ruattitudes/doc_brat.py +44 -0
- arekit/contrib/source/ruattitudes/entity/__init__.py +0 -0
- arekit/contrib/source/ruattitudes/entity/parser.py +7 -0
- arekit/contrib/source/ruattitudes/io_utils.py +56 -0
- arekit/contrib/source/ruattitudes/labels_fmt.py +12 -0
- arekit/contrib/source/ruattitudes/opinions/__init__.py +0 -0
- arekit/contrib/source/ruattitudes/opinions/base.py +28 -0
- arekit/contrib/source/ruattitudes/opinions/converter.py +37 -0
- arekit/contrib/source/ruattitudes/reader.py +268 -0
- arekit/contrib/source/ruattitudes/sentence.py +73 -0
- arekit/contrib/source/ruattitudes/synonyms.py +17 -0
- arekit/contrib/source/ruattitudes/text_object.py +59 -0
- arekit/contrib/source/rusentiframes/__init__.py +0 -0
- arekit/contrib/source/rusentiframes/collection.py +157 -0
- arekit/contrib/source/rusentiframes/effect.py +24 -0
- arekit/contrib/source/rusentiframes/io_utils.py +19 -0
- arekit/contrib/source/rusentiframes/labels_fmt.py +22 -0
- arekit/contrib/source/rusentiframes/polarity.py +35 -0
- arekit/contrib/source/rusentiframes/role.py +15 -0
- arekit/contrib/source/rusentiframes/state.py +24 -0
- arekit/contrib/source/rusentiframes/types.py +42 -0
- arekit/contrib/source/rusentiframes/value.py +2 -0
- arekit/contrib/source/rusentrel/__init__.py +0 -0
- arekit/contrib/source/rusentrel/const.py +3 -0
- arekit/contrib/source/rusentrel/docs_reader.py +51 -0
- arekit/contrib/source/rusentrel/entities.py +26 -0
- arekit/contrib/source/rusentrel/io_utils.py +125 -0
- arekit/contrib/source/rusentrel/labels_fmt.py +12 -0
- arekit/contrib/source/rusentrel/opinions/__init__.py +0 -0
- arekit/contrib/source/rusentrel/opinions/collection.py +30 -0
- arekit/contrib/source/rusentrel/opinions/converter.py +40 -0
- arekit/contrib/source/rusentrel/opinions/provider.py +54 -0
- arekit/contrib/source/rusentrel/opinions/writer.py +42 -0
- arekit/contrib/source/rusentrel/synonyms.py +17 -0
- arekit/contrib/source/sentinerel/__init__.py +0 -0
- arekit/contrib/source/sentinerel/entities.py +52 -0
- arekit/contrib/source/sentinerel/folding/__init__.py +0 -0
- arekit/contrib/source/sentinerel/folding/factory.py +31 -0
- arekit/contrib/source/sentinerel/folding/fixed.py +70 -0
- arekit/contrib/source/sentinerel/io_utils.py +87 -0
- arekit/contrib/source/sentinerel/labels.py +53 -0
- arekit/contrib/source/sentinerel/labels_scaler.py +30 -0
- arekit/contrib/source/sentinerel/reader.py +42 -0
- arekit/contrib/source/synonyms/__init__.py +0 -0
- arekit/contrib/source/synonyms/utils.py +19 -0
- arekit/contrib/source/zip_utils.py +47 -0
- arekit/contrib/utils/__init__.py +0 -0
- arekit/contrib/utils/bert/__init__.py +0 -0
- arekit/contrib/utils/bert/samplers.py +17 -0
- arekit/contrib/utils/connotations/__init__.py +0 -0
- arekit/contrib/utils/connotations/rusentiframes_sentiment.py +23 -0
- arekit/contrib/utils/data/__init__.py +0 -0
- arekit/contrib/utils/data/contents/__init__.py +0 -0
- arekit/contrib/utils/data/contents/opinions.py +37 -0
- arekit/contrib/utils/data/doc_provider/__init__.py +0 -0
- arekit/contrib/utils/data/doc_provider/dict_based.py +13 -0
- arekit/contrib/utils/data/doc_provider/dir_based.py +53 -0
- arekit/contrib/utils/data/readers/__init__.py +0 -0
- arekit/contrib/utils/data/readers/base.py +7 -0
- arekit/contrib/utils/data/readers/csv_pd.py +38 -0
- arekit/contrib/utils/data/readers/jsonl.py +15 -0
- arekit/contrib/utils/data/service/__init__.py +0 -0
- arekit/contrib/utils/data/service/balance.py +50 -0
- arekit/contrib/utils/data/storages/__init__.py +0 -0
- arekit/contrib/utils/data/storages/jsonl_based.py +18 -0
- arekit/contrib/utils/data/storages/pandas_based.py +123 -0
- arekit/contrib/utils/data/storages/row_cache.py +48 -0
- arekit/contrib/utils/data/writers/__init__.py +0 -0
- arekit/contrib/utils/data/writers/base.py +27 -0
- arekit/contrib/utils/data/writers/csv_native.py +63 -0
- arekit/contrib/utils/data/writers/csv_pd.py +40 -0
- arekit/contrib/utils/data/writers/json_opennre.py +132 -0
- arekit/contrib/utils/data/writers/sqlite_native.py +110 -0
- arekit/contrib/utils/download.py +77 -0
- arekit/contrib/utils/embeddings/__init__.py +0 -0
- arekit/contrib/utils/embeddings/rusvectores.py +58 -0
- arekit/contrib/utils/embeddings/tokens.py +30 -0
- arekit/contrib/utils/entities/__init__.py +0 -0
- arekit/contrib/utils/entities/filter.py +7 -0
- arekit/contrib/utils/entities/formatters/__init__.py +0 -0
- arekit/contrib/utils/entities/formatters/str_display.py +11 -0
- arekit/contrib/utils/entities/formatters/str_simple_sharp_prefixed_fmt.py +15 -0
- arekit/contrib/utils/io_utils/__init__.py +0 -0
- arekit/contrib/utils/io_utils/embedding.py +72 -0
- arekit/contrib/utils/io_utils/opinions.py +37 -0
- arekit/contrib/utils/io_utils/samples.py +79 -0
- arekit/contrib/utils/io_utils/utils.py +39 -0
- arekit/contrib/utils/lexicons/__init__.py +0 -0
- arekit/contrib/utils/lexicons/lexicon.py +41 -0
- arekit/contrib/utils/lexicons/relation.py +42 -0
- arekit/contrib/utils/lexicons/rusentilex.py +37 -0
- arekit/contrib/utils/nn/__init__.py +0 -0
- arekit/contrib/utils/nn/rows.py +83 -0
- arekit/contrib/utils/np_utils/__init__.py +0 -0
- arekit/contrib/utils/np_utils/embedding.py +22 -0
- arekit/contrib/utils/np_utils/npz_utils.py +13 -0
- arekit/contrib/utils/np_utils/vocab.py +20 -0
- arekit/contrib/utils/pipelines/__init__.py +0 -0
- arekit/contrib/utils/pipelines/items/__init__.py +0 -0
- arekit/contrib/utils/pipelines/items/sampling/__init__.py +0 -0
- arekit/contrib/utils/pipelines/items/sampling/base.py +99 -0
- arekit/contrib/utils/pipelines/items/sampling/networks.py +54 -0
- arekit/contrib/utils/pipelines/items/text/__init__.py +0 -0
- arekit/contrib/utils/pipelines/items/text/entities_default.py +23 -0
- arekit/contrib/utils/pipelines/items/text/frames.py +86 -0
- arekit/contrib/utils/pipelines/items/text/frames_lemmatized.py +36 -0
- arekit/contrib/utils/pipelines/items/text/frames_negation.py +32 -0
- arekit/contrib/utils/pipelines/items/text/terms_splitter.py +10 -0
- arekit/contrib/utils/pipelines/items/text/tokenizer.py +107 -0
- arekit/contrib/utils/pipelines/items/text/translator.py +135 -0
- arekit/contrib/utils/pipelines/opinion_collections.py +85 -0
- arekit/contrib/utils/pipelines/sources/__init__.py +0 -0
- arekit/contrib/utils/pipelines/sources/nerel/__init__.py +0 -0
- arekit/contrib/utils/pipelines/sources/nerel/doc_provider.py +27 -0
- arekit/contrib/utils/pipelines/sources/nerel/extract_text_relations.py +65 -0
- arekit/contrib/utils/pipelines/sources/nerel/labels_fmt.py +60 -0
- arekit/contrib/utils/pipelines/sources/nerel_bio/__init__.py +0 -0
- arekit/contrib/utils/pipelines/sources/nerel_bio/doc_provider.py +29 -0
- arekit/contrib/utils/pipelines/sources/nerel_bio/extrat_text_relations.py +64 -0
- arekit/contrib/utils/pipelines/sources/nerel_bio/labels_fmt.py +79 -0
- arekit/contrib/utils/pipelines/sources/ruattitudes/__init__.py +0 -0
- arekit/contrib/utils/pipelines/sources/ruattitudes/doc_provider.py +56 -0
- arekit/contrib/utils/pipelines/sources/ruattitudes/entity_filter.py +20 -0
- arekit/contrib/utils/pipelines/sources/ruattitudes/extract_text_opinions.py +65 -0
- arekit/contrib/utils/pipelines/sources/rusentrel/__init__.py +0 -0
- arekit/contrib/utils/pipelines/sources/rusentrel/doc_provider.py +21 -0
- arekit/contrib/utils/pipelines/sources/rusentrel/extract_text_opinions.py +107 -0
- arekit/contrib/utils/pipelines/sources/sentinerel/__init__.py +0 -0
- arekit/contrib/utils/pipelines/sources/sentinerel/doc_provider.py +29 -0
- arekit/contrib/utils/pipelines/sources/sentinerel/entity_filter.py +62 -0
- arekit/contrib/utils/pipelines/sources/sentinerel/extract_text_opinions.py +180 -0
- arekit/contrib/utils/pipelines/sources/sentinerel/labels_fmt.py +50 -0
- arekit/contrib/utils/pipelines/text_opinion/__init__.py +0 -0
- arekit/contrib/utils/pipelines/text_opinion/annot/__init__.py +0 -0
- arekit/contrib/utils/pipelines/text_opinion/annot/algo_based.py +34 -0
- arekit/contrib/utils/pipelines/text_opinion/annot/predefined.py +88 -0
- arekit/contrib/utils/pipelines/text_opinion/extraction.py +93 -0
- arekit/contrib/utils/pipelines/text_opinion/filters/__init__.py +0 -0
- arekit/contrib/utils/pipelines/text_opinion/filters/base.py +4 -0
- arekit/contrib/utils/pipelines/text_opinion/filters/distance_based.py +16 -0
- arekit/contrib/utils/pipelines/text_opinion/filters/entity_based.py +29 -0
- arekit/contrib/utils/pipelines/text_opinion/filters/limitation.py +26 -0
- arekit/contrib/utils/processing/__init__.py +0 -0
- arekit/contrib/utils/processing/languages/__init__.py +0 -0
- arekit/contrib/utils/processing/languages/mods.py +12 -0
- arekit/contrib/utils/processing/languages/pos.py +23 -0
- arekit/contrib/utils/processing/languages/ru/__init__.py +0 -0
- arekit/contrib/utils/processing/languages/ru/cases.py +78 -0
- arekit/contrib/utils/processing/languages/ru/constants.py +6 -0
- arekit/contrib/utils/processing/languages/ru/mods.py +13 -0
- arekit/contrib/utils/processing/languages/ru/number.py +23 -0
- arekit/contrib/utils/processing/languages/ru/pos_service.py +36 -0
- arekit/contrib/utils/processing/lemmatization/__init__.py +0 -0
- arekit/contrib/utils/processing/lemmatization/mystem.py +51 -0
- arekit/contrib/utils/processing/pos/__init__.py +0 -0
- arekit/contrib/utils/processing/pos/base.py +12 -0
- arekit/contrib/utils/processing/pos/mystem_wrap.py +134 -0
- arekit/contrib/utils/processing/pos/russian.py +10 -0
- arekit/contrib/utils/processing/text/__init__.py +0 -0
- arekit/contrib/utils/processing/text/tokens.py +127 -0
- arekit/contrib/utils/resources.py +25 -0
- arekit/contrib/utils/serializer.py +43 -0
- arekit/contrib/utils/sources/__init__.py +0 -0
- arekit/contrib/utils/sources/sentinerel/__init__.py +0 -0
- arekit/contrib/utils/sources/sentinerel/text_opinion/__init__.py +0 -0
- arekit/contrib/utils/sources/sentinerel/text_opinion/prof_per_org_filter.py +63 -0
- arekit/contrib/utils/synonyms/__init__.py +0 -0
- arekit/contrib/utils/synonyms/simple.py +15 -0
- arekit/contrib/utils/synonyms/stemmer_based.py +38 -0
- arekit/contrib/utils/vectorizers/__init__.py +0 -0
- arekit/contrib/utils/vectorizers/bpe.py +93 -0
- arekit/contrib/utils/vectorizers/random_norm.py +39 -0
- arekit/download_data.py +11 -0
- arekit-0.24.0.dist-info/LICENSE +21 -0
- arekit-0.24.0.dist-info/METADATA +23 -0
- arekit-0.24.0.dist-info/RECORD +374 -0
- arekit-0.24.0.dist-info/WHEEL +5 -0
- arekit-0.24.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
from arekit.common.labels.base import Label
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ABBREVIATION(Label):
|
|
5
|
+
pass
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class ALTERNATIVE_NAME(Label):
|
|
9
|
+
pass
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class KNOWS(Label):
|
|
13
|
+
pass
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class AGE_IS(Label):
|
|
17
|
+
pass
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class AGE_DIED_AT(Label):
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class AWARDED_WITH(Label):
|
|
25
|
+
pass
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class PLACE_OF_BIRTH(Label):
|
|
29
|
+
pass
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class DATE_DEFUNCT_IN(Label):
|
|
33
|
+
pass
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class DATE_FOUNDED_IN(Label):
|
|
37
|
+
pass
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class DATE_OF_BIRTH(Label):
|
|
41
|
+
pass
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class DATE_OF_CREATION(Label):
|
|
45
|
+
pass
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class DATE_OF_DEATH(Label):
|
|
49
|
+
pass
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class POINT_IN_TIME(Label):
|
|
53
|
+
pass
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class PLACE_OF_DEATH(Label):
|
|
57
|
+
pass
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class FOUNDED_BY(Label):
|
|
61
|
+
pass
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class HEADQUARTERED_IN(Label):
|
|
65
|
+
pass
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class IDEOLOGY_OF(Label):
|
|
69
|
+
pass
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class SPOUSE(Label):
|
|
73
|
+
pass
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
class MEMBER_OF(Label):
|
|
77
|
+
pass
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class ORGANIZES(Label):
|
|
81
|
+
pass
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
class OWNER_OF(Label):
|
|
85
|
+
pass
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class PARENT_OF(Label):
|
|
89
|
+
pass
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
class PARTICIPANT_IN(Label):
|
|
93
|
+
pass
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
class PLACE_RESIDES_IN(Label):
|
|
97
|
+
pass
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
class PRICE_OF(Label):
|
|
101
|
+
pass
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
class PRODUCES(Label):
|
|
105
|
+
pass
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
class RELATIVE(Label):
|
|
109
|
+
pass
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class RELIGION_OF(Label):
|
|
113
|
+
pass
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
class SCHOOLS_ATTENDED(Label):
|
|
117
|
+
pass
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
class SIBLING(Label):
|
|
121
|
+
pass
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
class SUBEVENT_OF(Label):
|
|
125
|
+
pass
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
class SUBORDINATE_OF(Label):
|
|
129
|
+
pass
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
class TAKES_PLACE_IN(Label):
|
|
133
|
+
pass
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class WORKPLACE(Label):
|
|
137
|
+
pass
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
class WORKS_AS(Label):
|
|
141
|
+
pass
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
class CONVICTED_OF(Label):
|
|
145
|
+
pass
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
class PENALIZED_AS(Label):
|
|
149
|
+
pass
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
class START_TIME(Label):
|
|
153
|
+
pass
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
class END_TIME(Label):
|
|
157
|
+
pass
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
class EXPENDITURE(Label):
|
|
161
|
+
pass
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
class AGENT(Label):
|
|
165
|
+
pass
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
class INANIMATE_INVOLVED(Label):
|
|
169
|
+
pass
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
class INCOME(Label):
|
|
173
|
+
pass
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
class SUBCLASS_OF(Label):
|
|
177
|
+
pass
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
class PART_OF(Label):
|
|
181
|
+
pass
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
class LOCATED_IN(Label):
|
|
185
|
+
pass
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
class TREATED_USING(Label):
|
|
189
|
+
pass
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
class ORIGINS_FROM(Label):
|
|
193
|
+
pass
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
class TO_DETECT_OR_STUDY(Label):
|
|
197
|
+
pass
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
class AFFECTS(Label):
|
|
201
|
+
pass
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
class HAS_CAUSE(Label):
|
|
205
|
+
pass
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
class APPLIED_TO(Label):
|
|
209
|
+
pass
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
class USED_IN(Label):
|
|
213
|
+
pass
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
class ASSOCIATED_WITH(Label):
|
|
217
|
+
pass
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
class HAS_ADMINISTRATION_ROUTE(Label):
|
|
221
|
+
pass
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
class HAS_STRENGTH(Label):
|
|
225
|
+
pass
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
class DURATION_OF(Label):
|
|
229
|
+
pass
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
class VALUE_IS(Label):
|
|
233
|
+
pass
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
class PHYSIOLOGY_OF(Label):
|
|
237
|
+
pass
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
class PROCEDURE_PERFORMED(Label):
|
|
241
|
+
pass
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
class MENTAL_PROCESS_OF(Label):
|
|
245
|
+
pass
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
class MEDICAL_CONDITION(Label):
|
|
249
|
+
pass
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
class DOSE_IS(Label):
|
|
253
|
+
pass
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
class FINDING_OF(Label):
|
|
257
|
+
pass
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
class CAUSE_OF_DEATH(Label):
|
|
261
|
+
pass
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
class CONSUME(Label):
|
|
265
|
+
pass
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
from arekit.contrib.source.nerel.reader import NerelDocReader
|
|
2
|
+
from arekit.contrib.source.nerelbio.io_utils import NerelBioIOUtils
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class NerelBioDocReader(NerelDocReader):
|
|
6
|
+
|
|
7
|
+
def __init__(self, version):
|
|
8
|
+
super(NerelBioDocReader, self).__init__(version=version, io_utils=NerelBioIOUtils())
|
|
File without changes
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from arekit.contrib.source.ruattitudes.io_utils import RuAttitudesVersions, RuAttitudesIOUtils
|
|
2
|
+
from arekit.contrib.source.ruattitudes.reader import RuAttitudesFormatReader
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class RuAttitudesCollection(object):
|
|
6
|
+
|
|
7
|
+
@staticmethod
|
|
8
|
+
def __get_reading_handler(input_file, read_inds_only, get_doc_inds_func):
|
|
9
|
+
assert(isinstance(read_inds_only, bool))
|
|
10
|
+
|
|
11
|
+
if read_inds_only:
|
|
12
|
+
return RuAttitudesFormatReader.iter_docs_inds(input_file=input_file,
|
|
13
|
+
get_doc_index_func=get_doc_inds_func)
|
|
14
|
+
else:
|
|
15
|
+
return RuAttitudesFormatReader.iter_docs(input_file=input_file,
|
|
16
|
+
get_doc_index_func=get_doc_inds_func)
|
|
17
|
+
|
|
18
|
+
@staticmethod
|
|
19
|
+
def iter_docs(version, get_doc_index_func, return_inds_only):
|
|
20
|
+
"""
|
|
21
|
+
RuAttitudes collection reader from zip archive
|
|
22
|
+
"""
|
|
23
|
+
assert(isinstance(version, RuAttitudesVersions))
|
|
24
|
+
assert(callable(get_doc_index_func))
|
|
25
|
+
assert(isinstance(return_inds_only, bool))
|
|
26
|
+
|
|
27
|
+
it = RuAttitudesIOUtils.iter_from_zip(
|
|
28
|
+
inner_path=RuAttitudesIOUtils.get_collection_filepath(),
|
|
29
|
+
process_func=lambda input_filepath: RuAttitudesCollection.__get_reading_handler(
|
|
30
|
+
input_file=input_filepath,
|
|
31
|
+
read_inds_only=return_inds_only,
|
|
32
|
+
get_doc_inds_func=get_doc_index_func),
|
|
33
|
+
version=version)
|
|
34
|
+
|
|
35
|
+
for doc in it:
|
|
36
|
+
yield doc
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
from arekit.contrib.source.ruattitudes.sentence import RuAttitudesSentence
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class RuAttitudesDocument(object):
|
|
5
|
+
|
|
6
|
+
def __init__(self, sentences, doc_index):
|
|
7
|
+
assert(len(sentences) > 0)
|
|
8
|
+
|
|
9
|
+
self.__sentences = sentences
|
|
10
|
+
self.__objects_before_sentence = self.__cache_objects_declared_before()
|
|
11
|
+
self.__doc_index = doc_index
|
|
12
|
+
|
|
13
|
+
self.__set_owners()
|
|
14
|
+
|
|
15
|
+
# region properties
|
|
16
|
+
|
|
17
|
+
@property
|
|
18
|
+
def ID(self):
|
|
19
|
+
return self.__doc_index
|
|
20
|
+
|
|
21
|
+
@property
|
|
22
|
+
def Title(self):
|
|
23
|
+
return self.__sentences[0]
|
|
24
|
+
|
|
25
|
+
# endregion
|
|
26
|
+
|
|
27
|
+
# region private methods
|
|
28
|
+
|
|
29
|
+
def __set_owners(self):
|
|
30
|
+
for sentence in self.__sentences:
|
|
31
|
+
assert(isinstance(sentence, RuAttitudesSentence))
|
|
32
|
+
sentence.set_owner(self)
|
|
33
|
+
|
|
34
|
+
def __cache_objects_declared_before(self):
|
|
35
|
+
d = {}
|
|
36
|
+
before = 0
|
|
37
|
+
for s in self.__sentences:
|
|
38
|
+
assert(isinstance(s, RuAttitudesSentence))
|
|
39
|
+
d[s.SentenceIndex] = before
|
|
40
|
+
before += s.ObjectsCount
|
|
41
|
+
|
|
42
|
+
return d
|
|
43
|
+
|
|
44
|
+
# endregion
|
|
45
|
+
|
|
46
|
+
def get_objects_declared_before(self, sentence_index):
|
|
47
|
+
return self.__objects_before_sentence[sentence_index]
|
|
48
|
+
|
|
49
|
+
def iter_sentences(self):
|
|
50
|
+
for sentence in self.__sentences:
|
|
51
|
+
yield sentence
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from arekit.contrib.source.brat.doc import BratDocument
|
|
2
|
+
from arekit.contrib.source.brat.sentence import BratSentence
|
|
3
|
+
from arekit.contrib.source.ruattitudes.doc import RuAttitudesDocument
|
|
4
|
+
from arekit.contrib.source.ruattitudes.opinions.base import SentenceOpinion
|
|
5
|
+
from arekit.contrib.source.ruattitudes.opinions.converter import RuAttitudesSentenceOpinionConverter
|
|
6
|
+
from arekit.contrib.source.ruattitudes.sentence import RuAttitudesSentence
|
|
7
|
+
from arekit.common.utils import split_by_whitespaces
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class RuAttitudesDocumentsConverter(object):
|
|
11
|
+
""" Performs conversion to a brat-based representation.
|
|
12
|
+
The latter allows then allows to adopt pipelines for TextOpnion extraction.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
@staticmethod
|
|
16
|
+
def to_brat_doc(doc):
|
|
17
|
+
assert(isinstance(doc, RuAttitudesDocument))
|
|
18
|
+
text_opinions = RuAttitudesDocumentsConverter.__iter_text_opinions(doc=doc)
|
|
19
|
+
brat_sentences = RuAttitudesDocumentsConverter.__to_brat_sentences(doc.iter_sentences())
|
|
20
|
+
return BratDocument(doc_id=doc.ID,
|
|
21
|
+
sentences=brat_sentences,
|
|
22
|
+
text_relations=list(text_opinions))
|
|
23
|
+
|
|
24
|
+
@staticmethod
|
|
25
|
+
def __to_brat_sentences(sentences_iter):
|
|
26
|
+
sentences = []
|
|
27
|
+
for s in sentences_iter:
|
|
28
|
+
assert(isinstance(s, RuAttitudesSentence))
|
|
29
|
+
assert(s.Owner is not None)
|
|
30
|
+
brat_entities = [obj.to_entity(s.get_doc_level_text_object_id) for obj in s.iter_objects()]
|
|
31
|
+
brat_sentence = BratSentence(text=split_by_whitespaces(s.Text), index_begin=0, entities=brat_entities)
|
|
32
|
+
sentences.append(brat_sentence)
|
|
33
|
+
return sentences
|
|
34
|
+
|
|
35
|
+
@staticmethod
|
|
36
|
+
def __iter_text_opinions(doc):
|
|
37
|
+
assert(isinstance(doc, RuAttitudesDocument))
|
|
38
|
+
for sentence in doc.iter_sentences():
|
|
39
|
+
assert(isinstance(sentence, RuAttitudesSentence))
|
|
40
|
+
for sentence_opinion in sentence.iter_sentence_opins():
|
|
41
|
+
assert(isinstance(sentence_opinion, SentenceOpinion))
|
|
42
|
+
yield RuAttitudesSentenceOpinionConverter.to_brat_relation(
|
|
43
|
+
sentence_opinion=sentence_opinion,
|
|
44
|
+
end_to_doc_id_func=sentence.get_doc_level_text_object_id)
|
|
File without changes
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
from os import path
|
|
2
|
+
|
|
3
|
+
from enum import Enum
|
|
4
|
+
|
|
5
|
+
from arekit.contrib.source.zip_utils import ZipArchiveUtils
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class RuAttitudesVersions(Enum):
|
|
9
|
+
Debug = "dbg"
|
|
10
|
+
V10 = "v1_0"
|
|
11
|
+
V11 = "v1_1"
|
|
12
|
+
V20Base = 'v2_0_base'
|
|
13
|
+
V20Large = 'v2_0_large'
|
|
14
|
+
V20BaseNeut = 'v2_0_base_neut'
|
|
15
|
+
V20LargeNeut = 'v2_0_large_neut'
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class RuAttitudesVersionsService:
|
|
19
|
+
|
|
20
|
+
@staticmethod
|
|
21
|
+
def __iter_type_and_names():
|
|
22
|
+
for version_type in RuAttitudesVersions:
|
|
23
|
+
yield version_type, version_type.value
|
|
24
|
+
|
|
25
|
+
@staticmethod
|
|
26
|
+
def find_by_name(name):
|
|
27
|
+
for version_type, related_name in RuAttitudesVersionsService.__iter_type_and_names():
|
|
28
|
+
if name == related_name:
|
|
29
|
+
return version_type
|
|
30
|
+
raise Exception("Version `{}` does not supported".format(name))
|
|
31
|
+
|
|
32
|
+
@staticmethod
|
|
33
|
+
def iter_supported_names():
|
|
34
|
+
for _, name in RuAttitudesVersionsService.__iter_type_and_names():
|
|
35
|
+
yield name
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class RuAttitudesIOUtils(ZipArchiveUtils):
|
|
39
|
+
|
|
40
|
+
# region internal methods
|
|
41
|
+
|
|
42
|
+
@staticmethod
|
|
43
|
+
def get_archive_filepath(version):
|
|
44
|
+
assert(isinstance(version, str))
|
|
45
|
+
return path.join(RuAttitudesIOUtils.get_data_root(),
|
|
46
|
+
"ruattitudes-{version}.zip".format(version=version))
|
|
47
|
+
|
|
48
|
+
@staticmethod
|
|
49
|
+
def get_collection_filepath():
|
|
50
|
+
return "collection.txt"
|
|
51
|
+
|
|
52
|
+
@classmethod
|
|
53
|
+
def get_synonyms_innerpath(cls):
|
|
54
|
+
return "synonyms.txt"
|
|
55
|
+
|
|
56
|
+
# endregion
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from arekit.common.labels.scaler.base import BaseLabelScaler
|
|
2
|
+
from arekit.common.labels.str_fmt import StringLabelsFormatter
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class RuAttitudesLabelFormatter(StringLabelsFormatter):
|
|
6
|
+
|
|
7
|
+
def __init__(self, label_scaler):
|
|
8
|
+
assert(isinstance(label_scaler, BaseLabelScaler))
|
|
9
|
+
stol = {}
|
|
10
|
+
for int_label in [-1, 0, 1]:
|
|
11
|
+
stol[str(int_label)] = type(label_scaler.int_to_label(int_label))
|
|
12
|
+
super(RuAttitudesLabelFormatter, self).__init__(stol=stol)
|
|
File without changes
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
class SentenceOpinion(object):
|
|
2
|
+
""" Provides an opinion within a sentence.
|
|
3
|
+
Specific for RuAttitudes collection, as the latter provides
|
|
4
|
+
connections within a sentence.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
def __init__(self, source_id, target_id, label_int, tag):
|
|
8
|
+
assert(isinstance(label_int, int))
|
|
9
|
+
self.__label_int = label_int
|
|
10
|
+
self.__source_id = source_id
|
|
11
|
+
self.__target_id = target_id
|
|
12
|
+
self.__tag = tag
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def SourceID(self):
|
|
16
|
+
return self.__source_id
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def TargetID(self):
|
|
20
|
+
return self.__target_id
|
|
21
|
+
|
|
22
|
+
@property
|
|
23
|
+
def Label(self):
|
|
24
|
+
return self.__label_int
|
|
25
|
+
|
|
26
|
+
@property
|
|
27
|
+
def Tag(self):
|
|
28
|
+
return self.__tag
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from arekit.common.labels.scaler.base import BaseLabelScaler
|
|
2
|
+
from arekit.common.opinions.base import Opinion
|
|
3
|
+
from arekit.contrib.source.brat.relation import BratRelation
|
|
4
|
+
from arekit.contrib.source.ruattitudes.opinions.base import SentenceOpinion
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class RuAttitudesSentenceOpinionConverter:
|
|
8
|
+
|
|
9
|
+
@staticmethod
|
|
10
|
+
def to_brat_relation(sentence_opinion, end_to_doc_id_func):
|
|
11
|
+
""" Converts opinion into brat-related relation.
|
|
12
|
+
NOTE: for rel_type we just call str() over int-based value.
|
|
13
|
+
"""
|
|
14
|
+
assert(isinstance(sentence_opinion, SentenceOpinion))
|
|
15
|
+
return BratRelation(id_in_doc="0",
|
|
16
|
+
source_id=end_to_doc_id_func(sentence_opinion.SourceID),
|
|
17
|
+
target_id=end_to_doc_id_func(sentence_opinion.TargetID),
|
|
18
|
+
rel_type=str(sentence_opinion.Label))
|
|
19
|
+
|
|
20
|
+
@staticmethod
|
|
21
|
+
def to_opinion(sentence_opinion, source_value, target_value, label_scaler):
|
|
22
|
+
"""
|
|
23
|
+
Converts onto document, non referenced opinion
|
|
24
|
+
(non bounded to the text).
|
|
25
|
+
"""
|
|
26
|
+
assert(isinstance(sentence_opinion, SentenceOpinion))
|
|
27
|
+
assert(isinstance(label_scaler, BaseLabelScaler))
|
|
28
|
+
|
|
29
|
+
opinion = Opinion(source_value=source_value,
|
|
30
|
+
target_value=target_value,
|
|
31
|
+
label=label_scaler.int_to_label(sentence_opinion.Label))
|
|
32
|
+
|
|
33
|
+
# Using this tag allows to perform a revert operation,
|
|
34
|
+
# i.e. to find opinion_ref by opinion.
|
|
35
|
+
opinion.set_tag(sentence_opinion.Tag)
|
|
36
|
+
|
|
37
|
+
return opinion
|