@DJ_Stuffy_K проверяйте комментарии в ваших списках, ни один из них не удовлетворяет третьему требованию для правильной работы этого алгоритма. Посмотрите второй, где я упоминаю разбивку исходных данных, если это применимо к вашим данным, их не должно быть слишком сложно реализовать.

текстовый файл «Правда» содержит следующие значения:

0.000000    3.810000    Three
3.810000    3.910923    NNNN
3.910923    5.429000    AAAA
5.429000    7.060000    AAAA
7.060000    8.411000    MMMM
8.411000    8.971000    MMMM
8.971000    13.40600    MMMM
13.40600    13.82700    Zero
13.82700    15.935554   One

Другой текстовый файл «Test» содержит следующие значения:

0.000000    3.810000    Three
3.810000    3.910923    Three
3.910923    5.429000    AAAA
5.429000    7.060000    Three
7.060000    8.411000    Three
8.411000    8.971000    Zero
8.971000    13.40600    Three
13.40600    13.82700    Zero
13.82700    15.935554   Two
15.935554   20.138337   Two 

Теперь я хочу заменить метки в тесте наMMMM ярлыки от правды.

Рабочий код, который у меня пока есть:

### Assuming I have already read in both the files into truth and test

res = []

for j in range(len(truth)):
    if truth[j][2]== 'MMMM' and truth[j][0]==test[j][0] and truth[j][1]==test[j][1]:
        res.append((test[j][0], test[j][1],truth[j][2]))
    else:
        res.append((test[j][0], test[j][1],test[j][2]))
for i in range(len(res)):
    print res[i]

Мой код некрасив, но работает хорошо, если диапазоны хорошо совпадают. Однако я не уверен, как поступить, если файл правды намного длиннее, чем тестовый файл, то есть там больше интервалов и меток.

Ex мой файл правды может быть таким:

    0.000000    1.00000     MMMM
    1.000       3.810000    Three
    3.810000    3.910923    NNNN
    3.910923    5.429000    AAAA
    5.429000    6.0000      MMMM
    6.0000      7.060000    AAAA
    7.060000    8.411000    MMMM
    8.411000    8.971000    MMMM
    8.971000    11.00       abcd
    11.00       13.40600    MMMM
    13.40600    13.82700    Zero
    13.82700    15.935554   One

В таком случае, как я могу точно выполнять обновление / замену этикеток с минимальной потерей данных?

Другими словами, как мне создать некоторую метрику условия, например, 80% -ное перекрытие по возрасту, для замены метки ММММ в заданном временном диапазоне? Пожалуйста, порекомендуйте. благодарю вас

Ответы на вопрос(3)

Ваш ответ на вопрос