Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将第2列除以标题中的特定值_Python_Linux - Fatal编程技术网

Python 将第2列除以标题中的特定值

Python 将第2列除以标题中的特定值,python,linux,Python,Linux,各位好,, 首先,我是一名编码新手,现在正在学习。所以,请原谅我的怀疑 我的数据如下: 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,格式相同 这里的第一行是主题编号和权重。以下是该主题中的单词及其在该主题中的权重 我想找

各位好,, 首先,我是一名编码新手,现在正在学习。所以,请原谅我的怀疑

我的数据如下:

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

@特威伯格,但我需要文件保持原样。代码可以工作,但它会删除主题编号和权重。我也需要他们留下来。先生,这是说变量除数没有定义。先生,实际上它产生的结果与输入文件中的结果相同。它实际上并不是分割并给出答案:/@Anamika如果它产生的输出与输入相同,那么您可能键入了错误的内容。我刚刚验证了它的工作原理,并粘贴了实际输出。。。小心缩进——这很容易改变Python代码的含义。另外,请注意,这实际上并没有修改您的输入文件,如果这是您所期望的-您需要捕获输出并将其保存到新文件中…它工作得非常好。我犯了一个错误。非常感谢您的及时帮助:)