Как я могу получить файл с пометкой pos как вывод, когда я даю текстовый файл как ввод?

Это код, который я пытаюсь, но код генерирует ошибку.

import nltk
from nltk.corpus import stopwords 
from nltk.tokenize import word_tokenize, sent_tokenize 
stop_words = set(stopwords.words('english')) 

file_content = open("Dictionary.txt").read()
tokens = nltk.word_tokenize(file_content)

# sent_tokenize is one of instances of 
# PunktSentenceTokenizer from the nltk.tokenize.punkt module 

tokenized = sent_tokenize(tokens) 
for i in tokenized: 

    # Word tokenizers is used to find the words 
    # and punctuation in a string 
    wordsList = nltk.word_tokenize(i) 

    # removing stop words from wordList 
    wordsList = [w for w in wordsList if not w in stop_words] 

    # Using a Tagger. Which is part-of-speech 
    # tagger or POS-tagger. 
    tagged = nltk.pos_tag(wordsList) 

    print(tagged) 

Ошибка:

Traceback (последний вызов был последним): файл "tag.py", строка 12, в файле tokenized = sent_tokenize(tokens) "/home/mahadev/anaconda3/lib/python3.7/site-packages/nltk/tokenize/init. ру",

строка 105, в sent_tokenize возвращает tokenizer.tokenize(текст) Файл "/home/mahadev/anaconda3/lib/python3.7/site-packages/nltk/tokenize/punkt.py",

строка 1269, в списке возврата токена (self.sentences_from_text(text, realign_boundaries)) Файл "/home/mahadev/anaconda3/lib/python3.7/site-packages/nltk/tokenize/punkt.py",

строка 1323, в предложениях_от_текста возвращает [текст [s:e] для s, е в self.span_tokenize(text, realign_boundaries)] файл "/home/mahadev/anaconda3/lib/python3.7/site-packages/nltk/tokenize/ punkt.py",

строка 1323, взамен [текст [s:e] для s, e в self.span_tokenize(text, realign_boundaries)] файл "/home/mahadev/anaconda3/lib/python3.7/site-packages/nltk/tokenize/punkt.py",

строка 1313, в span_tokenize для sl в слайсах: файл "/home/mahadev/anaconda3/lib/python3.7/site-packages/nltk/tokenize/punkt.py",

строка 1354, в _realign_boundaries для sl1, sl2 в _pair_iter(фрагменты): файл "/home/mahadev/anaconda3/lib/python3.7/site-packages/nltk/tokenize/punkt.py",

строка 317, в _pair_iter prev = next(it) файл "/home/mahadev/anaconda3/lib/python3.7/site-packages/nltk/tokenize/punkt.py",

строка 1327, в _slices_from_text для совпадения в self._lang_vars.period_context_re().finditer(text): TypeError: ожидаемая строка или байтовоподобный объект

2 ответа

Понятия не имею, что должен делать ваш код, но получаемая вами ошибка вызвана типом данных для вашей переменной токенов. Ему нужны строки, но он получает список другого типа данных.

Не знаю, что должен делать ваш код, но ошибка, которую вы получаете, вызвана типом данных для вашей переменной tokens. Он хочет строки, но получает список данных другого типа.

Вы должны изменить эту строку на:

tokens = str(nltk.word_tokenize(file_content))
Другие вопросы по тегам