Skip to content

Commit

Permalink
MultiModalData class improvement
Browse files Browse the repository at this point in the history
Now csv files with text and table data can be read just in one motion

- from_csv method added
- text fields are defined automatically
- tests are added
  • Loading branch information
andreygetmanov committed Jul 21, 2022
1 parent 4389b7f commit c11ba62
Show file tree
Hide file tree
Showing 10 changed files with 1,046 additions and 1,591 deletions.
32 changes: 2 additions & 30 deletions examples/advanced/multimodal_text_num_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,45 +2,17 @@

from fedot.api.main import Fedot

from fedot.core.data.data import InputData
from fedot.core.data.data_split import train_test_data_setup
from fedot.core.data.multi_modal import MultiModalData
from fedot.core.repository.dataset_types import DataTypesEnum
from fedot.core.repository.tasks import Task, TaskTypesEnum
from fedot.core.utils import fedot_project_root


def prepare_multi_modal_data(files_path: str, task: Task) -> MultiModalData:
"""
Imports data from 2 different sources (table and text)
:param files_path: path to data
:param task: task to solve
:return: MultiModalData object which contains table and text data
"""

path = os.path.join(str(fedot_project_root()), files_path)

# import of table data
path_table = os.path.join(path, 'multimodal_wine_table.csv')
data_num = InputData.from_csv(path_table, task=task, target_columns='variety')

# import of text data
path_text = os.path.join(path, 'multimodal_wine_text.csv')
data_text = InputData.from_csv(path_text, data_type=DataTypesEnum.text, task=task, target_columns='variety')

data = MultiModalData({
'data_source_table': data_num,
'data_source_text': data_text
})

return data


def run_multi_modal_example(files_path: str, is_visualise=True) -> float:
task = Task(TaskTypesEnum.classification)

data = prepare_multi_modal_data(files_path, task)
path = os.path.join(str(fedot_project_root()), files_path, 'multimodal_wine.csv')
data = MultiModalData.from_csv(file_path=path, task=task, target_columns='variety', index_col=None)
fit_data, predict_data = train_test_data_setup(data, shuffle_flag=True, split_ratio=0.7)

automl_model = Fedot(problem='classification', timeout=10)
Expand Down
780 changes: 780 additions & 0 deletions examples/data/multimodal_wine/multimodal_wine.csv

Large diffs are not rendered by default.

Loading

0 comments on commit c11ba62

Please sign in to comment.