Простой подход к объединению множества меток из ансамбля функций маркировки с использованием большинства голосов.
Этот процесс опирается на библиотеку extr-ds (репозиторий Github).
pip install extr-ds
Простое голосование большинством
Простой метод подсчета и определения того, какая метка должна появиться среди группы функций маркировки.
В случаях, когда голоса равны, побеждает метка с наибольшим взвешенным баллом — += weight * (confidence[i] * 1)
.
В тех случаях, когда взвешенная оценка по-прежнему равна, просто возвращается метка. Нет решения / имеет ли это значение?
- доверие:насколько достоверно (вероятность) был каждый ярлык.
- вес: какое влияние вы хотите оказать в сценариях тай-брейка.
from extr_ds.rules import InferenceResult, \ Majority instances = [ InferenceResult( labels=['B-PERSON', 'I-PERSON', '', 'B-ORG'], confidences=[.99, .99, .99, .99], weight=100.0 ), InferenceResult( labels=['B-PERSON', '', '', 'B-ORG'], confidences=[.99, .62, .99, .95], weight=100.0 ), InferenceResult( labels=['B-PERSON', 'I-PERSON', 'I-PERSON', 'B-ORG'], confidences=[.99, .95, .53, .97], weight=100.0 ), ] observation = Majority().merge(instances) ## ['B-PERSON', 'I-PERSON', '', 'B-ORG']