Python 3.x TypeError:需要类似字节的对象,而不是';str';对于Geniatager?

Python 3.x TypeError:需要类似字节的对象,而不是';str';对于Geniatager?,python-3.x,typeerror,Python 3.x,Typeerror,我试图在python中使用Geniatager执行分块,这需要使用git clone下载 按照说明,我下载并安装了Geniatager,并将其导入到我的应用程序中 但是,当我尝试访问解析功能时,会出现以下错误 --------------------------------------------------------------------------- TypeError Traceback (most recent call

我试图在python中使用Geniatager执行分块,这需要使用git clone下载

按照说明,我下载并安装了Geniatager,并将其导入到我的应用程序中

但是,当我尝试访问解析功能时,会出现以下错误

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-25-867eea8ac07f> in <module>
      1 my_bytes = "This is a pen.".encode()
      2 print(type(my_bytes))
----> 3 x = tagger.parse(my_bytes)

~/anaconda3/envs/systreviewclassifi/lib/python3.6/site-packages/geniatagger_python-0.1-py3.6.egg/geniatagger.py in parse(self, text)
     33         results = list()
     34 
---> 35         for oneline in text.split('\n'):
     36             self._tagger.stdin.write(oneline+'\n')
     37             while True:

TypeError: a bytes-like object is required, not 'str'
目前,我将上述给定的错误作为输出。从技术上讲,这应该是输出

>>> print tagger.parse('This is a pen.')
[('This', 'This', 'DT', 'B-NP', 'O'), ('is', 'be', 'VBZ', 'B-VP', 'O'), ('a', 'a', 'DT', 'B-NP', 'O'), ('pen', 'pen', 'NN', 'I-NP', 'O'), ('.', '.', '.', 'O', 'O')]

我将非常感谢您的帮助。

代码似乎与Python 3不完全兼容

您传入一个编码为字节的字符串,但是(
用于文本中的单行。拆分('\n')
)变量
text
的类型是bytes,而
.split()
'\n'
)的参数是字符串。这导致了错误

您可以在解释器中复制错误,如下所示:

>>> 'asdasd'.encode().split('d')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'
>>'asdasd'.encode().split('d'))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:需要类似字节的对象,而不是“str”


您可以尝试在
tagger.parse()
中输入字符串而不是字节,但不知道这是否可行。

代码似乎与Python 3不完全兼容

您传入一个编码为字节的字符串,但是(
用于文本中的单行。拆分('\n')
)变量
text
的类型是bytes,而
.split()
'\n'
)的参数是字符串。这导致了错误

您可以在解释器中复制错误,如下所示:

>>> 'asdasd'.encode().split('d')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'
>>'asdasd'.encode().split('d'))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:需要类似字节的对象,而不是“str”


您可以尝试在
tagger.parse()
中输入字符串而不是字节,但不知道这是否可行。

将其作为字符串传递时,它会再次返回此错误。TypeError:bytes-like对象是必需的,而不是'str'。我觉得这也很可疑,因为split是在字符串上执行的。将其作为字符串传递时,它会再次返回此错误。'TypeError:bytes-like对象是必需的,而不是'str'。我觉得这是阴暗的,因为分裂是对一个字符串执行。