2016-06-16 14 views
6

Ho scoperto gli strumenti di stanford-NLP e l'ho trovato davvero interessante. Sono un dataminatore/datascientifico francese, appassionato di analisi del testo e mi piacerebbe usare i tuoi strumenti, ma il NER non è disponibile in francese è piuttosto strano per me.come addestrare un NER francese basato sul modello di Campi casuali condizionali stanford-nlp?

Mi piacerebbe creare il mio NER francese, forse anche fornire un contributo al pacchetto se è considerato degno, quindi ... potresti informarmi sui requisiti per addestrare un CRF per il NER francese sulla base di lo stanford core NLP?

Grazie.

risposta

7

NB: Non sono uno sviluppatore degli strumenti di Stanford, né un esperto di PNL. Solo un utente lambda che aveva bisogno di tali informazioni ad un certo punto. Si noti inoltre che una parte delle informazioni riportate di seguito sono dalle FAQ ufficiale: http://nlp.stanford.edu/software/crf-faq.shtml#a

qui sono i passi che ho seguito per addestrare la mia NER:

  1. Installare java8
  2. Creare un campione treno/test . Essa deve assumere la forma di .tsv file con il seguente formato:

    Venez O 
        découvrir O 
        lundi DAY 
        le O 
        nouvel O 
        espace O 
        de O 
        vente O 
        ODHOJS ORGANISATION 
    

    A seconda del formato originale del testo, è possibile creare questo esempio con un'istruzione SQL o altri strumenti di PNL. L'etichettatura è la parte più complicata in quanto non conosco altri modi per procedere piuttosto che farlo a mano.

  3. treno il modello con questo comando:

    java -cp "stanford-ner.jar:lib/*" -mx4g edu.stanford.nlp.ie.crf.CRFClassifier -prop prop.txt 
    

    dove prop.txt è anche descritto here.

    Questo dovrebbe creare un nuovo .jar contenente il modello appena addestrato.

  4. prova le prestazioni del modello:

    java -cp "stanford-ner.jar:lib/*" edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier ner-model.ser.gz -testFile test.tsv > test.res 
    

    L'ingresso test.tsv ha lo stesso formato di quella del file train.tsv. L'output in test.res ha una colonna aggiuntiva contenente la classe prevista NER. Le ultime righe mostrano anche il riepilogo in termini di precisione, richiamo e F1.

  5. Infine, è possibile utilizzare il NER su dati reali:

    java -cp "stanford-ner.jar:lib/*" -mx5g edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier ner-model.ser.gz -textFile test.txt -outputFormat inlineXML > test.res 
    

Spero che aiuta.

+1

Merci beaucoup! –

+3

Se qualcuno cerca un corpora francese, eccone uno con 200.000 voci https://github.com/EuropeanaNewspapers/ner-corpora/blob/master/enp_FR.bnf.bio/enp_FR.bnf.bio Su un i7 con 16 GB di RAM e SSD, ci vogliono poco più di 10 minuti per allenarsi – Mihai