我想解析自然語言解析器(斯坦福分析器)的結果輸出。 有些結果是如下:解析模式中的元素
dep(Company-1, rent-5')
conj_or(rent-5, share-10)
amod(information-12, personal-11)
prep_about(rent-5, you-14)
amod(companies-20, non-affiliated-19)
aux(provide-23, to-22)
xcomp(you-14, provide-23)
dobj(provide-23, products-24)
aux(requested-29, 've-28)
結果想獲得有:
['dep', 'Company', 'rent']
['conj_or', 'rent', 'share']
['amod', 'information', 'personal']
...
['amod', 'companies', 'non-affiliated']
...
['aux', 'requested', "'ve"]
首先,我想直接拿到這些元素,但是失敗了。 然後我意識到正則表達式應該是正確的前進方向。
但是,我完全不熟悉正則表達式。隨着一些探索,我得到了:
m = re.search('(?<=())\w+', line)
m2 =re.search('(?<=-)\d', line)
並卡住了。
第一個可以正確獲取第一個元素,例如'dep'
, 'amod'
,'conj_or'
,但我其實並沒有完全想到它爲什麼在工作......
第二行試圖獲得第二個元素,例如, 'Company'
,'rent'
,'information'
,但我只能得到單詞後面的數字。我不知道如何lookbefore,而不是向後看...
順便說一句,我也不知道如何處理例外如'non-affiliated'
和"'ve"
。
任何人都可以提供一些提示或幫助。高度讚賞。