Pergunta

O que eu quero fazer é analisar o texto natural bruto e encontrar todas as frases que descrevem datas.

Eu tenho um corpus bastante grande com todas as referências às datas marcadas:

I met him <date>yesterday</date>.
Roger Zelazny was born <date>in 1937</date>
He'll have a hell of a hangover <date>tomorrow morning</date>

Não quero interpretar as frases de data, apenas localizá-las.O fato de serem datas é irrelevante (na vida real nem são datas, mas não quero aborrecê-los com os detalhes), basicamente é apenas um conjunto aberto de valores possíveis.A gramática dos próprios valores pode ser aproximada como livre de contexto, porém é bastante complicada de construir manualmente e com o aumento da complexidade fica cada vez mais difícil evitar falsos positivos.

Eu sei que isso é um pouco improvável, então não espero que exista uma solução pronta para uso, mas que tecnologia ou pesquisa posso usar?

Foi útil?

Solução

Uma das abordagens genéricas utilizadas na academia e na indústria é baseada em Campos Aleatórios Condicionais.Basicamente, é um modelo probabilístico especial, você o treina primeiro com seus dados marcados e depois ele pode rotular certos tipos de entidades em um determinado texto.

Você pode até experimentar um dos sistemas do Stanford Natural Language Processing Group: Reconhecedor de entidade nomeada de Stanford

Ao baixar a ferramenta, observe que existem vários modelos, você precisa do último:

Incluídos no Stanford Ner estão um modelo de 4 de classe treinado para a CONLL, um modelo de 7 de classe treinado para MUC e um modelo de 3 de classe treinado em ambos os conjuntos de dados para a interseção desses conjuntos de classes.

3 classes Localização, Pessoa, Organização

4 classes Localização, Pessoa, Organização, Diversos

7 aulas Hora, Local, Organização, Pessoa, Dinheiro, Porcentagem, Data

Atualizar. Você pode realmente experimentar essa ferramenta on-line aqui.Selecione os muc.7class.distsim.crf.ser.gz classificador e experimente algum texto com datas.Parece não reconhecer o “ontem”, mas reconhece o “século XX”, por exemplo.No final das contas, isso é uma questão de treinamento em CRF.


Stanford NER screenshot

Outras dicas

Tenha em mente que os CRFs são bastante lentos para treinar e exigem dados anotados por humanos, portanto, fazer isso sozinho não é fácil.Leia as respostas para esse para outro exemplo de como as pessoas costumam fazer isso na prática- não muito em comum com a pesquisa acadêmica atual.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top