2017-06-29 6 views
0

J'ai fait plusieurs tentatives d'autres questions déjà traitées sur le sujet et mon code retourne toujours l'erreur. Le seul but de ce code est de mettre juste l'étiquette dans les phrases d'un document et de vidage dans un fichier les phrases qui contiennent plus d'occurrences N d'un point de vente particulier de votre choix:UnicodeEncodeError lors de l'écriture du fichier sélectionné

import os 
import nlpnet 
import codecs 

TAGGER = nlpnet.POSTagger('pos-pt', language='pt') 


# You could have a function that tagged and verified if a 
# sentence meets the criteria for storage. 

def is_worth_saving(text, pos, pos_count): 
    # tagged sentences are lists of tagged words, which in 
    # nlpnet are (word, pos) tuples. Tagged texts may contain 
    # several sentences. 
    pos_words = [word for sentence in TAGGER.tag(text) 
      for word in sentence 
      if word[1] == pos] 
    return len(pos_words) >= pos_count 



with codecs.open('dataset.txt', encoding='utf8') as original_file: 
with codecs.open('dataset_new.txt', 'w') as output_file: 
    for text in original_file: 
     # For example, only save sentences with more than 5 verbs in it 
     if is_worth_saving(text, 'V', 5): 
      output_file.write(text + os.linesep) 

erreur compilé:

Traceback (most recent call last): 
    File "D:/Word Sorter/Classifier.py", line 31, in <module> 
    output_file.write(text + os.linesep) 
UnicodeEncodeError: 'ascii' codec can't encode characters in position 161-162: ordinal not in range(128) 

Répondre