NLP 中的词性标注
POS Tagging in NLP
我正在学习 NLTK Python 的课程,该课程在 "Text Corpora" 上有一个实践问题(在 Katacoda 上),它不接受我在下面提到的解决方案。长期以来一直被困在这个问题上。需要完成这个动手才能继续课程前言。
问题定义
- 导入文本语料库 brown。
从语料库 brown 中提取标记词列表。将结果存储在 brown_tagged_words
中
生成brown_tagged_words的八卦并将结果存储在brown_tagged_trigrams中。
4.Forbrown_tagged_trigrams的每一个八卦,确定每个字对应的标签。这会产生一个元组列表,其中每个元组包含文本中出现的 3 个连续单词的 pos 标签。将结果存储在 brown_trigram_pos_tags.
中
5.Determinebrown_trigram_pos_tags的频数分布,结果存入brown_trigram_pos_tags_freq。
6.Print八卦出现的次数('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')])
试试这个:-
('IN', 'AT', 'AT')
你会得到结果:
43271
你得到 0 因为没有出现 ('JJ', 'NN', 'IN').
brown_trigram_pos_tags = [(w1[1],w2[1],w3[1]) for w1,w2,w3 in brown_tagged_trigrams]
此处将 W2 更改为 w3,这将给出大约 8 的值
import nltk
from nltk.corpus import brown
brown_tagged_words = brown.tagged_words()
brown_tagged_trigrams = [(w1,w2,w3) for w1,w2,w3 in 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')])
试试这个...
我正在学习 NLTK Python 的课程,该课程在 "Text Corpora" 上有一个实践问题(在 Katacoda 上),它不接受我在下面提到的解决方案。长期以来一直被困在这个问题上。需要完成这个动手才能继续课程前言。
问题定义
- 导入文本语料库 brown。
从语料库 brown 中提取标记词列表。将结果存储在 brown_tagged_words
中
生成brown_tagged_words的八卦并将结果存储在brown_tagged_trigrams中。
4.Forbrown_tagged_trigrams的每一个八卦,确定每个字对应的标签。这会产生一个元组列表,其中每个元组包含文本中出现的 3 个连续单词的 pos 标签。将结果存储在 brown_trigram_pos_tags.
中5.Determinebrown_trigram_pos_tags的频数分布,结果存入brown_trigram_pos_tags_freq。 6.Print八卦出现的次数('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')])
试试这个:-
('IN', 'AT', 'AT')
你会得到结果: 43271
你得到 0 因为没有出现 ('JJ', 'NN', 'IN').
brown_trigram_pos_tags = [(w1[1],w2[1],w3[1]) for w1,w2,w3 in brown_tagged_trigrams]
此处将 W2 更改为 w3,这将给出大约 8 的值
import nltk
from nltk.corpus import brown
brown_tagged_words = brown.tagged_words()
brown_tagged_trigrams = [(w1,w2,w3) for w1,w2,w3 in 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')])
试试这个...