【问题标题】:How to get a nested list by stemming the words inside the nested lists?如何通过词干嵌套列表中的单词来获取嵌套列表?
【发布时间】:2022-01-10 20:04:54
【问题描述】:

我有一个 Python 列表,其中包含多个子列表,其标记为 tokens。 我想阻止其中的标记,以便输出为stemmed_expected

tokens = [['cooked', 'lovely','baked'],['hotel', 'going','liked'],['room','looking']]

stemmed_expected: [['cook', 'love','bake'],['hotel', 'go','like'],['room','look']]

我尝试的for循环如下:

from nltk.stem import PorterStemmer  
ps = PorterStemmer()

stemmed_actual = []

for m in tokens:
    for word in m:
        word = ps.stem(word)
        stemmed_actual.append(word)

但是这个for循环的输出是:

stemmed_actual = ['cook', 'love', 'bake', 'hotel', 'go', 'like', 'room', 'look']

如何修改 for 循环以获取子列表中的词干,就像它在 stemmed_expected 中一样?

【问题讨论】:

    标签: python list for-loop nested-lists stemming


    【解决方案1】:

    您可以使用嵌套列表推导:

    from nltk.stem import PorterStemmer
    
    tokens = [['cooked', 'lovely','baked'],['hotel', 'going','liked'],['room','looking']]
    
    ps = PorterStemmer()
    stemmed = [[ps.stem(word) for word in sublst] for sublst in tokens]
    
    print(stemmed)
    # [['cook', 'love', 'bake'], ['hotel', 'go', 'like'], ['room', 'look']]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-06
      • 1970-01-01
      • 2020-04-14
      • 2022-06-14
      • 1970-01-01
      • 2020-12-03
      相关资源
      最近更新 更多