【发布时间】:2017-12-08 11:04:00
【问题描述】:
我在NLTK中训练了PunktSentenceTokenizer,得到了一个pickle文件“learnt.pickle”:
ccopy_reg
_reconstructor
p0
(cnltk.tokenize.punkt
PunktSentenceTokenizer
p1
c__builtin__
object
p2
Ntp3
Rp4
(dp5
S'_Token'
p6
cnltk.tokenize.punkt
PunktToken
p7
sS'_lang_vars'
p8
g0
(cnltk.tokenize.punkt
PunktLanguageVars
p9
g2
Ntp10
Rp11
I1
bsS'_params'
p12
g0
(cnltk.tokenize.punkt
PunktParameters
p13
g2
Ntp14
Rp15
(dp16
S'sent_starters'
p17
c__builtin__
set
p18
((lp19
tp20
Rp21
sS'collocations'
p22
g18
((lp23
tp24
Rp25
sS'abbrev_types'
p26
g18
((lp27
Vago
p28
aVgca
p29
aVe.g`
我还有另一个泡菜文件“english.pickle”:
ccopy_reg
_reconstructor
p0
(cnltk.tokenize.punkt
PunktSentenceTokenizer
p1
c__builtin__
object
p2
Ntp3
Rp4
(dp5
S'_Token'
p6
cnltk.tokenize.punkt
PunktToken
p7
sS'_lang_vars'
p8
g0
(cnltk.tokenize.punkt
PunktLanguageVars
p9
g2
Ntp10
Rp11
I1
bsS'_params'
p12
g0
(cnltk.tokenize.punkt
PunktParameters
p13
g2
Ntp14
Rp15
(dp16
S'sent_starters'
p17
c__builtin__
set
p18
((lp19
Vamong
p20
aVsince
p21
aVthey
p22
aVindeed
p23
aVsome
p24
aVsales
p25
aVin
p26
aVmoreover
p27
aVyet`
我想将这些合并成一个单独的 .pickle 文件(该文件必须可与 PunktSentenceTokenizer 的 tokenizer 一起使用)。
我正在使用以下代码:
import pickle
my_dict_final = {}
with open('english.pickle', 'rb') as f:
my_dict_final.update(pickle.load(f))
with open('learnt.pickle', 'rb') as f:
my_dict_final.update(pickle.load(f))
out = open("finaldict.pickle","wb")
pickle.dump(my_dict_final, out)
out.close()
但它显示了这个错误:
TypeError: 'PunkSentenceTokenizer' 对象不可迭代。
我不知道这意味着什么(我不太擅长编程)....但我真的需要一个解决方案....
【问题讨论】:
-
@COLDSPEED 感谢格式化方面的帮助
标签: python-2.7 nltk pickle tokenize text-segmentation