1
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 个句子之后的每个句子都会出现下面的值错误。

  1. 发生了什么?有没有办法查看那些提取但结构不良的句子?
  2. 如何正确提取句子?我猜有些标记被表示为字符串和 OBI 的元组而不是字符串。但是对于许多句子有相同的错误报告是很奇怪的。
  3. 更糟糕的是,我只能提取结构良好的句子吗?
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
4

0 回答 0