Итерация по кортежам, созданным NLTK Pos Tagger - PullRequest
1 голос
/ 09 января 2020

Я помечал предложения следующим образом:

[[('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 и т. Д. Помощь оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...