0
私はストップワードフィルタで遊んでいます 記事を含むファイルへのパスをスクリプトに送ります。 私はエラーを取得するしかし:エラー: 'file'オブジェクトに 'lower'という属性がありません
Traceback (most recent call last):
File "stop2.py", line 17, in <module>
print preprocess(sentence)
File "stop2.py", line 10, in preprocess
sentence = sentence.lower()
AttributeError: 'file' object has no attribute 'lower'
私のコードは、同様の下に取り付けられている。 引数
# -*- coding: utf-8 -*-
from __future__ import division, unicode_literals
import string
import nltk
from nltk.tokenize import RegexpTokenizer
from nltk.corpus import stopwords
import re
def preprocess(sentence):
sentence = sentence.lower()
tokenizer = RegexpTokenizer(r'\w')
tokens = tokenizer.tokenize(sentence)
filtered_words = [w for w in tokens if not w in stopwords.words('english')]
return " ".join(filtered_words)
sentence = open('pathtofile')
print preprocess(sentence)
私は理解しますが、このトレースエラーが解消されない.....トレースバック(最新の呼び出しの最後):ファイル「stop2.py」、 (filf_wordsのfのためのf.decode( 'utf-8'))ファイル "stop2.py"、行14、前処理の戻り値u "" "" " stop_py "、line 14、in return" "" "" ".join(f.decode( 'utf-8')for filtered_words)ファイル" /usr/lib/python2.7/encodings/utf_8 UnicodeDecodeError: 'utf8'コーデックは、位置0のバイト0xe2をデコードできません:データの予期しない終了(デコードの戻りコードcodecs.utf_8_decode(input、errors、True) –
Silas