Почему я получаю "ValueError: Несоответствующее количество столбцов" при чтении предложений из файла .ConLL?
from nltk.corpus.reader.conll import ConllCorpusReader
READER = ConllCorpusReader(root="./", fileids=".conll",
columntypes=('words','pos','tree','chunk','ne','srl','ignore')
)
READER_sents(myConLLfile)
Я извлекаю предложение как список строк из
.conll
файл. Приведенный выше код не сообщает об ошибках, поэтому я думаю, что для каждого предложения что-то извлекается. Тем не менее, когда я пытаюсь распечатать или добавить POS-теги к каждому предложению, ошибка значения ниже возникает для каждого предложения после 1007-го.
- Что творится? Есть ли способ увидеть эти извлеченные, но плохо структурированные предложения?
- Как правильно извлекать предложения? Я предполагаю, что некоторые токены представлены как кортеж из строки и OBI вместо строки. Но тогда странно иметь один и тот же отчет об ошибке для многих предложений.
- В худшем случае могу ли я извлекать только те предложения в хорошей структуре?
i = 0
for sentence in READER_sents(myConLLfile):
print(i)
print(sentence)
i += 1
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-125-9c03d8d69ec0> in <module>()
1 i = 0
----> 2 for sentence in READER.sents(myConLLfile):
3 print(i)
4 print(sentence)
5 i += 1
2 frames
/usr/local/lib/python3.6/dist-packages/nltk/corpus/reader/conll.py in _read_grid_block(self, stream)
206 if len(row) != len(grid[0]):
207 raise ValueError('Inconsistent number of columns:\n%s'
--> 208 % block)
209 grids.append(grid)
210 return grids
ValueError: Inconsistent number of columns:
This O
guy O
needs O
his O
own O
show O
on O
Discivery B-corporation
Channel I-corporation
! O