UniversalDependencies / UD_Portuguese-Bosque

This Universal Dependencies (UD) Portuguese treebank.
Other
48 stars 11 forks source link

NER inconsistente #415

Open PedroDaumas opened 3 months ago

PedroDaumas commented 3 months ago

Ola, estou tendo um problema de inconsistencia com o NER para o idioma portugues, estou fazendo um teste de processamento de tweets e me deparei com o seguinte texto:

🚨 AGORA Elon Musk acaba de anunciar a doação de 1000 antenas da Starlink às centenas de municípios gaúchos que sofrem com a pior enchente da história do Rio Grande do Sul Recentemente o PSOL tentou banir a operação da Starlink no Brasil Internet da empresa de Elon Musk é a única responsável por conectar escolas em locais de difícil acesso em regiões amazônicas A Starlink também foi essencial para coordenar os resgates em cidades do RS que ficaram completamente incomunicáveis por conta da enchente Siga

rodando o seguinte nlp pipeline:

nlp = spacy.load("pt_core_news_sm")
nlp.add_pipe("doc_cleaner", last=True)
nlp.add_pipe("merge_entities", last=True)

doc = nlp(text)

for ent in doc.ents:
  print(f"{ent.label_} : {ent.text}")

words = [
    token.text.strip()
    for token in doc
    if not token.is_stop and token.tag_ != "SPACE"
]

As entidades retornadas foram:

MISC : Starlink
LOC : Rio Grande do Sul
PER : PSOL
MISC : Starlink
MISC : Brasil Internet
MISC : Elon Musk
MISC : A Starlink
LOC : RS
LOC : Siga

E os tokens:

['🚨', 'Elon', 'Musk', 'acaba', 'anunciar', 'doação', '1000', 'antenas', 'Starlink', 'centenas', 'municípios', 'gaúchos', 'sofrem', 'pior', 'enchente', 'história', 'Rio Grande do Sul', 'Recentemente', 'PSOL', 'tentou', 'banir', 'operação', 'Starlink', 'Brasil Internet', 'empresa', 'Elon Musk', 'única', 'responsável', 'conectar', 'escolas', 'locais', 'difícil', 'acesso', 'regiões', 'amazônicas', 'A Starlink', 'essencial', 'coordenar', 'resgates', 'cidades', 'RS', 'ficaram', 'completamente', 'incomunicáveis', 'conta', 'enchente', 'Siga']

Fiquei em duvida do porque Elon Musk inicialmente nao foi indentificado como uma entidade e depois foi, e pq Starlink foi corretamente indentificado e depois virou A Starlink. Olhando para alguns tweets que coletei o codigo parece estar tendo dificuldades de indentificar Elon Musk como uma entidade, mais esta corretamente categorizando entidades brasileiras.