我正在学习 NLTK Python 课程,该课程在“Text Corpora”上有一个动手问题(在 Katacoda 上),它不接受我下面提到的解决方案。长期以来一直被困在这个问题上。需要完成此动手操作才能在课程中进行前言。
问题防御
- 导入文本语料库 brown。
从语料库棕色中提取标记词列表。将结果存储在 brown_tagged_words
生成 brown_tagged_words 的三元组并将结果存储在 brown_tagged_trigrams 中。
4.对于 brown_tagged_trigrams 的每个 trigram,确定与每个单词关联的标签。这会产生一个元组列表,其中每个元组包含 3 个连续单词的 pos 标签,出现在文本中。将结果存储在 brown_trigram_pos_tags 中。
5.确定 brown_trigram_pos_tags 的频率分布,并将结果存储在 brown_trigram_pos_tags_freq 中。6.打印三元组出现的次数('JJ','NN','IN')
为此,我尝试了以下解决方案:import nltk
from nltk.corpus import brown
brown_tagged_words = [w for w in brown.tagged_words()]
brown_tagged_trigrams = nltk.trigrams(brown_tagged_words)
brown_trigram_pos_tags = [(w1[1],w2[1],w2[1]) for w1,w2,w3 in brown_tagged_trigrams]
brown_trigram_pos_tags_freq = nltk.FreqDist(brown_trigram_pos_tags)
print(brown_trigram_pos_tags_freq[('JJ', 'NN', 'IN')])