为什么可以';我是否用Python读入了.conll文件(令人困惑的解析错误)? 从pyconll导入从\u文件加载\u 数据=从文件(“filename.conll”)加载文件 数据

为什么可以';我是否用Python读入了.conll文件(令人困惑的解析错误)? 从pyconll导入从\u文件加载\u 数据=从文件(“filename.conll”)加载文件 数据,python,parse-error,conll,Python,Parse Error,Conll,我正在阅读一个.conll文件,但是出现了以下错误,我不明白它的意思。数据集应该是可读的,因为它有点像基准数据集。我没有看到文档中可以指定的pyconll.load\u from_file()的任何其他参数。有人能帮我吗 另外,有没有办法通过nltk包读取.conll文件 ParseError Traceback (most recent call last) <ipython-input-14-06859f7ce8b2>

我正在阅读一个
.conll
文件,但是出现了以下错误,我不明白它的意思。数据集应该是可读的,因为它有点像基准数据集。我没有看到文档中可以指定的
pyconll.load\u from_file()
的任何其他参数。有人能帮我吗

另外,有没有办法通过
nltk
包读取
.conll
文件

ParseError                                Traceback (most recent call last)
<ipython-input-14-06859f7ce8b2> in <module>()
----> 1 data = load_from_file("filename.conll")
      2 data

5 frames
/usr/local/lib/python3.6/dist-packages/pyconll/unit/token.py in __init__(self, source, empty)
    661             error_msg = 'The number of columns per token line must be 10. Invalid token: {}'.format(
    662                 source)
--> 663             raise ParseError(error_msg)
    664 
    665         # Assign all the field values from the line to internal equivalents.

ParseError: The number of columns per token line must be 10. Invalid token: @paulwalk   O
ParseError回溯(最近一次调用)
在()
---->1数据=从文件(“filename.conll”)加载文件
2数据
5帧
/usr/local/lib/python3.6/dist-packages/pyconll/unit/token.py in_u__________(self,source,empty)
661 error_msg='每个标记行的列数必须为10。无效标记:{}。格式为(
662(资料来源)
-->663上升解析错误(错误消息)
664
665#将行中的所有字段值指定给内部等效值。
ParseError:每个标记行的列数必须为10。无效令牌:@Paulo Walk
问题在于“CoNLL”格式在列的数量、顺序和内容上有所不同。根据错误,您的解析器似乎期望CoNLL-U()或CoNLL-X(原始网站关闭)。无论您输入了什么,错误都声称未找到预期的列数(10),请参阅

但是,如果您确实有10列,请尝试转义预期的标记,可能某些内部正则表达式替换失败


关于使用NLTK解析CoNLL的子问题,请参见问题(!)中的详细信息。解析某些CoNLL格式是可能的,但NLTK似乎不支持较新的CoNLL格式,特别是CoNLL-X和CoNLL-U。它可能对您的数据有效(因为这既不是CoNLL-X也不是CoNLL-U)。

我遇到了同样的问题。我通过将pyhton库切换到conllu来修复它。现在我可以毫无问题地读取和解析我所有的CoNLL-U文件。我想这解释了原因