Open lemontree210 opened 4 months ago
Overview by @MariAnShum:
Создать функционал, который актуализирует порядок следования признаков в рефератах.
features_listed_values.csv
.
~Вопрос: есть ли еще файлы, где нужно автоматически обновлять порядок?~Актуальное решение: судя по всему, нужно начинать с варианта 1, а потом на его основе надстраивать вариант 2.
Сценарий 1 | Сценарий 2 | Сценарий 3 | Сценарий 4 | Сценарий 5 | |
---|---|---|---|---|---|
Однотипные действия выполняются сразу в рефератах и в features_listed_values. Сначала перестановка, потом обновление айди | Сначала перестановка, потом обновление айди. Сначала все делается в рефератах, потом в features_listed_values | Ориентирован на группировку операций в независимые методы добавления и удаления признаков. Сначала все делается в рефератах, потом в features_listed_values. Обновление айди целевого признака и значения (значений) выполняется в буфере обмена | По замыслу аналогичен варианту 3, но обновление айди происходит не в буфере, а in situ | Экспериментальный вариант, при котором сначала происходит обновление айди, а потом выстраивается нужный порядок. Выполняется сначала в рефератах, потом в features_listed_values. Ориентирован на реализацию плана Б в обход плана А, поэтому добавляет новые типы атомарных задач | |
1 | Вырезать целевой признак (рефераты) | Вырезать целевой признак (рефераты) | Вырезать целевой признак (рефераты) | Вырезать целевой признак (рефераты) | Найти строку, в которой в реферате и features содержатся признаки с разными айди |
2 | Вырезать значения целевого признака (features_listed_values) | Вставить целевой признак на целевую позицию | Обновить айди нецелевых признаков | Обновить айди нецелевых признаков | Обновить айди целевого признака в реферате по файлу features |
3 | Вставить целевой признак на целевую позицию (рефераты) | Обновить айди целевого признака | Обновить айди значения нецелевых признаков | Обновить айди значения нецелевых признаков | Обновить айди значения целевого признака в реферате |
4 | Вставить значения целевого признака на целевую позицию (features_listed_values) | Обновить айди значения целевого признака | Обновить айди целевого признака | Вставить целевой признак на целевую позицию | Повторить шаги 1-3, пока все признаки и значения не получат актуальные айди |
5 | Обновить айди целевого признака (рефераты) | Обновить айди нецелевых признаков | Обновить айди значения целевого признака | Обновить айди целевого признака | Упорядочить признаки в реферате |
6 | Обновить айди целевого признака (features_listed_values) | Обновить айди значения нецелевых признаков | Вставить целевой признак на целевую позицию | Обновить айди значения целевого признака | Выполнить то же самое для остальных рефератов |
7 | Обновить айди значения целевого признака (рефераты) | Вырезать значения целевого признака (features_listed_values) | Обновить айди нецелевых признаков | Обновить айди нецелевых признаков | Найти строку, в которой в features и features_listed_values содержатся признак и значение такие, что признак значения имеет другой айди, чем признак в features. Этот признак в features_listed_values назовем целевым |
8 | Обновить айди значений целевого признака (features_listed_values) | Вставить значения целевого признака на целевую позицию | Обновить айди значения нецелевых признаков | Обновить айди значения нецелевых признаков | Обновить айди признака у всех значений целевого признака в features_listed_values |
9 | Обновить айди нецелевых признаков (рефераты) | Обновить айди целевого признака | Вырезать значения целевого признака (features_listed_values) | Вырезать значения целевого признака (features_listed_values) | Обновить айди значений целевого признака в features_listed_values |
10 | Обновить айди нецелевых признаков (features_listed_values) | Обновить айди значений целевого признака | Обновить айди нецелевых признаков | Обновить айди нецелевых признаков | Повторить шаги 1-3, пока все значения и их признаки не получат актуальные айди в features_listed_values |
11 | Обновить айди значений нецелевых признаков (рефераты) | Обновить айди нецелевых признаков | Обновить айди значения нецелевых признаков | Обновить айди значения нецелевых признаков | Упорядочить значения в features_listed_values |
12 | Обновить айди значений нецелевых признаков (features_listed_values) | Обновить айди значения нецелевых признаков | Обновить айди целевого признака | Вставить значения целевого признака на целевую позицию | |
13 | Обновить айди значений целевого признака | Обновить айди целевого признака | |||
14 | Вставить значения целевого признака на целевую позицию | Обновить айди значений целевого признака | |||
15 | Обновить айди нецелевых признаков | Обновить айди нецелевых признаков | |||
16 | Обновить айди значения нецелевых признаков | Обновить айди значения нецелевых признаков |
В сценариях, где происходит сначала перемещение, а затем обновление айди, айди признаков (и значений) можно обновлять автоматически, если в функционал будут отдельно заложены категории признаков. (По-видимому, это не сработает только для сценария 3).
К сценарию 1 остается вопрос: судя по всему, актуализация порядка будет проходить в каждом реферате отдельно, а не во всех рефератах вместе. Тогда, получается, группировка однотипных задач для реферата и features_listed_values теряет смысл?
Дополнительно для сценария 5 можно прописать функцию, которая при обработке первого реферата создает рецепт обновления. Он состоит из строк, в каждой из них три значения: исходная позиция целевого признака, новый айди целевого признака (автоматически распространяется и на значение), новая позиция целевого признака. Как представляется, такой рецепт обновления может упростить актуализацию остальных рефератов и feaures_listed_values, так как его можно будет выполнять с помощью простой функции на основе функции move_lines из модуля txt. У этого сценария есть недостаток — отсутствие основы для независимых методов удаления и добавления.
6. Вопрос: какова вероятность, что может быть добавлена или образована новая категория? Нужно ли закладывать эту возможность сейчас?
Вероятность есть, но не в ближайшее время
Варианты реализации:
1. Получение списка инструкций, что и куда следует переместить. 2. Автоматическая актуализация рефератов с опорой на список features.
Актуальное решение: судя по всему, нужно начинать с варианта 1, а потом на его основе надстраивать вариант 2.
Предлагаю наоборот: сначала сделать №2, а потом над ним надстроить функционал по добавлению/перемещению/удалению значений сразу во все файлы с помощью инструкций
features.csv
tofeatures_listed_values.csv
features.csv