私はこの辞書を次のように定義しています:
def train(features):
model = collections.defaultdict(lambda: 1)
for f in features:
model[f] += 1
return model
途中で、pickle を使用して、辞書をテキスト ファイルにダンプしたいと考えています。
f = open('dict.txt', 'wb')
pickle.dump(Nwords, f)
ただし、コードが機能せず、エラーが発生します。どうやらpickle
うまくいかないので、モジュールレベルの関数を使用lambda
して定義する方がよいでしょう。私はすでにここmodel
で答えを読んでいます
残念ながら、私は Python の経験がないので、これを行う方法が正確にはわかりません。私は試した:
def dd():
return defaultdict(int)
def train(features):
## model = defaultdict(lambda: 1)
model = defaultdict(dd)
for f in features:
model[f] += 1
return model
次のエラーが表示されます。
TypeError: unsupported operand type(s) for +=: 'collections.defaultdict' and 'int'
それ以外return defaultdict(int)
は、キーの最初の出現に常にゼロを割り当てますが、1 を割り当てたいのですが、これを修正する方法について何かアイデアはありますか?