Topic modelling for humans
看着gensim这个标题都觉得霸气,从文本预处理,特征提出到主题聚类等,基本上包含了文本处理的所有功能。
Corpora and Vector Spaces
语料与向量空间,这一节主要讲如何把文本从词变为bag-of-word。中文的话无非是中间加入了分词这一步骤。之前用过jieba,觉得效果还不错。
停用词git上有一个中文预料预处理
documents = ["做人要谦虚,但做事不要谦虚,毛遂自荐,让别人看到你,知道你的存在,知道你的能力,这样你才有机会,别人才会把重任交给你。",
"天下没有好赚的钱,千万不要一口吃个胖子,先从小钱赚起吧",
"不管从事什么行业,一定要相同行业或不同行业的人吸收新知识,而且要用请教的态度。",
"犯错,就诚实地认错,并立刻改错,不要狡辩。",
".要想成功,就要以失败为老师,在失败中汲取教训。",
".一定要守时!守时是对别人的尊重。",
".用真心诚意打动别人,让任何人为你做事。",
"全力以赴迎接种种挑战,不要把困难看成是在整你。",
"这一句没什么意思"]
f=open('stopwords.txt', encoding='gbk')
lines=f.readline()
stoplst=list(map(lambda x:x.strip('\n'), lines))
texts = [[word for word in jieba.lcut(document) if word not in stop lst] for document in documents]
但是发现停用词完全没有被过滤。后来发现,在stoplst中每个元素后面都有一个\n。
分词结果如下
[['做人','谦虚','做事','不要','谦虚','毛遂自荐','看到','知道','存在','知道','能力','机会','会','重任','交给'],
['天下', '没有', '好赚', '钱', '千万', '不要', '一口', '吃个', '胖子', '先', '从小', '钱', '赚起'],
['从事', '行业', '一定', '相同', '行业', '不同', '行业', '吸收', '新', '知识', '请教', '态度'],
['犯错', '诚实', '认错', '立刻', '改错', '不要', '狡辩'],
['.', '想', '成功', '失败', '老师', '失败', '中', '汲取', '教训'],
['.', '一定', '守时', '守时', '尊重'],
['.', '真心诚意', '打动', '任何人', '做事'],
['全力以