• No results found

2 Programmering i Python

8.2 Sannsynlighet og kombinatorikk

Conforme apresentado no Capítulo 2, a tarefa de extrair descritores de relação entre ENs pode ser tratada como um problema de etiquetagem de sequências. Sendo assim, as palavras que descrevem uma relação (descritores) devem ser etiquetadas utilizando uma notação que as represente.

No contexto desta tese, optou-se por utilizar a notação BIO [86] geralmente utilizada na etique- tagem de sequências, definindo-se então um conjunto de etiquetas para o descritor de relação da seguinte forma:

• B-REL: indica o início do descritor da relação;

• I-REL: indica que faz parte do descritor da relação;

• O: indica que não faz parte do descritor da relação.

De posse da anotação das instâncias de relações positivas e negativas de cada um dos conjuntos de dados (ver Seção 4.2), e da definição da notação BIO, temos que aplicar para cada instância de relação a sequência de etiquetas BIO conforme as seguintes diretrizes:

• Para instâncias positivas, deve-se etiquetar as palavras que constituem o descritor de relação seguindo a notação BIO (B-REL, I-REL, O);

• Para instâncias negativas, ou seja, o segmento de palavras entre o par de ENs não descreve uma relação, deve-se etiquetar cada palavra desse segmento com a etiqueta O (a palavra não faz parte da relação);

• Por fim, todas as demais palavras, pontuações, etc. inclusive as ENs que são os argumentos da relação, devem ser etiquetadas com a etiqueta O, uma vez que não fazem parte do descritor. Adicionou-se a anotação do descritor da relação ao exemplo ilustrado em (9). Na última posição de cada linha foi adicionada a etiqueta BIO, conforme apresentado no exemplo (10). As linhas que formam o descritor de relação estão destacadas em negrito. Podemos notar que, mesmo as palavras que ocorrem entre o par de ENs, mas não fazem parte do descritor, recebem a etiqueta O, como no exemplo (10): a vírgula não faz parte do descritor e recebeu a etiqueta O. Além disso, as ENs “Ronaldo=Lemos" e “Creative=Commons" também receberam a etiqueta O.

(...)

Ronaldo=Lemos [Ronaldo=Lemos] <hum> PROP @SUBJ> PES O , O

diretor [diretor] <Hprof> N @N<PRED B-REL de [de] PRP @N< I-REL

o [o] DET @>N I-REL

Creative=Commons [Creative=Commons] <org> PROP @P< ORG O (...) (10)

A quantidade de etiquetas da anotação BIO aplicada às palavras das instâncias de relações dos conjuntos de dados é apresentada na Tabela 5.1. Podemos notar que, em todas as bases ocorreram mais casos da etiqueta O em relação às demais, devido ao fato de que, para os exemplos negativos, deve-se atribuir essa etiqueta para cada palavra que ocorre entre o par de ENs correspondente.

Dados B-REL I-REL O

ORG-ORG 90 281 1702

ORG-PES 105 312 1548

ORG-LOCAL 109 292 1765 ORG-PES-LOCAL 304 885 5012

Tabela 5.1 – Número de etiquetas da anotação BIO no conjunto de dados.

Nesse contexto, temos que, para cada instância de relação anotada (positiva ou negativa), é gerado um vetor com as etiquetas BIO de cada palavra (chamado de “vetor BIO"), com base nos arquivos no formato ilustrado em (10). Para um melhor entendimento do vetor BIO, é apresentado em (11) o vetor correspondente à sequência das etiquetas BIO do trecho de texto descrito em (1):

Vetor BIO:

... Ronaldo=Lemos , diretor de o Creative=Commons ... (1)

[... O O B-REL I-REL I-REL O ... ] (11)

Como neste trabalho é utilizado o aprendizado supervisionado no processo de ER proposto, a sequência de etiquetas BIO dos descritores de relação representa as etiquetas/anotação de referência, ou seja, as etiquetas de saída que devem ser preditas na etapa de aprendizado utilizando o CRF. Sendo assim, os vetores BIO são uma das entradas para a etapa de geração e validação do modelo probabilístico CRF, descrita na Seção 5.5.

Nessa etapa de pré-processamento, também gerou-se um vetor com algumas informações das instâncias de relação necessárias para a etapa de geração das features, descrita na Seção 5.4. Sendo assim, para cada instância de relação anotada (positiva ou negativa) é gerado um vetor contendo as seguintes informações de cada palavra, nesta ordem:

• ’sintatica’: informação sintática da palavra. Caso não possua essa informação, retorna ’nulo’;

• ’POS’: informação de POS da palavra. Caso seja uma pontuação (como vírgula, dois pontos, etc.), retorna essa pontuação;

• ’semantica’: informação semântica da palavra. Caso não possua essa informação, retorna ’nulo’;

• ’dicionario’: informação que indica se a palavra está contida no dicionário externo; retorna ’sim/não’;

• ’semanticaProf ’: informação que indica se a etiqueta semântica é de profissão/cargo; retorna a própria etiqueta (<Hprof> ou <Htit>) ou, caso não possua essa informação, retorna ’nulo’;

• ’gerarFeatures’: informação que indica se vão ser geradas as features para a palavra em foco; retorna um valor booleano.

• ’categoria’: informação referente à categoria da EN (PES ou ORG ou LOCAL). Caso a palavra não seja uma EN, retorna ’nulo’;

• ’palavra’: informação referente à forma canônica da palavra (reduz os verbos à forma infinitiva e as outras palavras variáveis ao singular masculino).

Para a geração desse vetor (chamado de “vetor pre-processo"), extraiu-se tais informações das instâncias de relações dos arquivos no formato ilustrado em (10). Retomando o exemplo, em (12) é apresentado o vetor pre-processo correspondente ao trecho de texto descrito em (1) :

Vetor pre-processo:

... Ronaldo=Lemos , diretor de o Creative=Commons ... (1)

... [’sintatica’: ’@SUBJ>’, ’POS’: ’PROP’, ’semantica’: ’hum’, ’dicionario’: ’nao’, ’semanti- caProf’: ’nulo’, ’gerarFeatures’: True, ’categoria’: ’PES’, ’palavra’: ’Ronaldo=Lemos’], [’sintatica’: ’nulo’, ’POS’: ’,’, ’semantica’: ’nulo’, ’dicionario’: ’nao’, ’semanticaProf’: ’nulo’, ’gerarFeatures’: True, ’categoria’: ’nulo’, ’palavra’: ’,’],

[’sintatica’: ’@N<PRED’, ’POS’: ’N’, ’semantica’: ’Hprof’, ’dicionario’: ’sim’, ’semantica- Prof’: ’hprof’, ’gerarFeatures’: True, ’categoria’: ’nulo’, ’palavra’: ’diretor’],

[sintatica’: ’@N<’, ’POS’: ’PRP’, ’semantica’: ’sam-’, ’dicionario’: ’nao’, ’semanticaProf’: ’nulo’, ’gerarFeatures’: True, ’categoria’: ’nulo’, ’palavra’: ’de’],

[’sintatica’: ’@>N’, ’POS’: ’DET’, ’semantica’: ’-sam’, ’dicionario’: ’nao’, ’semanticaProf’: ’nulo’, ’gerarFeatures’: True, ’categoria’: ’nulo’, ’palavra’: ’o’],

[’sintatica’: ’@P<’, ’POS’: ’PROP’, ’semantica’: ’org’, ’dicionario’: ’nao’, ’semanticaProf’: ’nulo’, ’gerarFeatures’: True, ’categoria’: ’ORG’, ’palavra’: ’Creative=Commons’], ... (12)

No contexto deste trabalho, os vetores pre-processo são importantes para a geração das features que descrevem as instâncias de relação, etapa fundamental para o processo de ER proposto.