2014-03-31 37 views
0

我試圖在Python中創建一個情感分析器,它下載文本並根據負面和正面的單詞列表進行分析。對於文本內每一個匹配的文字,在poswords.txt應該有一個+1得分和文本內的每一個匹配negwords.txt應該有一個-1得分,文本的總體得分將是情緒評分。這是我試圖做到這一點,但我一直在剛開評價爲0。將下載的字符串與Python中的列表進行比較

下面的答案似乎不工作,我不斷收到的0

​​

回答

1

poswords景氣指數和你的代碼中的negwords只是文件句柄,你不會讀這些文件中的單詞。

這裏:

split = text.split() 
poswords = open('poswords.txt','r') 
pos = [] 
for line in poswords: 
    pos.append(line.strip()) 
for word in split: 
    if word in pos: 
     sentimentScore +=1 
poswords.close() 

negwords = open('negwords.txt','r') 
neg = [] 
for line in negwords: 
    neg.append(line.strip()) 
for word in split: 
    if word in neg: 
     sentimentScore -=1 
negwords.close() 

如果文件是巨大的,上面的是不是一個最佳的解決方案。創建字典正反字:

input_text = text.split() # avoid using split as a variable name, since it is a keyword 
poswords = open('poswords.txt','r') 
pos_dict = defaultdict(int) 
for line in poswords: 
    pos_dict[line.strip()] += 1 
poswords.close() 

negwords = open('negwords.txt','r') 
neg_dict = defaultdict(int) 
for line in negwords: 
    neg_dict[line.strip()] += 1 
negwords.close() 

sentiment_score = 0 
for word in input_text: 
    if word in pos_dict: 
     sentiment_score += 1 
    elif word in neg_dict: 
     sentiment_score -=1 
+0

嗨Warunsl,感謝您的快速回復,然而,這段代碼似乎沒有工作,我仍然在所有的「INPUT_TEXT」得到的0景氣指數我正在通過分析儀 – user3482449

相關問題