2017-08-01 12 views
0

私は金融テキストの音色を分類するためにLoughran/McDonald辞書を使用しようとしています。テキスト分類 - エラー: 'count'が定義されていません

# Get tone dictionary 

import re 

with open('lmdict.txt') as list: 
    lines = list.readlines() 
dict = {} 
for l in lines: 
    if l[0:2] == '>>': 
     cat = l[2:].strip() 
     dict[cat] = [] 
    else: 
     l = l.strip() 
     if l: 
      dict[cat].append(l) 

# Set up regular expressions 
regex = {} 
for cat in dict.keys(): 
    pattern = '\\b(?:' + '|'.join(dict[cat]) + ')\\b' 
    regex[cat] = re.compile(pattern, re.IGNORECASE) 

# Get tone count 
text = "Bsp.text" 

wordcount = len(text.split()) 
for cat in count.keys(): 
    count[cat] = len(regex[cat].findall(text)) 
print(count) 

いくつかのエラーは前に発生したので、私は、私が好きな文書を割り当てることが再インポートおよびテキスト=「Bsp.text」を追加しました:ここ

は、私はオンラインを見つけたコードです変数のテキスト(私はそれを正しくしたと思いますか?)として分類します。 残念ながら、別のエラーが今そこにある:

Traceback (most recent call last): 
    File "C:\Users\M\Desktop\Python34\xWordlist.py", line 25, in <module> 
    for cat in count.keys(): 
NameError: name 'count' is not defined 

どのように私はこの問題を解決することができますか?私はPythonの初心者ですので、コードに間違いがある場合は教えてください。私は本当にそれを感謝します!

UPDATE:私はそれが今取り組んでいる、コードの最後の部分を変更:

# Get tone count 

with open('Bsp.txt', 'r') as content_file: 
    content = content_file.read() 


count = {} 
wordcount = len(content.split()) 
for cat in dict.keys(): 
    count[cat] = len(regex[cat].findall(content)) 

print(count) 
+0

そうです、それは定義されていません。なぜあなたはそれがそうであろうと思ったのかは明らかではありません。あなたは「カウント」がどこから来ると思いますか? – jonrsharpe

+1

私は変数名が間違っていると思います。あなたは決して 'count'を割り当てませんでした。割り当てられる変数は 'wordcount'です。 'count 'はどこに割り当てられますか? – skjoshi

+0

ありがとうございます。私はコードの最後の部分を編集しました。 出力は{'負':0、 '正':0}です。 なぜまだ0ですか?確かに、テキストの中の辞書には否定的なものと肯定的なものがあります...それを数えるために何を追加しなければなりませんか? @skjoshi –

答えて

0

あなた変数が割り当てられることはありません数... はおそらく、あなたは意味:

count = {} 
for cat in dict.keys(): 
    ... 

また、カウント変数の増分は表示されません。 はおそらく:

count[cat] = len(regex[cat].findall(text)) 

は次のようになります。ある変数の名前としてdictを使用して:

if cat not in count: 
    count[cat] = 0 
count[cat] += len(regex[cat].findall(text)) 

私は '=' 記号...

注前に '+' を追加しました最高のことではなく、 が予期せぬ結果につながる可能性があり、せいぜい読者を混乱させるだけです。 dictは、辞書を表す組み込みクラスです。

+1

あなたは、 "dict"が良い名前ではないことに気づいた方がいいかもしれません。これはPythonの組み込みの名前です。 – Baldrickk

+0

ありがとう、私は編集しました – aramaki

+0

ありがとうございました。私はコードの最後の部分を編集しました。 出力は{'負':0、 '正':0}です。 なぜまだ0ですか?確かに、テキストの中の辞書には否定的なものと肯定的なものがあります...それを数えるために何を追加しなければなりませんか? @Baldrickk –

関連する問題