Выходные данные в случае 3 не соответствуют ожидаемым и не работают при маркировке POS.Python

Программы на Python
Anonymous
Выходные данные в случае 3 не соответствуют ожидаемым и не работают при маркировке POS.

Сообщение Anonymous »

Определите функцию под названием «tagPOS», которая принимает три параметра.
Первый параметр «textcontent» представляет собой строку, второй параметр «taggedtextcontent» также является строкой. ,
и третий параметр «defined_tags» — словарь. Заглушка кода определения функции приведена в редакторе.
выполните следующую заданную задачу.
  • Тег часть речи для заданных слов textcontent и сохраните результат в переменной nltk_pos_tags(подсказка: используйте pos_tag)
  • Отметьте часть речи для заданных слов taggedtextcontent с помощью метода Tagged_Text_method. Сохраните результат в переменной tagged_pos_tag.
  • Отметьте часть речи для заданных слов textcontent и используйте define_tags в качестве модели в методе Lookup Tagger. Сохраните результат в переменной unigram_pos_tag.
Верните nltk_pos_tags, tagged_pos_tag, unigram_pos_tag переменные из функции.
Формат ввода для пользовательского тестирования:
Ввод со стандартного ввода будет обработан и передан следующим образом. к функции.
Первая строка содержит строку textcontent. Текстовое содержимое используется для разметки частей речи.
Вторая строка содержит элемент taggedtextcontent. Текстовое содержимое с тегами используется для маркировки части речи, содержащей сам тег.
Пример случая 1:
Пример ввода 1:
Параметры функции STDIN
----- -------------------Python великолепен. → textcontent = «Python — это круто».
Python/NNP — это/VBZ потрясающе/DT ./. → taggedtextcontent = 'Python/NNP is/VBZ Awesome/DT ./.'
Пример ожидаемого результата для данного ввода 1:
[(' Python', 'NNP'), ('is', 'VBZ'), ('потрясающе', 'JJ'), ('.', '.')]
[ ('Python', 'NNP'), ('is', 'VBZ'), ('потрясающе', 'DT'), ('.', '.')]
[('Python', None), ('is', 'VERB'), ('awesome', 'ADJ'), ('.', '.')]
Объяснение:
В первой строке отображаются слова с тегами POS с использованием pos_tag для заданного текстового содержимого.
Во второй строке отображаются слова с тегами POS. используя метод Tagged Text для данного taggedtextcontent.
Третья строка отображает слова, помеченные POS, с использованием метода Lookup Tagger для данного textcontent.
import nltk
from nltk import pos_tag, word_tokenize
from nltk.tag import UnigramTagger

def tagPOS(textcontent, taggedtextcontent, defined_tags):
# Step 1: NLTK POS Tagging
nltk_pos_tags = pos_tag(word_tokenize(textcontent))

# Step 2: Tagging Text Method
tagged_pos_tag = []
tagged_words = taggedtextcontent.split()
for tagged_word in tagged_words:
word, tag = tagged_word.rsplit('/', 1)
tagged_pos_tag.append((word, tag))

# Step 3: Lookup Tagger Method
# Create a UnigramTagger based on defined_tags
unigram_tagger = UnigramTagger(model=defined_tags)
words = word_tokenize(textcontent)
unigram_pos_tags = unigram_tagger.tag(words)

return nltk_pos_tags, tagged_pos_tag, unigram_pos_tags

Case 1:

Python is awesome.
Python/NNP is/VBZ awesome/DT ./.

My Output:
[('Python', 'NNP'), ('is', 'VBZ'), ('awesome', 'JJ'), ('.', '.')]
[('Python', 'NNP'), ('is', 'VBZ'), ('awesome', 'DT'), ('.', '.')]
[('Python', None), ('is', 'VERB'), ('awesome', 'ADJ'), ('.', '.')]

Expected Output:
[('Python', 'NNP'), ('is', 'VBZ'), ('awesome', 'JJ'), ('.', '.')]
[('Python', 'NNP'), ('is', 'VBZ'), ('awesome', 'DT'), ('.', '.')]
[('Python', None), ('is', 'VERB'), ('awesome', 'ADJ'), ('.', '.')]

Case 2:
If eating three-egg omelets causes weight-gain, budgie eggs are a good substitute.
If/IN eating/VBG three/CD -/: egg/NN omelets/NNS causes/NNS weight/NN -/: gain/NN ,/, budgie/NNP eggs/NNS are/VBP a/DT good/JJ substitute/NN ./.

My Output:
[('If', 'IN'), ('eating', 'JJ'), ('three-egg', 'JJ'), ('omelets', 'NNS'), ('causes', 'VBZ'), ('weight-gain', 'NN'), (',', ','), ('budgie', 'NN'), ('eggs', 'NNS'), ('are', 'VBP'), ('a', 'DT'), ('good', 'JJ'), ('substitute', 'NN'), ('.', '.')]
[('If', 'IN'), ('eating', 'VBG'), ('three', 'CD'), ('-', ':'), ('egg', 'NN'), ('omelets', 'NNS'), ('causes', 'NNS'), ('weight', 'NN'), ('-', ':'), ('gain', 'NN'), (',', ','), ('budgie', 'NNP'), ('eggs', 'NNS'), ('are', 'VBP'), ('a', 'DT'), ('good', 'JJ'), ('substitute', 'NN'), ('.', '.')]
[('If', 'ADP'), ('eating', 'VERB'), ('three-egg', None), ('omelets', None), ('causes', 'VERB'), ('weight-gain', None), (',', '.'), ('budgie', None), ('eggs', 'NOUN'), ('are', 'VERB'), ('a', 'DET'), ('good', 'ADJ'), ('substitute', 'NOUN'), ('.', '.')]

Expected Output:
[('If', 'IN'), ('eating', 'JJ'), ('three-egg', 'JJ'), ('omelets', 'NNS'), ('causes', 'VBZ'), ('weight-gain', 'NN'), (',', ','), ('budgie', 'NN'), ('eggs', 'NNS'), ('are', 'VBP'), ('a', 'DT'), ('good', 'JJ'), ('substitute', 'NN'), ('.', '.')]
[('If', 'IN'), ('eating', 'VBG'), ('three', 'CD'), ('-', ':'), ('egg', 'NN'), ('omelets', 'NNS'), ('causes', 'NNS'), ('weight', 'NN'), ('-', ':'), ('gain', 'NN'), (',', ','), ('budgie', 'NNP'), ('eggs', 'NNS'), ('are', 'VBP'), ('a', 'DT'), ('good', 'JJ'), ('substitute', 'NN'), ('.', '.')]
[('If', 'ADP'), ('eating', 'VERB'), ('three-egg', None), ('omelets', None), ('causes', 'VERB'), ('weight-gain', None), (',', '.'), ('budgie', None), ('eggs', 'NOUN'), ('are', 'VERB'), ('a', 'DET'), ('good', 'ADJ'), ('substitute', 'NOUN'), ('.', '.')]

Case 3:

My Output:
[('When', 'WRB'), ('money', 'NN'), ('was', 'VBD'), ('tight', 'RB'), (',', ','), ('he', 'PRP'), ("'d", 'MD'), ('get', 'VB'), ('his', 'PRP$'), ('lunch', 'NN'), ('money', 'NN'), ('from', 'IN'), ('the', 'DT'), ('local', 'JJ'), ('wishing', 'NN'), ('well', 'RB'), ('.', '.')]
[('When', 'WRB'), ('money', 'NN'), ('was', 'VBD'), ('tight', 'JJ'), (',', ','), ('he', 'PRP'), ("'", 'POS'), ('d', '-None-'), ('get', 'VB'), ('his', 'PRP$'), ('lunch', 'NN'), ('money', 'NN'), ('from', 'IN'), ('the', 'DT'), ('local', 'JJ'), ('wishing', 'VBG'), ('well', 'RB'), ('.', '.')]
[('When', 'ADV'), ('money', 'NOUN'), ('was', 'VERB'), ('tight', 'ADV'), (',', '.'), ('he', 'PRON'), ("'d", None), ('get', 'VERB'), ('his', 'DET'), ('lunch', 'NOUN'), ('money', 'NOUN'), ('from', 'ADP'), ('the', 'DET'), ('local', 'ADJ'), ('wishing', 'VERB'), ('well', 'ADV'), ('.', '.')]


Подробнее здесь: https://stackoverflow.com/questions/786 ... s-on-pos-t

Вернуться в «Python»