只有在使用jieba
时才会发生我的代码:
from sklearn.feature_extraction.text import TfidfVectorizer
import jieba
data = ["十二届全国政协副秘书长黄小祥被免职撤委员资格-人事任免-时政频道-中工网", "银联持卡人境外可获紧急现金支援-财经网", "国家煤矿安全监察局关于印发《国家煤矿安全监察局领导同志工作分工》的通知", "扎克伯格净资产增至431亿美元 成第九大富豪 -科技频道-和讯网", "供电局领导注意了", "廊坊进口电源失电,全城大面积停电,请不要再打95598,今晚预计无法恢复送电!http://tieba.baidu.com/p/3077856046", "小区楼道因公摊电费争议被停电 供电部门:会彻查", "如何帮助员工“理解”战略-哈佛商业评论", "荣威950 1.8T正式上市 售17.98-20.98万_凤凰汽车_凤凰网", " 怀化电业局,你摊上事了,你摊上大事了!视频已经曝光,速度围观! "]
jieba_tokenizer = lambda x: jieba.cut(x)
vect = TfidfVectorizer(tokenizer=jieba_tokenizer, min_df=3, max_df=0.95)
X_train_features = vect.fit_transform(data)
m = pickle.dumps(vect)
错误:
TypeError Traceback (most recent call last)
<ipython-input-44-556c978e0043> in <module>()
----> 1 pickle.dumps(vect)
C:\Python27\lib\copy_reg.pyc in _reduce_ex(self, proto)
68 else:
69 if base is self.__class__:
---> 70 raise TypeError, "can't pickle %s objects" % base.__name__
71 state = base(self)
72 args = (self.__class__, base, state)
TypeError: can't pickle function objects
中文文章需要使用jieba
作为标记符,但我不知道如何挑选vect
..
答案 0 :(得分:2)
对于记录,dill
软件包透明lambda
,并且与pickle
具有相同的API。
答案 1 :(得分:1)
我认为问题是lambda
的使用,如果您使用语法
def jieba_tokenizer(x):
return jieba.cut(x)