我的程序是查找类型数,令牌数和类型到令牌比。但是,我不知道如何告诉Python ttr的答案不是整数。
from nltk.corpus import inaugural
print inaugural.fileids()
tokens = inaugural.words("1789-Washington.txt")
numtokens = len(tokens)
print numtokens
types = sorted(set(tokens))
numtypes = len(types)
print numtypes
# This is the part I'm unsure about.
ttr = numtypes/numtokens
print ttr
答案 0 :(得分:2)
如果您使用的是Python 3,则除法运算符/
默认执行浮点除法:
>>> 3 / 2
1.5
>>> 4 / 2
2.0
因为整数除法由//
运算符处理。
在Python 2.x中,如果要在整数除法中使用小数精度,可以将分母或分母转换为float()
,如下所示:
ttf = float(numtypes) / numtokens
或者,正如tobias_k指出的那样,你可以做到
>>> from __future__ import division
>>> 3 / 2
1.5
在Python 2.x中获得Python3-esque划分