Domanda

Supponiamo di avere una toolchain Uima che fa qualcosa del genere:

tokenize -> POS Tagging -> Assegna i miei tag/annotazioni personalizzati -> Usa i tag personalizzati per assegnare più tag -> Ulteriori elaborazioni.

Sarebbe possibile usare una terza parte, diciamo che il riconoscimento delle entità (che utilizza tag POS ma non necessita molto di più), subito dopo il tag POS, tra le due cose personalizzate o successivamente?

Sto facendo queste domande perché posso vedere complicazioni a causa dei sistemi di tipo. In particolare, il caso più difficile può essere plug -gin a brid party er annotor tra le cose personalizzate o subito dopo di esse. L'annotore di terze parti non si aspetterà che i nostri tag personalizzati siano lì.

Tuttavia, ci sono solo ulteriori annotazioni che devono essere "attraversate" l'annotatore senza guardarli o modificarli. Quindi, in linea di principio, presumo che ciò sia possibile. Semplicemente non so se UIMA lo supporta o si tratta di scrivere catene complete da solo con una digitazione rigorosa ovunque.

Se questo non è possibile fuori dalla scatola, potremmo scrivere gli annotanti personalizzati in modo tale che possano essere collegati ovunque da dove i tag POS sono disponibili indipendentemente se ci sono altre annotazioni presenti. Cioè come autori di annotanti si prendono cura del fatto che potrebbero esserci alcune annotazioni necessarie, alcune annotazioni che aggiungiamo e un numero qualsiasi di annotazioni che potrebbero essere presenti o no e non ci importa di loro e le passano solo?

È stato utile?

Soluzione

L'annotore di terze parti non si aspetterà che i nostri tag personalizzati siano lì.

Se ho capito correttamente, sei preoccupato che le tue annotazioni personalizzate possano scontrarsi con il NER di terze parti, giusto? Non lo farà, a meno che il tuo codice non aggiunga esattamente il stesso Annotazioni.

Questa è la forza di Uima: Ogni motore di analisi (AE) è indipendente dagli altri, si preoccupa solo delle annotazioni che vengono passate nel CAS. Ad esempio, supponiamo che tu abbia un AE che si aspetta l'annotazione del tipo my.namespace.Token. Non importa quale AE abbia creato queste annotazioni, purché ci siano presenti nel CAS.

Il prezzo da pagare per questa flessibilità è che tu (come sviluppatore) devi assicurarti che sia presente l'annotazione richiesta per ogni AE. Ad esempio, se un AE si aspetta annotazioni di tipo my.namespace.Sentence Ma nessuno è presente, questo AE non sarà in grado di fare alcuna elaborazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top