📅  最后修改于: 2023-12-03 15:00:50.623000             🧑  作者: Mango
在自然语言处理任务中,常用到停用词来滤除一些常见但无实际意义的词汇。但有时候,我们需要保留某些停用词,因此需要用for循环来逐个判断每个词汇是否为停用词,并将不是停用词的词汇存入一个新的列表中。
以下是一个简单的示例代码,用于将一个字符串中的停用词去除,并将不是停用词的词汇保存到一个列表中。
stop_words = ['the', 'and', 'a', 'an', 'in', 'is', 'of']
text = 'This is a sample sentence, containing stop words.'
words = text.split()
new_words = []
for word in words:
if word.lower() not in stop_words:
new_words.append(word)
print(new_words)
代码解析:
首先,我们定义一个停用词列表 stop_words
,其中包含了常见的停用词。然后,我们定义一个字符串变量 text
,用于测试代码。接着,我们使用 split()
方法将字符串分割成一个个单词,并将它们存在一个列表中。
接下来,我们定义了一个新的空列表 new_words
,用于存放去除停用词后的词汇。我们利用for循环逐个遍历列表中的每个单词,并判断它是否为停用词。如果不是停用词,则将它添加到新的列表 new_words
中。
最后,我们使用 print()
函数输出新的列表,即去除停用词后的词汇列表。
运行上述代码,输出结果如下:
['This', 'sample', 'sentence,', 'containing', 'stop', 'words.']
可以发现,停用词被成功过滤掉了,我们得到了一个不包含停用词的单词列表。
利用for循环来逐个判断单词是否为停用词,并将非停用词保存在一个新的列表中,这是一种比较简单的方法,适用于小规模的文本处理任务。但对于大规模的自然语言处理任务,比如文本分类或机器翻译等,需要采用更加高效的方法,如使用哈希表或倒排索引等数据结构。