You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为就职演说语料库TXT文件做词性标注时遇类型错误求助

解决TypeError: expected string or bytes-like object的问题

嘿,我一眼就瞅到你代码里的问题啦,咱们一步步来把它搞定:

问题根源拆解

  1. readlines()返回的是列表,不是字符串:你用file = open('1865-Lincoln.txt', 'r').readlines()得到的是一个包含每一行文本的列表,但word_tokenize()只能接收字符串类型的输入,直接传列表肯定会触发类型错误。
  2. 错误转换分词结果的类型:word_tokenize()本身就会返回分词后的单词列表,你却把它转成了带括号、引号的字符串str(text),而nltk.pos_tag()需要的是纯净的单词列表,不是这种格式化后的字符串,这也会导致报错。

修正后的完整代码

import nltk
from nltk import word_tokenize

# 用with语句安全读取整个文件为字符串(自动关闭文件,避免资源泄漏)
with open('1865-Lincoln.txt', 'r') as file:
    full_text = file.read()

# 对完整文本字符串做分词,得到单词列表
tokens = word_tokenize(full_text)

# 直接把分词列表传给pos_tag做词性标注
tagged_result = nltk.pos_tag(tokens)

# 打印看看标注结果
print(tagged_result)

额外小提醒

如果运行时提示缺少模型,记得先执行这两行下载必要的NLTK资源:

nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')

内容的提问来源于stack exchange,提问作者ArchivistG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:07:37