Простой подход к объединению множества меток из ансамбля функций маркировки с использованием большинства голосов.

Этот процесс опирается на библиотеку 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']