@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% -ное перекрытие по возрасту, для замены метки ММММ в заданном временном диапазоне? Пожалуйста, порекомендуйте. благодарю вас