Je suis en train d'analyser des phrases de violation de la circulation à l'aide pyparsing, quand je l'utilise grammar.searchString(sentence)
il est ok, mais quand je l'utilise parseString
un ParseException
est jeté. Quelqu'un peut-il m'aider à dire ce qui ne va pas avec mon code?pyparsing.ParseException lors de l'utilisation parseString (searchString fonctionne)
from pyparsing import Or, Literal, oneOf, OneOrMore, nums, alphas, Regex, Word, \
SkipTo, LineEnd, originalTextFor, Optional, ZeroOrMore, Keyword, Group
import pyparsing as pp
from nltk.tag import pos_tag
sentences = ['Failure to control vehicle speed on highway to avoid collision','Failure to stop at stop sign', 'Introducing additives into special fuel by unauthorized person and contrary to regulations', 'driver fail to stop at yield sign at nearest pointf approaching traffic view when req. for safety', 'Operating unregistered motor vehicle on highway', 'Exceeding maximum speed: 39 MPH in a posted 30 MPH zone']
for sentence in sentences:
words = pos_tag(sentence.split())
#print words
verbs = [word for word, pos in words if pos in ['VB','VBD','VBG']]
nouns = [word for word, pos in words if pos == 'NN']
adjectives = [word for word, pos in words if pos == 'JJ']
adjectives.append('great') # initializing
verbs.append('get') # initializing
object_generator = oneOf('for to')
location_generator = oneOf('at in into on onto over within')
speed_generator = oneOf('MPH KM/H')
noun = oneOf(nouns)
adjective = oneOf(adjectives)
location = location_generator + pp.Group(Optional(adjective) + noun)
action = oneOf(verbs)
speed = Word(nums) + speed_generator
grammar = action | location | speed
parsed = grammar.parseString(sentence)
print parsed
Erreur retraçage
retraçage (appel le plus récent en dernier): Fichier "script3.py", ligne 35, parsage = grammar.parseString (phrase) Fichier «/Users/Alana/Anaconda /lib/python2.7/site-packages/pyparsing .py ", ligne 1032, dans parseString raise exc pyparsing.ParseException: Attendu Re :('control | avoid | get') (au char 0), (ligne: 1 , col: 1)
S'il vous plaît, ajouter toute erreur retraçage à votre poste. – kvorobiev
retraçage (appel le plus récent en dernier): Fichier "script3.py", ligne 35, dans location_parsed = location.parseString (phrase) fichier « /Users/alana/anaconda/lib/python2.7/site-packages /pyparsing.py ", ligne 1032, dans parseString relance exc pyparsing.ParseException: attendu Re :('à | dans | dans | sur | sur | sur | dans') (à 0), (ligne: 1, col: 1) –
Je ne vois pas la ligne 'location_parsed = location.parseString (phrase)' dans votre code. Fournir des sources où l'exception a été levée. – kvorobiev