早上来实验室,本来打算向秦师兄要文献的,不过秦师兄上午不在,所以就没有联系他。于是就开始调试郑茂的代码,发现原来那个itoa函数不是标准库里面 的,所以可能只有windows上可以用。然后我就在打电脑上变异了一下果然就是可以。不过运行结果最有一行有一个大大的ERROR,还在调试中。

下午开例会的时候,上面汇报工作,我就在下面想KDD怎么用CoAuthor,一般开会的时候灵感特别丰富,于是果然就有了一个点子。大概是这样的:

 

先样例程序那个最后一个特征粒度不够,我可以细化这个特征,就用社会挖掘。方法的核心是这样的,比如我跟郑茂都是新手,如果用最后一个特征来看,我俩共同

发表的文章很可能就会被判定为不是我写的,你为我跟他从没合作过,但我俩其实有潜在的和所关系,因为我跟秦老师发表过一篇文章,他也之前跟秦老师发表过一

篇文章,这样我俩相当于合作发表过半篇文章,或者其他的记数方式,就是即在我俩的潜在合作程度、潜在合作倾向。然后例会之后,我就把这个想法给中秋发了过
去,然后就去跟TM组聚餐了。

回实验室后就看到了中秋给我发来邮件,意思是要紧急召见我商量,
我觉得可能有很大进展,我觉得
中秋很少这么紧急过,然后也没说二话,直接拿着口香糖,然后在楼下超市买了瓶蜂蜜,直接奔Nclab杀过去了,那时已经是九点多了,到那里的时候发现果然
KDD出了问题,中秋告诉我之前的想法有错误,下午的时候他又仔细看了一下数据库,发现好像题意又理解错了。

现在中秋认为数据库的含义是这样的,就是问题主要在Paper-Author上面,一个paper的真实情况是四个人写的,比如就是“黄靖文”和“王中秋”和“唐佳伟”和“张成宇”,但是在数据库里面查询的话却能查询出来六个条目:

------------------------------------------------------
PaperId |   AuthorId    | Affiliation
------------------------------------------------------
------------------------------------------------------
4444     | 88 (王中秋) | 哈尔滨工业大学
------------------------------------------------------
4444     | 77 (王中秋) | 香港大学
------------------------------------------------------
4444     | 66 (王中秋) | 浙江大学
------------------------------------------------------
4444     | 89 (黄靖文) | 哈尔滨工业大学
------------------------------------------------------
4444     | 90 (唐佳伟) | 哈尔滨工业大学
------------------------------------------------------
4444     | 91 (张成宇) | 哈尔滨工业大学
------------------------------------------------------


就是他在爬下来数据之后为了某种完整性就对paper和相同的作者名对作者和paper做过笛卡尔乘积。我们的工作就是给出88这个id,然后对每个这样
有作者歧义的paperid,确认88是不是写这篇文章的那个王中秋。而如果给你66这个id,你就应该识别出来这篇文章(4444)不是66这个王中秋
写的,就是说虽然数据库里面记载了,但经过我们的计算他没有写过这篇文章,4444这篇文章不是77写的。本质上还是个消歧问题。


前的想法就是以为Paper-Author是普通噪声,可以使用,所以我想了上面那个社交关系的解法,不过现在不能直接从PaperAuthor上面直接
挖掘社交关系了,现在就很难办,因为我们Paper是联系Paper与Author的关联表,没有他信息是断开的,这回题一下子就变得很难。目前我们俩的
想法就是从特殊情况,也就是可以确定的情况上入手,比如在上面这个有作者歧义的paper中,我发现有三个作者都是,没有歧义的,而这三个无歧义作者的机
构都是“哈尔滨工业大学”,所以我就认为88这个王中秋是写这篇文章的王中秋,因为这几个王中秋只有他的机构也是“哈尔滨工业大学”,在这一步就是相当用
同文章的无歧义作者来判定有歧义作者。然后就知道了88这个王中秋的一个研究方向,就是用当前这个paper来topic
model,得出这一个topic
model向量,对数据库所有与88有关的paper都做这样的处理,拿到所有可以确定是他写的文章,以及算出这些确定是他写的paper topic
model向量。得到这些可确定topic之后用这些topic向量算出他的研究领域的正太分布。然后对那些分不出来是不是他写的文章进行跟这个正态分布
比较,如果差的太远就认为不是这个88的王中秋写的,就判为反例,但如果在这个正态分布之下,那么就认为这篇文章也是他写的,那么就把这篇文章加入到确定
是他写的文章集合里,然后重新计算正态分布。知道所有用88这个id查出来的文章都被分完。

这是我们晚上在Nclab和路上还有在厨房角讨论的结果。接下来的任务是对这个思想进行细化:

如何利用Train集做些什么,因为这里面的信息都是非常确定了,肯定有大用途。

1、对于那些小众的人,就是不怎么写文章,名字却很大众化的人怎么办。

2.1、对于悲催一点的情况,一篇文章对应着几个作者,然而这几个作者都有歧义,怎么办。我现在的想法是如果有两个歧义中的作者拥有共同机构,就判定就是他俩写的:

------------------------------------------------------
PaperId |   AuthorId    | Affiliation
------------------------------------------------------
------------------------------------------------------
4444     | 88 (王中秋) | 哈尔滨工业大学        <-  机构连连看
------------------------------------------------------   
4444     | 77 (王中秋) | 香港大学                     
------------------------------------------------------   
4444     | 66 (王中秋) | 浙江大学                     
------------------------------------------------------   
4444     | 89 (黄靖文) | 哈尔滨工业大学        <- 机构连连看
------------------------------------------------------
4444     | 90 (黄靖文) | 复旦大学
------------------------------------------------------
4444     | 91 (黄靖文) | 北京大学
------------------------------------------------------

2.2、不过也不排除更悲催一点的情况就是有两组共同机构的歧义作者:

------------------------------------------------------
PaperId |   AuthorId    | Affiliation
------------------------------------------------------
------------------------------------------------------
4444     | 88 (王中秋) | 哈尔滨工业大学
------------------------------------------------------
4444     | 77 (王中秋) | 香港大学
------------------------------------------------------
4444     | 66 (王中秋) | 浙江大学
------------------------------------------------------
4444     | 89 (黄靖文) | 哈尔滨工业大学
------------------------------------------------------
4444     | 90 (黄靖文) | 香港大学
------------------------------------------------------
4444     | 91 (黄靖文) | 浙江大学
------------------------------------------------------

3、
对于更悲催的情况,一篇只有一个作者却有作者歧义的paper怎么办。就是说一篇文章就是陈磊写的,但是这个paper却对应很多陈磊不确定,没有其他
coauthor用来消歧。这种情况只能先看一看其他同名作者能不能认领这篇文章,如果已经被其他同名者认领走了那就就不用再判断了,不是这个陈磊写的
了。

2013.4.30 - KDD第十二天的更多相关文章

  1. 2013.6.28 - KDD最后一天

    今天收到中秋的邮件.KDD结果出来了,Zhongqiu Wang & Jingwen Huang 15th/561.  

  2. 2013.5.21 - KDD第三十三天

    实验室例会,上到一半之后发现今天下午第二节课是Android,上次两节Android都没跟中秋碰头,这次又不能碰头了,然 后就赶紧给中秋发了个短信,说我在开会,晚上约个时间再谈.正好也称这一下午加一晚 ...

  3. 2013.5.3 - KDD第十五天

    今天上午把昨天的想法给中秋发过去了,然后我就开始科普随机森林: 随机森林是一种比较新的机器学习模型.经典的机器学习模型是神经网络,有半个多世纪的历史了.神经网络预测精确,但是计算量很大.上世纪八十年代 ...

  4. 2013.4.29 - KDD第十一天

    今天上午在图书馆写FIrst集,真心没写出来,算法是昨天找好的,不过实现的话还是需要很大的代码量,然后就打算用郑茂或者韩冰的代码了. 晚上图书馆快关门的时候开始思考KDD的问题, 我一开始打算给中秋发 ...

  5. 2013.4.23 - KDD第五天

    今天晚上郭宇航师兄从外面回来问我那天找他什么事,然后我们就开始讨论KDD的第一个题目,其实第一个题目跟郭师兄的课题不太相关,本来想问他关于语义消 岐的那道题(第二道),不过第二题的内容我给忘了,然后我 ...

  6. 2013.4.19 - KDD第一天

    其实昨天KDD就开始了,不过今天算是我跟KDD的第一天.   昨天夜里就短信跟中秋聊了一会儿,然后中秋说他一天都在弄数据库,连不上怒了.然后我跟他说明天我来.于是今天就在图书馆弄KDD,数据是用数据库 ...

  7. Cheatsheet: 2013 06.23 ~ 06.30, Farewell GoogleReader(2008.07.20~2013.06.30)

    Mobile Resources for Mac and iOS Developers- Introduction to Objective-C Modules Other 10 Principles ...

  8. 2013.5.23 - KDD第三十五天

    看完睡不觉得世间有点虚度,然后就构思了一下带带回儿去找中秋要跟她说的事情,大概就是这样的:   我 打算用paper来计算人与人之间的距离,比如说我跟郑茂和写过一篇文章,然后郑茂根韩冰和写过一篇文章, ...

  9. 2013.5.8 - KDD第二十天

    下午去上刘杨老师的机器学习课,今天讲的"朴素被噎死",他本想当场举个例子,结果读了好半天才吧关系都拼凑上,他说明天给我们带来个精彩的,回去之后夜里把朴素贝叶斯自己又脑补了一下,发现贝叶斯原理(后验)就 ...

随机推荐

  1. PAT 甲级 1086 Tree Traversals Again (25分)(先序中序链表建树,求后序)***重点复习

    1086 Tree Traversals Again (25分)   An inorder binary tree traversal can be implemented in a non-recu ...

  2. Oracle表存在则删除后再重建

    简单的执行方式: drop table USERINFO; create table USERINFO ( EnglishName ), ChineseName ), Sex ), Age int, ...

  3. 【Python学习之一】Python安装、IDE安装配置

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python2.X python3.X 所谓安装Python,安装的是 ...

  4. svn 版本控制搭建

    1.安装SVN yum install subversion 2.开启服务 systemctl start svnserve.service 3.创建仓库 svnadmin create /opt/s ...

  5. PHP反射API (转)

    http://www.cnblogs.com/zyf-zhaoyafei/p/4922893.html 近期忙着写项目,没有学习什么特别新的东西,所以好长时间没有更新博客.我们的项目用的是lumen, ...

  6. MySQL中 while loop repeat 的用法

    -- MySQL中的三中循环 while . loop .repeat 求 1-n 的和 -- 第一种 while 循环 -- 求 1-n 的和 /* while循环语法: while 条件 DO 循 ...

  7. SpringMVC笔记1

    SpringMVC是一个一种基于Java的实现MVC设计模型的请求驱动类型的轻量级web框架 SpringMVC的入门案例 2.导入相关jar包 <?xml version="1.0& ...

  8. Centos7下nginx的安装与配置

    说明:软件安装的基础目录路径:/usr/local 所以下载软件的时候切换到此目录下下载直接解压即可 1.安装gcc gcc-c++依赖包 yum install -y gcc gcc-c++ 2.下 ...

  9. Python之让 字符串内的转义字符 不做任何处理

    一.在字符串前面加上 'r' 就可以了 print("\ntext_1") print(r"\ntest_2") 二.在转义字符的 '\' 前面再加一个 '\' ...

  10. [基础]C++:名字的作用域

    每个名字都有自己的活动空间,同一个名字在不同的作用域可能指向不同的实体. 作用域:通常是以{}为分隔. 名字的有效区域开始于名字的声明,以声明语句所在的末端为结束. #include<iostr ...