我有一个标签文件,其中包含我需要在mobydick文件中找到的单词的频率,基本上我必须从标签中提取一个单词并在mobydick中搜索单词并打印单词及其频率,我有完成下面的程序,但我收到一个错误,因为我能够从标签中提取单词,但无法在mobydick中检查相同。我附上了颂歌和错误。如果有人可以提供帮助,那将会有很大帮助。谢谢。
import pandas as pd
import numpy as np
import nltk, re, pprint
import string
from collections import Counter
from nltk.tokenize import sent_tokenize,word_tokenize
from urllib import request
with open('tags.txt','r') as f:
for line in f:
for word in line.split():
if word in open('MobyDick.txt').read():
c=Counter(word)
print(c)
,错误是
UnicodeDecodeError Traceback(最近一次调用最后一次) in() f为9行: 10为line.split()中的单词: ---> 11如果单词处于打开状态(' MobyDick.txt')。read(): 12 c =计数器(字) 13
C:\ Users \ Pratik \ Anaconda3 \ lib \ encodings \ cp1252.py in decode(self,input,final) 21类IncrementalDecoder(codecs.IncrementalDecoder): 22 def解码(self,input,final = False): ---> 23返回codecs.charmap_decode(input,self.errors,decoding_table)[0] 24 25类StreamWriter(Codec,codecs.StreamWriter):
UnicodeDecodeError:' charmap'编解码器不能解码位置7237中的字节0x9d:字符映射到
答案 0 :(得分:0)
似乎open函数无法解码您的文件。 在打开文件时尝试指定编解码器,否则将使用系统默认编解码器打开文件,该编解码器取决于操作系统。 e.g
if word in open(MobyDick.txt, encoding='utf8').read():
...