循环时累积文本中每行的结果

时间:2016-03-18 00:44:43

标签: python statistics nlp

为什么我在此示例中为每行累积了结果:

我的文本示例包含两行:

我需要将文本中每行的结果作为单独的结果

for row in sample_file:
    for word in row.split():
        for c in word:
            product = product*(float(char_value_en.get(c, 0)))
final_prob_es = prob_es*tweet_prob_es
print 'Spanish Prob'+' '+'='+' '+str(final_prob_es)
print row

我的输出是:

西班牙语Prob = 0.698565816073

西班牙语Prob = 0.836227448039

西班牙语Prob = 0.957639196166

西班牙语Prob = 1.14635466369

1 个答案:

答案 0 :(得分:0)

根据你的意见

<强> rows.txt的

aab
abc
acc

<强> script.py

char_value_en = {
    'a': 0.1,
    'b': 0.2,
    'c': 0.3
}

res = {}

with open('rows.txt') as f:
    for row in f:
        for word in row.split():
            for c in word:
                if c not in res:
                    res[c] = 1
                res[c] *= char_value_en.get(c, 1)

print(res)

# >> {'a': 0.00010000000000000003, 'b': 0.04000000000000001, 'c': 0.027}