赞
踩
示例代码:
- import jieba
- import pandas as pd
- from gensim import corpora, models
- from gensim.models.ldamodel import LdaModel
- from gensim import similarities
- from gensim.models import doc2vec, Doc2Vec
-
- raw = pd.read_table('./金庸-射雕英雄传txt精校版.txt', names=['txt'], encoding="GBK")
-
-
- # 章节判断用变量预处理
- def m_head(tmpstr):
- return tmpstr[:1]
-
-
- def m_mid(tmpstr):
- return tmpstr.find("回 ")
-
-
- raw['head'] = raw.txt.apply(m_head)
- raw['mid'] = raw.txt.apply(m_mid)
- raw['len'] = raw.txt.apply(len)
-
- # 章节判断
- chapnum = 0
- for i in range(len(raw)):
- if raw['head'][i] == "第" and raw['mid'][i] > 0 and raw['len'][i] < 30:
- chapnum += 1
- if chapnum >= 40 and raw['txt'][i] == "附录一:成吉思汗家族":
- chapnum = 0
- raw.loc[i, 'chap'] = chapnum
-
- # 删除临时变量
- del raw['head']
- del raw['mid']
- del raw['len']
-
- rawgrp = raw.groupby('chap')
- chapter = rawgrp.agg(sum) # 只有字符串的情况下,sum函数自动转为合并字符串
- chapter = chapter[chapter.index != 0]
-
-
- # print(chapter)
-
- def m_doc(doclist):
- reslist = []
- for i, doc in enumerate(doclist):
- reslist.append(doc2vec.TaggedDocument(jieba.lcut(doc), [i]))
- return reslist
-
-
- corp = m_doc(chapter.txt)
- print(corp[:2])
-
- d2vmodel = Doc2Vec(vector_size=300, window=20, min_count=5)
- d2vmodel.build_vocab(corp)
-
- print(d2vmodel.wv.vocab)
-
- # 将新文本转换为相应维度空间下的向量
- new_vec = d2vmodel.infer_vector(jieba.lcut(chapter.txt[1]))
- print(d2vmodel.docvecs.most_similar([new_vec], topn=10)) # 打印与哪些章节相似
运行结果:
示例代码:
- import jieba
- import pandas as pd
- import jieba.analyse as ana
- from sklearn.feature_extraction.text import TfidfTransformer
- from sklearn.feature_extraction.text import CountVectorizer
- from sklearn.cluster import KMeans
-
- raw = pd.read_table('./金庸-射雕英雄传txt精校版.txt', names=['txt'], encoding="GBK")
-
-
- # 章节判断用变量预处理
- def m_head(tmpstr):
- return tmpstr[:1]
-
-
- def m_mid(tmpstr):
- return tmpstr.find("回 ")
-
-
- raw['head'] = raw.txt.apply(m_head)
- raw['mid'] = raw.txt.apply(m_mid)
- raw['len'] = raw.txt.apply(len)
-
- # 章节判断
- chapnum = 0
- for i in range(len(raw)):
- if raw['head'][i] == "第" and raw['mid'][i] > 0 and raw['len'][i] < 30:
- chapnum += 1
- if chapnum >= 40 and raw['txt'][i] == "附录一:成吉思汗家族":
- chapnum = 0
- raw.loc[i, 'chap'] = chapnum
-
- # 删除临时变量
- del raw['head']
- del raw['mid']
- del raw['len']
-
- rawgrp = raw.groupby('chap')
- chapter = rawgrp.agg(sum) # 只有字符串的情况下,sum函数自动转为合并字符串
- chapter = chapter[chapter.index != 0]
- # print(chapter)
-
- # 为章节增加名称标签
- print('0' * 30)
- print(chapter.head())
- print('1' * 30)
- print(chapter.index)
- print('2' * 30)
- chapter.index = [raw.txt[raw.chap == i].iloc[0] for i in chapter.index]
- print(chapter.head())
- print('3' * 30)
- print(chapter.index)
-
-
- # 设定分词及请理停用词函数
- stop_list = list(pd.read_csv('./停用词.txt', names=['w'], sep='aaa', encoding='utf-8').w)
- # print(stop_list)
-
-
- # jeiba分词
- def m_cut(intxt):
- return [w for w in jieba.cut(intxt) if w not in stop_list and len(w) > 1]
-
-
- cut_txt = lambda x: " ".join(m_cut(x))
- clean_chap = chapter.txt.apply(cut_txt)
- print('4' * 30)
- print(clean_chap[:2])
-
- # 计算TF-IDF矩阵
- vectorizer = CountVectorizer()
- wordmtx = vectorizer.fit_transform(clean_chap) # 将文本中的词语转换为词频矩阵
-
- transformer = TfidfTransformer()
- tfidf = transformer.fit_transform(wordmtx) # 基于词频矩阵计算TF-IDF值
- print('5' * 30)
- print(tfidf)
-
- # 进行聚类分析
- clf = KMeans(n_clusters=5)
- s = clf.fit(tfidf)
- print('6' * 30)
- print(s)
- print(clf.cluster_centers_)
-
- print('7' * 30)
- print(clf.cluster_centers_.shape)
- print(clf.labels_)
-
- chapter['clsres'] = clf.labels_
- print(chapter.head())
-
- chapter.sort_values('clsres').clsres
-
- chapgrp = chapter.groupby('clsres')
- chapcls = chapgrp.agg(sum) # 只有字符串列的情况下,sum函数自动转为合并字符串
-
- cut_txt = lambda x: " ".join(m_cut(x))
- chapclsres = chapcls.txt.apply(cut_txt)
- print('8' * 30)
- print(chapclsres)
-
- # 列出关键词以刻画类别特征
- ana.set_stop_words('./停用词.txt')
- for item in chapclsres:
- print(ana.extract_tags(item, topK=10))
运行结果:
- 000000000000000000000000000000
- txt
- chap
- 1.0 第一回 风雪惊变 钱塘江浩浩江水,日日夜夜无穷无休的从两浙西路临安府牛家村边绕过,东流...
- 2.0 第二回 江南七怪 颜烈跨出房门,过道中一个中年士人拖着鞋皮,踢跶踢跶的直响,一路打着哈...
- 3.0 第三回 黄沙莽莽 寺里僧众见焦木圆寂,尽皆悲哭。有的便为伤者包扎伤处,抬入客舍。 忽...
- 4.0 第四回 黑风双煞 完颜洪熙笑道:“好,再打他个痛快。”蒙古兵前哨报来:“王罕亲自前来迎...
- 5.0 第五回 弯弓射雕 一行人下得山来,走不多时,忽听前面猛兽大吼声一阵阵传来。韩宝驹一提缰...
- 111111111111111111111111111111
- Float64Index([ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,
- 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0,
- 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0,
- 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0],
- dtype='float64', name='chap')
- 222222222222222222222222222222
- txt
- 第一回 风雪惊变 第一回 风雪惊变 钱塘江浩浩江水,日日夜夜无穷无休的从两浙西路临安府牛家村边绕过,东流...
- 第二回 江南七怪 第二回 江南七怪 颜烈跨出房门,过道中一个中年士人拖着鞋皮,踢跶踢跶的直响,一路打着哈...
- 第三回 黄沙莽莽 第三回 黄沙莽莽 寺里僧众见焦木圆寂,尽皆悲哭。有的便为伤者包扎伤处,抬入客舍。 忽...
- 第四回 黑风双煞 第四回 黑风双煞 完颜洪熙笑道:“好,再打他个痛快。”蒙古兵前哨报来:“王罕亲自前来迎...
- 第五回 弯弓射雕 第五回 弯弓射雕 一行人下得山来,走不多时,忽听前面猛兽大吼声一阵阵传来。韩宝驹一提缰...
- 333333333333333333333333333333
- Index(['第一回 风雪惊变', '第二回 江南七怪', '第三回 黄沙莽莽', '第四回 黑风双煞', '第五回 弯弓射雕', '第六回 崖顶疑阵',
- '第七回 比武招亲', '第八回 各显神通', '第九回 铁枪破犁', '第十回 往事如烟', '第十一回 长春服输',
- '第十二回 亢龙有悔', '第十三回 五湖废人', '第十四回 桃花岛主', '第十五回 神龙摆尾', '第十六回 《九阴真经》',
- '第十七回 双手互搏', '第十八回 三道试题', '第十九回 洪涛群鲨', '第二十回 九阴假经', '第二十一回 千钧巨岩',
- '第二十二回 骑鲨遨游', '第二十三回 大闹禁宫', '第二十四回 密室疗伤', '第二十五回 荒村野店', '第二十六回 新盟旧约',
- '第二十七回 轩辕台前', '第二十八回 铁掌峰顶', '第二十九回 黑沼隐女', '第三十回 一灯大师', '第三十一回 鸳鸯锦帕',
- '第三十二回 湍江险滩', '第三十三回 来日大难', '第三十四回 岛上巨变', '第三十五回 铁枪庙中', '第三十六回 大军西征',
- '第三十七回 从天而降', '第三十八回 锦囊密令', '第三十九回 是非善恶', '第四十回 华山论剑'],
- dtype='object')
- 444444444444444444444444444444
- 第一回 风雪惊变 第一回 风雪 惊变 钱塘江 浩浩 江水 日日夜夜 无穷 无休 浙西 临安 牛家村 绕过 流入...
- 第二回 江南七怪 第二回 江南七怪 颜烈 跨出 房门 过道 一个 中年 士人 直响 一路打 哈欠 迎面 士人 ...
- Name: txt, dtype: object
- 555555555555555555555555555555
- (0, 43933) 0.006457785610768902
- (0, 43900) 0.005344421721247819
- (0, 43894) 0.005806509485742016
- (0, 43893) 0.0078196129731351
- (0, 43889) 0.0033321780154806882
- (0, 43867) 0.005806509485742016
- (0, 43853) 0.016033265163743454
- (0, 43846) 0.005806509485742016
- (0, 43823) 0.0037195432578317456
- (0, 43817) 0.0037195432578317456
- (0, 43807) 0.0034512135427621155
- (0, 43804) 0.01741952845722605
- (0, 43795) 0.04064556640019411
- (0, 43794) 0.01778216762000709
- (0, 43791) 0.004041869471194046
- (0, 43785) 0.006457785610768902
- (0, 43761) 0.0035797817066998473
- (0, 43759) 0.006457785610768902
- (0, 43735) 0.006457785610768902
- (0, 43564) 0.004231057831726734
- (0, 43558) 0.006457785610768902
- (0, 43552) 0.005344421721247819
- (0, 43530) 0.006457785610768902
- (0, 43521) 0.004445541905001772
- (0, 43519) 0.006457785610768902
- : :
- (39, 249) 0.007363892219505564
- (39, 243) 0.002661190169191508
- (39, 241) 0.0029348179528258193
- (39, 239) 0.003881818699411122
- (39, 237) 0.0246660951449147
- (39, 235) 0.017282292487475925
- (39, 229) 0.004213809881329308
- (39, 199) 0.004734964104017336
- (39, 183) 0.004734964104017336
- (39, 177) 0.006013956032520825
- (39, 164) 0.004334625242694368
- (39, 160) 0.010489088265541683
- (39, 153) 0.006261482471574542
- (39, 133) 0.0034963627551805616
- (39, 130) 0.0027944020310634574
- (39, 123) 0.0058696359056516385
- (39, 121) 0.006261482471574542
- (39, 111) 0.01044129239492948
- (39, 102) 0.01596714101514905
- (39, 91) 0.010081707882709857
- (39, 84) 0.006013956032520825
- (39, 72) 0.005580106229793086
- (39, 56) 0.054538300429186476
- (39, 54) 0.01044129239492948
- (39, 33) 0.007187789388150439
- 666666666666666666666666666666
- KMeans(n_clusters=5)
- [[0. 0. 0. ... 0.00258824 0. 0. ]
- [0. 0. 0. ... 0. 0. 0. ]
- [0.00056294 0.00044564 0.00044564 ... 0. 0.00046898 0.00056294]
- [0. 0. 0. ... 0. 0. 0. ]
- [0. 0. 0. ... 0. 0. 0. ]]
- 777777777777777777777777777777
- (5, 43955)
- [3 3 3 3 3 3 4 4 4 2 3 0 4 2 0 2 2 0 0 0 0 0 2 2 2 2 1 1 2 2 2 1 2 2 2 2 2
- 2 2 0]
- txt clsres
- 第一回 风雪惊变 第一回 风雪惊变 钱塘江浩浩江水,日日夜夜无穷无休的从两浙西路临安府牛家村边绕过,东流... 3
- 第二回 江南七怪 第二回 江南七怪 颜烈跨出房门,过道中一个中年士人拖着鞋皮,踢跶踢跶的直响,一路打着哈... 3
- 第三回 黄沙莽莽 第三回 黄沙莽莽 寺里僧众见焦木圆寂,尽皆悲哭。有的便为伤者包扎伤处,抬入客舍。 忽... 3
- 第四回 黑风双煞 第四回 黑风双煞 完颜洪熙笑道:“好,再打他个痛快。”蒙古兵前哨报来:“王罕亲自前来迎... 3
- 第五回 弯弓射雕 第五回 弯弓射雕 一行人下得山来,走不多时,忽听前面猛兽大吼声一阵阵传来。韩宝驹一提缰... 3
- 888888888888888888888888888888
- clsres
- 0 第十二回 亢龙有悔 黄蓉正 撕开 身后 有人 说道 撕作 三份 鸡屁股 两人 一惊 怎地 背...
- 1 第二十七回 轩辕台 两人 正闹间 楼梯 声响 适才 随杨康 丐帮 长老 走到 黄二人 桌边 ...
- 2 第十回 往事如烟 完颜康 见到 杨铁心 惊诧 之下 认出 大叫 提起 铁枪 行步 朝天 一炷...
- 3 第一回 风雪 惊变 钱塘江 浩浩 江水 日日夜夜 无穷 无休 浙西 临安 牛家村 绕过 流入...
- 4 第七回 比武招亲 江南 六怪 郭靖 晓行夜宿 东南 进发 非止 一日 大漠 草原 这天 张家...
- Name: txt, dtype: object
- ['洪七公', '郭靖', '欧阳锋', '黄蓉', '黄药师', '欧阳克', '周伯通', '叫化', '武功', '黄蓉道']
- ['黄蓉', '郭靖', '裘千仞', '帮主', '丐帮', '杨康', '铁掌', '简长老', '鲁有脚', '群丐']
- ['郭靖', '黄蓉', '黄药师', '周伯通', '欧阳锋', '师父', '黄蓉道', '梅超风', '郭靖道', '武功']
- ['郭靖', '丘处机', '铁木真', '柯镇恶', '杨铁心', '韩小莹', '梅超风', '包惜弱', '朱聪', '韩宝驹']
- ['郭靖', '完颜康', '黄蓉', '王处一', '陆庄主', '陆冠英', '小王爷', '穆易', '那公子', '穆念慈']
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。