print(text[:80]) TypeError: 'NoneType' object is not subscriptable
时间: 2023-07-03 16:29:53 浏览: 97
这个错误提示表明你尝试对None类型的对象进行切片操作,而None是一个空对象,没有任何可以切片的内容。因此,你需要检查一下代码,找出导致函数返回None的原因。在这个问题中,我们可以看到preprocess_nmt函数返回的是None,因此可以考虑添加一个return语句来明确返回值。修改后的代码如下:
```python
import re
import d2lzh as d2l
d2l.DATA_HUB['cmn-eng'] = (d2l.DATA_URL + 'cmn-eng.zip',
'94646ad1522d915e7b0f9296181140edcf86a4f5')
def read_data_nmt():
"""载入中文-英文数据集"""
with open(d2l.download('cmn-eng'), 'r') as f:
lines = f.readlines()
return lines
def preprocess_nmt(lines):
"""预处理“英语-汉语”数据集"""
new_lines=[re.sub('[^A-Za-z]+', ' ', line).strip().lower() for line in lines]
return new_lines
raw_text = read_data_nmt()
text = preprocess_nmt(raw_text)
print(text[:80])
```
运行该代码后,应该可以正确输出预处理后的英语-汉语数据集的前80个字符。
阅读全文