【问题标题】:How to remove stop words from list of lists in python如何从python列表中删除停用词
【发布时间】:2019-09-10 10:30:41
【问题描述】:

我有一组格式为列表的推文。我使用的代码用于删除停用词,但它不返回列表列表,而是返回一个大列表。我需要将其保留为列表列表,以便以后进行朴素贝叶斯操作,那么我该如何更改它?

from nltk.corpus import stopwords
stop_words = set(stopwords.words('english'))

OAGTokensWOStop = []
for i in range(2708):
    for tweet in OAG_Tokenized[i]:
        if tweet not in stop_words:
            OAGTokensWOStop.append(tweet)

我收到的所有单词都没有停用词的大列表,但我需要将输出保留为列表列表。

【问题讨论】:

  • 您的列表中有哪些子列表?
  • 也许你应该在for 循环中创建新列表,在这个循环中添加单词,最后将列表添加到主列表。
  • 所以列表的列表格式为 [['well', 'said','] , ['loot', 'of', 'people'], ...]跨度>

标签: python nltk stop-words


【解决方案1】:

append(tweet) 将推文的内容附加到OAGTokensWOStop 列表中。

您希望它以列表的形式附加推文,因此您应该这样做:

import numpy as np
OAGTokensWOStop = []
for i in range(2708):
    for tweet in OAG_Tokenized[i]:
        if tweet not in stop_words:
            OAGTokensWOStop.append(np.array(tweet))

在这里,您将推文作为一个 numpy 数组附加到列表中。因此创建了一个列表列表。

【讨论】:

    【解决方案2】:

    我猜。

    您必须在for 循环内创建空列表,将单词添加到此列表中,最后在循环结束时将列表添加到OAGTokensWOStop

    OAGTokensWOStop = []
    for i in range(2708):
    
        row = []
        for tweet in OAG_Tokenized[i]:
            if tweet not in stop_words:
                row.append(tweet)
    
        OAGTokensWOStop.append(row)
    

    【讨论】:

      【解决方案3】:

      您正在为自己创建一个列表。

      from nltk.corpus import stopwords
      stop_words = set(stopwords.words('english'))
      
      OAGTokensWOStop = []
      for item in OAG_Tokenized:
          temp = []
          for tweet in item:
              if tweet not in stop_words:
                  temp.append(tweet)
          OAGTokensWOStop.append(temp)
      
      

      【讨论】:

        猜你喜欢
        • 2021-12-22
        • 1970-01-01
        • 2018-09-28
        • 2021-02-02
        • 2021-05-26
        • 1970-01-01
        • 2016-09-25
        • 2015-05-30
        • 1970-01-01
        相关资源
        最近更新 更多