该代码是去除停用词版,因为文本中充满了大量的停用词,这样得出的三连词是无意义的。
这段代码的含义如下:
1. `from nltk.corpus import stopwords`:从nltk.corpus模块中导入stopwords,用于获取常用停用词。
2. `from nltk import ngrams`:从nltk模块中导入ngrams函数,用于生成n元组。
3. `stop_words = set(stopwords.words(‘english’))`:将英语停用词列表存储到名为stop_words的集合变量中。
4. `text = “This is translationclub! We study and make progress here.”`:定义一个字符串变量text,存储要处理的文本。↳
5. `text1 = text.split()`:将文本字符串按照空格分割成单词,并将结果存储到名为text1的列表变量中。
6. `grams_3 = ngrams([word.lower() for word in text1],3)`:使用ngrams函数生成text1中的三元组(三个单词的组合),并将结果存储到名为grams_3的变量中。这里通过列表推导式将text1中的单词转换为小写形式。
7. `grams_3 = list(set(grams_3))`:将grams_3中的元素转换为集合,去除重复的元组,并再次转换为列表。
8. `for g in grams_3:`:遍历grams_3中的每一个元组,将当前元组赋值给变量g。
9. `if len(set(g)&set(stop_words)) == 0:`:判断当前元组g中的单词是否与停用词stop_words没有交集,即当前元组中没有停用词。
10. `print(g)`:如果当前元组g中没有停用词,则打印输出该元组。
总结:该代码使用nltk库对文本进行处理,首先将文本分割为单词,然后生成三元组(三个单词的组合)。接着,根据英语停用词列表,筛选出不包含停用词的三元组,并将结果打印输出。
运行结果如下:
(‘make’, ‘progress’, ‘here.’)
每日啃一段代码,日积月累,我们可以跨越这条鸿沟,若是还未入门Python,可加入我们的粉丝群免费获取《第一本书Python》,快速入门!
往期代码合集可后台回复代码分享或者加入翻译圈粉丝群获取,粉丝群还有其它资源哦。
参考书藉:Python语言数据分析 管新潮 著
特别说明:本文仅供学习交流,如有不妥欢迎后台联系小编。
– END –
翻译圈公众号旨在为读者提供名师和专家对口笔译的真知灼见,CATTI考试和MTI入学考试信息,翻译等语言服务就业资讯,以及口笔译学习资源和知识,希望在翻译之路上,为大家助上一臂之力。欢迎大家积极留言,为我们提供建设性意见,我们共同进步!
原文作者:吴志雄
推文编辑:张子明