我正在嘗試使用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新手,如果代碼中有任何其他錯誤,請告訴我。我真的很感激它!
更新:我改變了代碼的最後一部分,現在的工作:
# 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)
沒錯,沒有定義。目前還不清楚你爲什麼會這麼想;你期望'count'來自哪裏? – jonrsharpe
我認爲變量名是錯誤的。你從來沒有分配過「count」。分配的變量是「wordcount」。計數預計分配在哪裏? – skjoshi
謝謝。我編輯了代碼的最後一部分。 然而,輸出是:{'negative':0,'positive':0}。 爲什麼它仍然是0?文中字典中肯定有負面和正面的詞語......我必須添加什麼來使其數量? @skjoshi –