私はPyParsingにいくつか問題があります。私はCVからいくつかの書誌情報を解析する必要があります。例:参考文献引用をPyParsing
AuthorA、B.、AuthorB、M.R.、AuthorC、V.、およびB. LastAuthor。一部 有効性タイトル。都市名、州名、2012年12月3日
著者リストと日付を(主に)解析するコードがありました。他の情報は特に重要ではありません。
from pyparsing import (Word, Literal, OneOrMore, alphanums, delimitedList, printables,
alphas, nums)
family_name = Word(alphanums+'-')
first_init = Word(alphanums+'.')
author = (family_name("LastName") + Literal(',').suppress() +
OneOrMore(first_init("FirstInitials")))
last_author = first_init("FirstInitials") + family_name("LastName")
author_list = delimitedList(author) + Literal('and').suppress() + last_author
sentence = OneOrMore(Word(printables))
location = delimitedList(Word(printables))
date = Word(alphas) + Word(nums) + Literal(',').suppress() + Word(nums)
citation = (author_list('AuthorLst') + sentence('Title') + location('Location')
+ date('Date'))
citation.parseString(ntext)
ただし、著者リストと最終作者の区別として "and"で検索されます。
---------------------------------------------------------------------------
ParseException Traceback (most recent call last)
<ipython-input-142-5d7946dcb775> in <module>()
15
16
---> 17 citation.parseString(ntext)
/Users/willdampier/anaconda/lib/python2.7/site-packages/pyparsing.pyc in parseString(self, instring, parseAll)
1123 else:
1124 # catch and re-raise exception from here, clears out pyparsing internal stack trace
-> 1125 raise exc
1126 else:
1127 return tokens
ParseException: Expected "and" (at char 40), (line:1, col:41)
任意の提案:
は、私はエラーメッセージが表示されますか?
あなたのサンプルと現在のコードはどのような出力を得ていますか? (ちょうどこの文脈で "おなら"が何を意味するかを知るために) – usr2564301
'Word'、' OneOrMore'などとは何ですか?これらは正規表現ライブラリからのものですか?これらのインポート文を再現するために追加できますか? – hansaplast
エラーメッセージと 'pyparsing'からのインポートを追加するように編集しました。 – JudoWill