我正在使用以下模块:
from nltk.tokenize import word_tokenize
from nltk.util import ngrams
def makeNGrams(filename, n):
variable_NGrams = ngrams(word_tokenize(filename), n)
return [' '.join(grams) for grams in variable_NGrams]
只需输入我想要使用它的文本即可,但导入文本文件不起作用。
当我像这样编写模块时
from nltk.tokenize import word_tokenize
from nltk.util import ngrams
def makeNGrams(filename, n):
text = open(filename, 'r').read()
variable_NGrams = ngrams(word_tokenize(text), n)
return [' '.join(grams) for grams in variable_NGrams]
并使用它打开一个特定的txt文件,我得到了大量的错误
如何在此模块中导入和使用文本文件?
答案 0 :(得分:0)
您有两个问题之一。您的文件名是全名,并且您不需要附加.txt
,或者它不包含正确的文件扩展名,您需要正确添加它。
选项1:
def makeNGrams(filename, n):
# Note the difference here
text = open(filename, 'r').read()
variable_NGrams = ngrams(word_tokenize(text), n)
return [' '.join(grams) for grams in variable_NGrams]
选项2:
def makeNGrams(filename, n):
# Note the difference here
text = open('{}.txt'.format(filename), 'r').read()
variable_NGrams = ngrams(word_tokenize(text), n)
return [' '.join(grams) for grams in variable_NGrams]
答案 1 :(得分:0)
打开文件时最好使用try除块。这种方式更容易发现错误
import pprint
尝试:
with open('filname', 'r') as f:
text = f.read()
除了例外e:
pprint.pprint(e)
FileNotFoundError(2,'没有这样的文件或目录')