75 votes

Grammaire anglaise pour l'analyse syntaxique dans NLTK

Existe-t-il une grammaire anglaise prête à l'emploi que je peux simplement charger et utiliser dans NLTK ? J'ai cherché des exemples d'analyse avec NLTK, mais il semble que je doive spécifier manuellement la grammaire avant d'analyser une phrase.

Merci beaucoup !

4voto

Piyo Hoge Points 49

J'ai essayé NLTK, PyStatParser, Pattern. IMHO Pattern est le meilleur analyseur syntaxique anglais présenté dans l'article ci-dessus. Parce qu'il supporte l'installation par pip et qu'il y a un document fantaisiste sur le site web ( http://www.clips.ua.ac.be/pages/pattern-en ). Je n'ai pas pu trouver de document raisonnable pour NLTK (et il m'a donné des résultats imprécis par défaut). Et je n'ai pas trouvé comment le régler). pyStatParser est beaucoup plus lent que ce qui est décrit ci-dessus dans mon environnement. (Environ une minute pour l'initialisation et quelques secondes pour analyser de longues phrases. Peut-être que je ne l'ai pas utilisé correctement).

4voto

maverik_akagami Points 41

Avez-vous essayé l'étiquetage POS dans NLTK ?

text = word_tokenize("And now for something completely different")
nltk.pos_tag(text)

La réponse est à peu près la suivante

[('And', 'CC'), ('now', 'RB'), ('for', 'IN'), ('something', 'NN'),('completely', 'RB'), ('different', 'JJ')]

Cet exemple est tiré d'ici NLTK_chapitre03

1voto

Stepan Rogonov Points 77

J'ai découvert que nltk fonctionne bien avec la grammaire de l'analyseur développé par Stanford.

Analyse syntaxique avec Stanford CoreNLP et NLTK

Il est très facile de commencer à utiliser Stanford CoreNLP et NLTK. Tout ce dont vous avez besoin est une petite préparation, après quoi vous pouvez analyser les phrases avec le code suivant :

from nltk.parse.corenlp import CoreNLPParser
parser = CoreNLPParser()
parse = next(parser.raw_parse("I put the book in the box on the table."))

Préparation :

  1. Télécharger Modèle Java Stanford
  2. Exécuter CoreNLPServer

Vous pouvez utiliser le code suivant pour exécuter CoreNLPServer :

import os
from nltk.parse.corenlp import CoreNLPServer
# The server needs to know the location of the following files:
#   - stanford-corenlp-X.X.X.jar
#   - stanford-corenlp-X.X.X-models.jar
STANFORD = os.path.join("models", "stanford-corenlp-full-2018-02-27")
# Create the server
server = CoreNLPServer(
   os.path.join(STANFORD, "stanford-corenlp-3.9.1.jar"),
   os.path.join(STANFORD, "stanford-corenlp-3.9.1-models.jar"),    
)
# Start the server in the background
server.start()

Ne pas oublier d'arrêter le serveur en exécutant server.stop()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X