As entidades da minha gazeta não são reconhecidas
Eu gostaria de criar um modelo NER personalizado. Isso é o que eu fiz:
DADOS DE FORMAÇÃO (stanford-ner.tsv):
Hello O
! O
My O
name O
is O
Damiano PERSON
. O
PROPRIEDADES (stanford-ner.prop):
trainFile = stanford-ner.tsv
serializeTo = ner-model.ser.gz
map = word=0,answer=1
maxLeft=1
useClassFeature=true
useWord=true
useNGrams=true
noMidNGrams=true
maxNGramLeng=6
usePrev=true
useNext=true
useDisjunctive=true
useSequences=true
usePrevSequences=true
useTypeSeqs=true
useTypeSeqs2=true
useTypeySequences=true
wordShape=chris2useLC
useGazettes=true
gazette=gazzetta.txt
cleanGazette=true
GAZZETTE gazzetta.txt):
PERSON John
PERSON Andrea
Eu construo o modelo via linha de comando com:
java -classpath "stanford-ner.jar:lib/*" edu.stanford.nlp.ie.crf.CRFClassifier -prop stanford-ner.prop
E teste com:
java -classpath "stanford-ner.jar:lib/*" edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier ner-model.ser.gz -textFile test.txt
Fiz dois testes com os seguintes textos:
>>> TESTE 1 <<<
TEXTO: Olá! Meu nome é Damiano e este é um texto falso para testar.
RESULTADOOlá / O! / O Meu / O nome / O é / O Damiano / PERSON e / O isso / O é / O a / O falso / O texto / O para / O teste / O ./O
>>> TESTE 2 <<<
TEXTO: Olá! Meu nome é John e este é um texto falso para testar.
RESULTADOOlá / O! / O Meu / O nome / O é / O John / O e / O isso / O é / O a / O falso / O texto / O para / O teste / O ./O
Como você pode ver, apenas a entidade "Damiano" é encontrada. Essa entidade está nos meus dados de treinamento, mas "John" (segundo teste) está dentro da gazzette. Então a questão é.
Por que a entidade John não é reconhecida?
Muito obrigado antecipadamente.