2017-06-10 5 views
2

Je suis à la recherche d'un moyen de pos_tag une phrase française comme le code suivant est utilisé pour des phrases en anglais:Comment faire pour POS_TAG une phrase en français?

def pos_tagging(sentence): 
    var = sentence 
    exampleArray = [var] 
    for item in exampleArray: 
     tokenized = nltk.word_tokenize(item) 
     tagged = nltk.pos_tag(tokenized) 
     return tagged 
+0

Par ailleurs, la boucle ne fait rien. Si 'phrase' est une chaîne, appelez simplement' nltk.word_tokenize (phrase) 'et passez le résultat à' nltk.pos_tag() '. – alexis

+0

https://stackoverflow.com/questions/27513185/simplifying-the-french-pos-tag-set-with-nltk –

Répondre

3

Le NLTK ne vient pas avec des ressources pré-construits pour le français. Je recommande d'utiliser le Stanford tagger, qui est livré avec un modèle français formé. This code montre comment vous pouvez configurer le nltk pour l'utiliser avec le tagueur français POS de Stanford. Notez que le code est obsolète (et pour Python 2), mais vous pouvez l'utiliser comme point de départ.

Alternativement, le NLTK rend très facile la formation de votre propre étiqueteur POS sur un corpus étiqueté, et l'enregistre pour une utilisation ultérieure. Si vous avez accès à un corpus français (suffisamment grand), vous pouvez suivre les instructions au the nltk book et utiliser simplement votre corpus à la place du corpus Brown. Il est peu probable que vous égaliez la performance du tagueur de Stanford (sauf si vous pouvez former un tagger pour votre domaine spécifique), mais vous n'aurez rien à installer.

+0

alexis merci pour l'aide –

3

ici est la source complète de code, il fonctionne très bien lien de téléchargement Standford PNL https://nlp.stanford.edu/software/tagger.shtml#About

from nltk.tag import StanfordPOSTagger 
jar = 'C:/Users/m.ferhat/Desktop/stanford-postagger-full-2016-10-31/stanford-postagger-3.7.0.jar' 
model = 'C:/Users/m.ferhat/Desktop/stanford-postagger-full-2016-10-31/models/french.tagger' 
import os 
java_path = "C:/Program Files/Java/jdk1.8.0_121/bin/java.exe" 
os.environ['JAVAHOME'] = java_path 

pos_tagger = StanfordPOSTagger(model, jar, encoding='utf8') 
res = pos_tagger.tag('je suis libre'.split()) 
print (res)