1. 最近常听同事提及相关性分析,正巧看到这个google的开源库,并把相关操作与调试结果记录下来。
  1. 输出结果: 比较有意思的巧合是黄蓉使出打狗棒,郭靖就用了降龙十八掌,再后测试了名词的解析。
  1. 小说集可以百度《金庸小说全集 14部》全(TXT)作者:金庸 下载下来。
    需要整理好格式,门派和武功名称之间需要有换行符,留意删除掉最后一行的空白区域。
    下载完成后可以用自己习惯的工具或程序做相应调整,因语料内容太长,博客里面不允许"堆砌",所以没复制上来,有需要的可以再联系。
  1. with open('names.txt') as f:
  2. data = [line.strip() for line in f.readlines()]
  3. novels = data[::2]
  4. names = data[1::2]
  5.  
  6. novel_names = {k: v.split() for k, v in zip(novels, names)}
  7. //可以在这里打印下看是不是都读取过
  8.  
  9. //开始分词并加载
  10. for _, names in novel_names.items():#.iteritems():(Python2的旧写法)
  11. for name in names:
  12. jieba.add_word(name)
  13. with open("kongfu.txt",encoding='UTF-8') as f:
  14. kungfu_names = [line.strip()
  15. for line in f.readlines()]
  16. with open("bangs.txt") as f:
  17. bang_names = [line.strip()
  18. for line in f.readlines()]
  19.  
  20. for name in kungfu_names:
  21. jieba.add_word(name)
  22.  
  23. for name in bang_names:
  24. jieba.add_word(name)
  25.  
  26. novels = ["书剑恩仇录", "天龙八部","碧血剑","越女剑","飞狐外传","侠客行","射雕英雄传","神雕侠侣","连城诀","鸳鸯刀","倚天屠龙记","白马啸西风","笑傲江湖","雪山飞狐","鹿鼎记"]
  27. //你知道的:飞雪连天射白鹿,笑书神侠倚碧鸳
  28. sentences = []
  29.  
  30. for novel in novels:
  31. with open('{}.txt'.format(novel),encoding='UTF-8') as f:
  32. data = [line.strip()
  33. for line in f.readlines()
  34. if line.strip()]
  35. for line in data:
  36. words = list(jieba.cut(line))
  37. sentences.append(words)
  38.  
  39. model = gensim.models.Word2Vec(sentences,
  40. size=200, #
  41. window=5,
  42. min_count=5,
  43. workers=4)
  1. //便于使用的方法
  2. def get_gongfu(a, b, c):
  3. d, _ = model1.most_similar(positive=[c, b], negative=[a])[0]
  4. print (c,d)
  5. //使用举例一
  6. print ('-------------若黄蓉使出打狗棒法,郭靖会怎样?-------------------------')
  7. get_gongfu("黄蓉","打狗棒法","郭靖")
  8. print ('-------------若黄蓉拿着打狗棒,郭靖又会拿啥?-------------------------')
  9. get_gongfu("黄蓉","打狗棒","郭靖")
  1. 输出结果:
  2. -------------相关性:乔峰-------------------------
  3. %% 虚竹 0.8226621747016907
  4. %% 慕容复 0.809000551700592
  5. %% 段正淳 0.808856725692749
  6. %% 木婉清 0.7898266315460205
  7. %% 童姥 0.7881260514259338
  8. %% 袁承志 0.7863771915435791
  9. %% 全冠清 0.7761101722717285
  10. %% 谢烟客 0.7738543748855591
  11. %% 俞莲舟 0.7663788199424744
  12. %% 陆菲青 0.7651679515838623
  13. -------------相关性:阿朱-------------------------
  14. 阿紫 0.8502078056335449
  15. 王语嫣 0.8323276042938232
  16. 木婉清 0.8188427090644836
  17. 方怡 0.81195068359375
  18. 钟灵 0.8042664527893066
  19. 仪琳 0.7905520796775818
  20. 青青 0.7837553024291992
  21. 香香公主 0.7774882316589355
  22. 盈盈 0.7765697836875916
  23. 马夫人 0.7628135681152344
  24. -------------相关性:降龙十八掌-------------------------
  25. 打狗棒法 0.9099119901657104
  26. 太极拳 0.8792168498039246
  27. 空明拳 0.8742830157279968
  28. 绝招 0.864672064781189
  29. 一阳指 0.8576483726501465
  30. 蛤蟆功 0.8443030714988708
  31. 心法 0.8419612646102905
  32. 棒法 0.840523362159729
  33. 罗汉拳 0.838168740272522
  34. 小擒拿手 0.8356980085372925
  35. -------------若黄蓉使出打狗棒法,郭靖会怎样?-------------------------
  36. 郭靖 降龙十八掌
  37. -------------若黄蓉拿着打狗棒,郭靖又会拿啥?-------------------------
  38. 郭靖 令旗
  1. 输出结果: 比较有意思的巧合是黄蓉使出打狗棒,郭靖就用了降龙十八掌,再后测试了名词的解析。
  2. 模型参数:
  1. Python文章相关性分析---金庸武侠小说分析-----
  2.  
  3. sentences:可以是一个·ist,对于大语料集,建议使用BrownCorpus,Text8Corpus或·ineSentence构建。
    sg 用于设置训练算法,默认为0,对应CBOW算法;sg=1则采用skip-gram算法。
    size:是指特征向量的维度,默认为100。大的size需要更多的训练数据,但是效果会更好. 推荐值为几十到几百。
    window:表示当前词与预测词在一个句子中的最大距离是多少
    alpha: 是学习速率
    seed:用于随机数发生器。与初始化词向量有关。
    min_count: 可以对字典做截断. 词频少于min_count次数的单词会被丢弃掉, 默认值为5
    max_vocab_size: 设置词向量构建期间的RAM限制。如果所有独立单词个数超过这个,则就消除掉其中最不频繁的一个。每一千万个单词需要大约1GBRAM。设置成None则没有限制。
    sample: 高频词汇的随机降采样的配置阈值,默认为1e-3,范围是(0,1e-5)
    workers参数控制训练的并行数。
    hs: 如果为1则会采用hierarchica·softmax技巧。如果设置为0defau·t),则negative sampling会被使用。
    negative: 如果>0,则会采用negativesamp·ing,用于设置多少个noise words
    cbow_mean: 如果为0,则采用上下文词向量的和,如果为1defau·t)则采用均值。只有使用CBOW的时候才起作用。
    hashfxn hash函数来初始化权重。默认使用pythonhash函数
    iter 迭代次数,默认为5
    trim_rule 用于设置词汇表的整理规则,指定那些单词要留下,哪些要被删除。可以设置为Nonemin_count会被使用)或者一个接受()并返回RU·E_DISCARD,uti·s.RU·E_KEEP或者uti·s.RU·E_DEFAU·T的函数。
    sorted_vocab 如果为1defau·t),则在分配word index 的时候会先对单词基于频率降序排序。
    batch_words:每一批的传递给线程的单词的数量,默认为10000
  1. 最近常听同事提及相关性分析,正巧看到这个google的开源库,并把相关操作与调试结果记录下来。
  1. 小说集可以百度《金庸小说全集 14部》全(TXT)作者:金庸 下载下来。
    需要整理好格式,门派和武功名称之间需要有换行符,留意删除掉最后一行的空白区域。
    下载完成后可以用自己习惯的工具或程序做相应调整,因语料内容太长,博客里面不允许"堆砌",所以没复制上来,有需要的可以再联系。
  2. 备注:首先百度到《金庸小说全集 14部》全(TXT)作者:金庸 下载下来,然后读取内容,另:以上模型每次都训练了,

Python文章相关性分析---金庸武侠小说分析-2018.1.16的更多相关文章

  1. Python文章相关性分析---金庸武侠小说分析

    百度到<金庸小说全集 14部>全(TXT)作者:金庸 下载下来,然后读取内容with open('names.txt') as f: data = [line.strip() for li ...

  2. python实现归并排序,归并排序的详细分析

    python实现归并排序,归并排序的详细分析.   学习归并排序的过程是十分痛苦的.它并不常用,看起来时间复杂度好像是几种排序中最低的,比快排的时间复杂度还要低,但是它的执行速度不是最快的.很多朋友不 ...

  3. 理解 python metaclass使用技巧与应用场景分析

    理解python metaclass使用技巧与应用场景分析       参考: decorator与metaclass:http://jfine-python-classes.readthedocs. ...

  4. python导入csv文件出现SyntaxError问题分析

    python导入csv文件出现SyntaxError问题分析 先简单描述下碰到的题目,要求是写出2个print的结果 可以看到,a指向了一个列表list对象,在Python中,这样的赋值语句,其实内部 ...

  5. Python 爬取淘宝商品数据挖掘分析实战

    Python 爬取淘宝商品数据挖掘分析实战 项目内容 本案例选择>> 商品类目:沙发: 数量:共100页  4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 爬取淘宝商品 ...

  6. Python中的浮点数原理与运算分析

    Python中的浮点数原理与运算分析 本文实例讲述了Python中的浮点数原理与运算.分享给大家供大家参考,具体如下: 先看一个违反直觉的例子:     >>> s = 0. > ...

  7. Python爬虫实例(六)多进程下载金庸网小说

    目标任务:使用多进程下载金庸网各个版本(旧版.修订版.新修版)的小说 代码如下: # -*- coding: utf-8 -*- import requests from lxml import et ...

  8. 金庸的武侠世界和SAP的江湖

    2018年10月30日晚,成都地铁一号线,Jerry手机app上突然弹出来一条金庸去世的新闻. Jerry识字很早,小学一年级就开始蹭我父亲的<射雕英雄传>看了.小时候,我爸工作的车间里有 ...

  9. 使用scrapy爬取金庸小说目录和章节url

    刚接触使用scrapy的时候,如果一开始就想实现特别复杂的配置,显然是不太现实的,用一些小的例子可以帮助自己理解各个模块. 今天的目标:爬取http://www.luoxia.com/shendiao ...

随机推荐

  1. SqlServer2005 查询 第六讲 null

    今天们来讲sql命令中的这个null参数 null null: 可以理解成[没有值,空值]的意思 注意以下几点 --1.零和null是不一样的,null表示空值,而零表示的一个确定的值 --2.nul ...

  2. poj 3281 Dining (Dinic)

    Dining Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 22572   Accepted: 10015 Descript ...

  3. Cognitive Graph for Multi-Hop Reading Comprehension at Scale(ACL2019) 阅读笔记与源码解析

    论文地址为:Cognitive Graph for Multi-Hop Reading Comprehension at Scale github地址:CogQA 背景 假设你手边有一个维基百科的搜索 ...

  4. 构思一个在windows下仿objc基于动画层ui编程的ui引擎

    用c/c++编程有些年了,十个指头可以数齐,在涉入iOS objc开发后,有种无比舒服的感觉,尤其在UI开发上. 在QuartzCore.framework下动画和透明窗口等许多效果的事都变得那么方便 ...

  5. img标签不能直接作为body的子元素

    前几天在一本教材上看到关于HTML标签嵌套规则一节的时候,看到这么一句话,“把图像作为body元素的子元素直接插入到页面中,这样是不妥的,一是结构嵌套有误,二是图像控制不方便.”后面还给了一段代码演示 ...

  6. Roarctf 几道pwn 复现

    1.easy_pwn 可以利用的点: __int64 __fastcall sub_E26(signed int a1, unsigned int a2) { __int64 result; // r ...

  7. 2019-10-8:渗透测试,基础学习,php基础,会话,文件包含,笔记

    php面向对象基础->调用符号构造函数construct,主要用来创建对象时初始化对象,为成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 析构函数destructor,与构造函数相 ...

  8. Dart Learn Notes 02

    Functions Dart是一门面向对象的语言,所以即便是方法也是一个对象,它的类型是Function. 这就意味着方法可以指向变量,也可以作为方法中的参数供其他方法使用.甚至可以让 一个类作为一个 ...

  9. golang开发环境配置

    下载安装 从 https://golang.org/dl/ 下载最新的安装包. windows直接执行exe,按指示进行安装(默认安装目录是:C:\Go) linxu解压后复制到你喜欢目录就行(一般放 ...

  10. The place where I want to go

    The place where I want to go It’s hard to say where I want to go most. Because there are too many pl ...