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

如何对Python嵌套列表内单词做词干提取并保留原嵌套结构

嵌套列表词干提取结构保留实现方法

问题原因

你当前得到一维列表的核心原因是:没有为原列表的每个子列表单独创建存储词干的子容器,所有提取后的词干被直接追加到了最外层的stemmed_actual列表中,丢失了嵌套层级。

方案1:修改原生for循环

在外层遍历每个子列表时,先初始化一个空的临时子列表,把当前子列表的所有词干提取结果存入这个临时子列表,内层遍历完成后再把临时子列表添加到外层结果列表中即可:

from nltk.stem import PorterStemmer  
ps = PorterStemmer()

stemmed_actual = []

for m in tokens:
    # 为每个原列表的子列表创建对应的临时子容器
    sub_stem = []
    for word in m:
        word = ps.stem(word)
        sub_stem.append(word)
    # 临时子列表填充完成后加入外层结果
    stemmed_actual.append(sub_stem)

运行后stemmed_actual的结构就和你预期的stemmed_expected完全一致。

方案2:更简洁的嵌套列表推导式写法

如果你偏好更精简的代码,可以用嵌套列表推导式实现相同效果:

from nltk.stem import PorterStemmer  
ps = PorterStemmer()

stemmed_actual = [[ps.stem(word) for word in sub_list] for sub_list in tokens]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:15:02