Skip to content

Commit

Permalink
#240 related.
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolay-r committed Dec 24, 2021
1 parent fc007a0 commit 26a428f
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 14 deletions.
21 changes: 9 additions & 12 deletions arekit/common/data/views/ouput_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from arekit.common.data import const
from arekit.common.data.row_ids.base import BaseIDProvider
from arekit.common.data.storages.base import BaseRowsStorage
from arekit.common.data.views import utils
from arekit.common.data.views.base import BaseStorageView
from arekit.common.data.views.opinions import BaseOpinionStorageView
from arekit.common.linkage.opinions import OpinionsLinkage
Expand All @@ -18,16 +19,9 @@ def __init__(self, ids_provider, storage):

# region private methods

@staticmethod
def _iter_opinion_linkages_df(doc_df, row_ids):
def __iter_doc_opinion_ids(self, row_ids):
for row_id in row_ids:
df_linkage = doc_df[doc_df[const.ID].str.contains(row_id)]
yield df_linkage

def __iter_doc_opinion_ids(self, doc_df):
assert (isinstance(doc_df, pd.DataFrame))
return [self._ids_provider.parse_opinion_in_opinion_id(row_id)
for row_id in doc_df[const.ID]]
yield self._ids_provider.parse_opinion_in_opinion_id(row_id)

def __iter_opinions_by_linkages(self, linkages_df, opinions_view):
for df_linkage in linkages_df:
Expand All @@ -51,14 +45,17 @@ def iter_doc_ids(self):
def iter_opinion_linkages(self, doc_id, opinions_view):
assert(isinstance(opinions_view, BaseOpinionStorageView))
doc_df = self._storage.find_by_value(column_name=const.DOC_ID, value=doc_id)

doc_opin_ids = self.__iter_doc_opinion_ids(doc_df)
row_ids = [row_id for row_id in doc_df[const.ID]] # TODO. Adopt storage.
doc_opin_ids = self.__iter_doc_opinion_ids(row_ids=row_ids)

doc_opin_id_patterns = map(
lambda opinion_id: self._ids_provider.create_pattern(id_value=opinion_id, p_type=BaseIDProvider.OPINION),
doc_opin_ids)

linkages_df = self._iter_opinion_linkages_df(doc_df=doc_df, row_ids=doc_opin_id_patterns)
linkages_df = map(
lambda opin_id: utils.filter_by_id(doc_df=doc_df, column=const.ID, value=opin_id),
doc_opin_id_patterns)

opinions_iter = self.__iter_opinions_by_linkages(linkages_df, opinions_view=opinions_view)

return map(lambda opinions: OpinionsLinkage(opinions), opinions_iter)
Expand Down
6 changes: 6 additions & 0 deletions arekit/common/data/views/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,9 @@ def compose_opinion_by_opinion_id(ids_provider, sample_id, opinions_view, calc_l
return Opinion(source_value=source,
target_value=target,
sentiment=calc_label_func())


# TODO. Adopt storage.
def filter_by_id(doc_df, column, value):
assert(isinstance(column, str))
return doc_df[doc_df[column].str.contains(value)]
9 changes: 7 additions & 2 deletions arekit/contrib/bert/views/binary.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,15 @@ def _iter_by_opinions(self, linked_df, opinions_view):
opinion_ids = self.__iter_linked_opinion_indices(linked_df=linked_df)

id_patterns_iter = map(
lambda opinion_id: self._ids_provider.create_pattern(id_value=opinion_id, p_type=BaseIDProvider.INDEX),
lambda opinion_id: self._ids_provider.create_pattern(id_value=opinion_id,
p_type=BaseIDProvider.INDEX),
opinion_ids)

linkages_dfs = self._iter_opinion_linkages_df(doc_df=linked_df, row_ids=id_patterns_iter)
linkages_dfs = map(
lambda id_pattern: utils.filter_by_id(doc_df=linked_df,
column=const.ID,
value=id_pattern),
id_patterns_iter)

for opinion_linkage_df in linkages_dfs:
yield utils.compose_opinion_by_opinion_id(
Expand Down

0 comments on commit 26a428f

Please sign in to comment.