POS-теги в НЛП

Я делаю курс в NLTK Python, который имеет практическую проблему (на Katacoda) на "Text Corpora", и он не принимает мое решение, упомянутое ниже. Застрял в этой проблеме с давних пор. Необходимо завершить это практическое руководство, чтобы продолжить предисловие в курсе.

Определение проблемы

  1. Импортируйте текст корпуса коричневого цвета.
  2. Извлеките список отмеченных слов из коричневого цвета. Сохранить результат в brown_tagged_words

  3. Создайте триграммы brown_tagged_words и сохраните результат в brown_tagged_trigrams.

4. Для каждой триграммы brown_tagged_trigrams определите теги, связанные с каждым словом. В результате получается список кортежей, где каждый кортеж содержит pos-теги из 3 последовательных слов, встречающихся в тексте. Сохраните результат в 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')])

1 ответ

brown_trigram_pos_tags = [(w1[1],w2[1],w3[1]) for w1,w2,w3 in brown_tagged_trigrams]

Здесь измените W2 на w3, это даст значение около 8

Попробуй это:-

('IN', 'AT', 'AT')

Вы получите результат: 43271

Вы получаете 0, потому что нет вхождения ('JJ', 'NN', 'IN').

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')])

Попробуй это...

Другие вопросы по тегам