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

Python中PorterStemmer输出去除括号引号的方法求助

修改Python词干提取代码以输出无格式的结果

原代码中stemmed是通过列表推导式生成的列表对象,所以print(stemmed)会输出列表的默认字符串形式(包含方括号和引号)。要直接输出词干文本,可通过以下两种方式修改:

方法一:直接取列表单个元素打印

因为你的输入是单个单词,分词后只会得到一个元素,直接通过索引[0]取出列表中的唯一元素即可:

from nltk.tokenize import word_tokenize
from nltk.stem.porter import PorterStemmer
word = 'gardening'
tokens = word_tokenize(word.lower())
stemmer = PorterStemmer()
stemmed = [stemmer.stem(token) for token in tokens]
print(stemmed[0])  # 提取列表第一个元素打印

运行后会直接输出:garden

方法二:用字符串拼接输出(通用场景)

如果后续处理的是多单词文本,分词后会得到多个词干,用' '.join(stemmed)可以将列表中的元素拼接成空格分隔的字符串,无论元素数量多少都能正常输出:

from nltk.tokenize import word_tokenize
from nltk.stem.porter import PorterStemmer
word = 'gardening'
tokens = word_tokenize(word.lower())
stemmer = PorterStemmer()
stemmed = [stemmer.stem(token) for token in tokens]
print(' '.join(stemmed))  # 拼接列表元素为字符串

此方法在单元素场景下同样会输出garden,多元素时会输出类似garden plant的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:35:19