Я помечал предложения следующим образом:
[[('paid', 'VBN'),
('$', '$'),
('400', 'CD'),
('to', 'TO'),
('supplier', 'VB')],
[('bought', 'VBD'),
('iphone', 'NN'),
('for', 'IN'),
('$', '$'),
('1100', 'CD')]]
Я передаю одно предложение из этого списка за раз (например, процесс (предложение [1])) этой функции:
def process(sentence):
effect = 'credit'
amount = 0
ac = 'na'
for tup in sentence:
if (tup[1].find('NN') != -1):
ac += ' '+ w1
elif (tup[1].find('CD') != -1):
amount = w1
elif (tup[0] in debits):
effect = 'debit'
print(ac, amount, effect)
Но получаю эту ошибку:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-125-869edd588202> in <module>()
----> 1 print process(sentence[1])
<ipython-input-124-63459fe42a43> in process(sentence)
4 ac = 'na'
5 for tup in sentence:
----> 6 if (tup[1].find('NN') != -1):
7 ac += ' '+ w1
8 elif (tup[1].find('CD') != -1):
IndexError: string index out of range
Моя основная идея с этой функцией заключается в том, что для каждого предложения, которое она принимает, она должна просматривать все кортежи, которые у нее есть, если тег кортежа ( tup [ 1] в коде ) - «NN», мы храним его в a c и т. Д. Помощь оценена.