簡體   English   中英

將第2欄除以標題中的特定值

[英]Divide column 2 with a particular value that is in the heading

大家好,首先我是編碼的新手,現在正在學習。 所以,請原諒我的疑問!

我的數據如下:

TOPIC:  1 87187.0

Mr 2288.0
's 1633.0
@card@ 1132.0
party 731.0
say 710.0

TOPIC:  2 97854.0

say 2170.0
@card@ 1872.0
people 1078.0
police 562.0

依此類推。...直到主題100的格式相同。

第一行是主題編號及其權重。 以下是該主題中的單詞及其在該主題中的權重。

我想找到每個單詞的概率。 那就是將每個單詞的權重除以其各自的主題權重。 例如,

In topic 1, the word Mr weight is 2288.0 and it's topic weight is 87187.0. So, the probability of the word Mr in Topic 0 is 2288.0/87187.0. Likewise I would like to know the probability of all the words. 

My output should be like:

TOPIC:  1 87187.0

Mr 0.02624 
's 0.01872
@card@ 0.0129

等等...這些值是單詞權重/主題權重的結果。

如果這是正常的列划分,那么我將使用col2 / col1技術,但這頗具挑戰性。 所以,請指導我。 提前致謝!

您什么都不想說出輸出格式,甚至沒有舉任何例子,但這至少應該為您指明正確的方向...

建議的python起點,除了浮點舍入問題之外,您的編輯似乎表明這是您想要的輸出:

divisor = 1.0
with open("input.txt") as fd:
    for line in fd:
        fields = line.strip().split()
        if len(fields) > 0:
            if fields[0] == 'TOPIC:':
                divisor = float(fields[-1])
            if len(fields) == 2:
                fields[-1] = str(float(fields[-1]) / divisor)
        print ' '.join(fields)

使用上面的示例輸入,此代碼將產生:

TOPIC: 1 87187.0

Mr 0.0262424444011
's 0.0187298565153
@card@ 0.0129835870026
party 0.00838427747256
say 0.00814341587622

TOPIC: 2 97854.0

say 0.0221758947003
@card@ 0.0191305414188
people 0.0110164122059
police 0.00574325014818

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM