0
私は、そのpaulryan.txtファイルの各行がどのように正または負であるかを示すプログラムを作成しようとしています。私はopinion_lexiconを使用しています。ファイルは '_io.TextIOWrapper'ですPython .wordsの問題?
.wordsの代わりに使用できるものはありますか?
その他のあまり重要でない問題:私の全部のpaulryan.txtファイルを行単位でトークン化したまま小文字にする方法はありますか? opinion_lexiconに小文字の単語しかないので、私が全体を小文字にしないと、正確な正または負のスコアが得られません。
import nltk
from nltk.corpus import opinion_lexicon
from nltk.tokenize.simple import (LineTokenizer, line_tokenize)
poswords = set(opinion_lexicon.words("positive-words.txt"))
negwords = set(opinion_lexicon.words("negative-words.txt"))
f=open("paulryan.txt", "rU")
raw = f.read()
token= nltk.line_tokenize(raw)
print(token)
def finddemons():
for x in token:
y = token.words()
percpos = len([w for w in token if w in poswords ])/len(y)
percneg = len([w for w in token if w in negwords ])/len(y)
print(x, "pos:", round(percpos, 3), "neg:", round(percneg, 3))
finddemons()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in finddemons
AttributeError: 'list' object has no attribute 'words'
あなたはNLTKとの 'spacy'インタフェースを混乱させるようです。=' nltk import word_tokenize;を試してください。 y = word_tokenize(トークン) ' – alvas
Hmmm。さて、私はそれを試みましたが、それはすべてを1つの大きなものにマージしました。:/行ごとに分ける必要があります。 – rlavalla