基于DBLP的作者协作关系的挖掘

  DBLP是计算机领域内对研究的成果以作者为核心的一个计算机类英文文献的集成数据库系统。按年代列出了作者的科研成果。包括国际期刊和会议等公开发表的论文。和一

  DBLP是计算机领域内对研究的成果以作者为核心的一个计算机类英文文献的集成数据库系统。按年代列出了作者的科研成果。包括国际期刊和会议等公开发表的论文。和一般流行的情况不同,DBLP并没有使用数据库而是使用XML储存元数据。

  采用将xml文件转化为weka可以识别的CSV文件的形式进行处理。

  在关系挖掘中我们组选用了Apriori算法。Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。该算法已经被广泛的应用到商业、网络安全等各个领域。也可采用FP-Growth算法,可能效果会更好,此处暂不涉及。

  步骤一:数据预处理

  DBLP的xml文件现在已经有1.2G之大。经过测试只有用VI和写字板才可以打开(电脑6G内存为例)。根本不能照常规方式处理,csv和arff格式都是weka支持的格式,但是经实验发现weka处理csv的速度好像更快,具体不知道什么原因,所以采用转化成csv的形式。

  自己编写Parser,用于读取dblp.xml信息。由于我们只关注作者的协作关系信息,所以xml数据做以下处理:

  1:文章名字不予考虑  

  2:只有单个作者的条目直接删除

  3:作者发表文章篇数在80篇以下的删除

    可以自己考虑,但为了挖掘出强支持支持度和置信度的数据,取80。删除时需要建立一个map映射统计作者数目,增加处理速度。

    此步骤实际和apriori算法的第一步类似。每一篇文章只提取前8个作者,处理后得到大约20多万条数据。

  4:每本书至多保留8个作者

  5:由于weka中将" '  "等符号认为是特殊符号,所以在作者名字中遇到此类名字,将特殊符号删除,并不会造成大的影响。  

  

  保存为data80.csv,该程序处理了全部的370多万条数据,从中截取了有价值的部分信息交由weka进行进一步的分析处理。

package preprocess;public class Author_num {private String name;private int count;Author_num(){}Author_num(String aname,int acount){name = aname;count = acount;}public void setname(String aname){name = aname;}public void setcount(int acount){count = acount;}public void addcount(){count++;}String getname(){return name;}int getcount(){return count;}
}
Auther_Num

 

package preprocess;
import com.csvreader.CsvWriter;import java.util.List;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.*;
import static java.lang.Math.*;public class Readxml{private int Maxattribute = 8;         //考虑的最大作者数private int Maxnum = 100000000;       //读取文件长度,xml行private int booknum = 0;              //记录当前已读的书本数目private Map map=new HashMap();   //记录作者出现的次数public void run(){System.out.println("reading...");String line = "";String Temp = "";File filer = new File("D:\\dblp.xml");//CsvWriter wr =new CsvWriter("D:\\writetestall90.csv",',',Charset.forName("SJIS")); int numofauthor=0;//管理作者数量int thisnum=0;    //记录实际作者数量try{BufferedReader br = new BufferedReader(new FileReader(filer));         String[] contents = new String [Maxattribute];   //生成map映射记录所有作者和作者出版的书本数目while(((line = br.readLine()) != null)){if( (line.length()>8) && line.substring(0,8).equals("")){Temp = line.substring(8, (line.length()-9));//清理数据中 出现的'和"while(Temp.indexOf("'") >= 0){Temp = Temp.substring(0,Temp.indexOf("'"))+Temp.substring(Temp.indexOf("'")+1);           }while(Temp.indexOf("\"")>=0){       Temp = Temp.substring(0,Temp.indexOf("\""))+Temp.substring(Temp.indexOf("\"")+1); }if(map.get(Temp)==null){map.put(Temp, 1);}else{map.put(Temp,map.get(Temp)+1);}}else if((line.length()>7) && line.substring(0, 7).equals(""<span>)){booknum</span>++<span>;       System.out.println(</span>"已读书本数"+<span>booknum);} } Set</span><String> keys =<span> map.keySet();Iterator</span><String> it =<span> keys.iterator();</span><span>int</span> count = 0<span>;</span><span>while</span><span>(it.hasNext()) {String key </span>=<span> it.next();</span><span>if</span>(map.get(key)>80<span>){System.out.println(key </span>+ "-->" +<span> map.get(key));count</span>++<span>;}}System.out.println(</span>"shuliang:"+<span>count);br.close();</span><span>/*</span><span>BufferedReader br1 = new BufferedReader(new FileReader(filer));for(int i = 1;i<=Maxattribute;i++){contents[i-1] = "author"+i;  }wr.writeRecord(contents);        while(((line = br1.readLine()) != null)&&(Maxnum-->0)){              if( (line.length()>8) && line.substring(0,8).equals("<author>")){//每本书只考虑至多8个作者if(numofauthor<Maxattribute){Temp = line.substring(8, (line.length()-9));while(Temp.indexOf("'") >= 0){Temp = Temp.substring(0,Temp.indexOf("'"))+Temp.substring(Temp.indexOf("'")+1);           }while(Temp.indexOf("\"")>=0){       Temp = Temp.substring(0,Temp.indexOf("\""))+Temp.substring(Temp.indexOf("\"")+1); }//值保留出现次数大于80的作者if(map.get(Temp)>80){contents[numofauthor++]="'"+Temp+"'";    }}        }else if((line.length()>7) && line.substring(0, 7).equals("<title>")){thisnum = numofauthor;while(numofauthor<Maxattribute){contents[numofauthor++]="?"; }      Temp = line.substring(7, (line.length()-8));   //删除只有一个作者的书本记录if(thisnum>1){wr.writeRecord(contents); }             numofauthor = 0;thisnum = 0;}       }   </span><span>*/</span><span>     System.out.println(</span>"parseover!"<span>);    </span><span>//</span><span>br1.close();</span><span>//</span><span>wr.close();</span>
<span>        }</span><span>catch</span><span>(Exception e){e.printStackTrace();}   }
}</span></pre>  <span class="cnblogs_code_collapse">readxml</span>  <p> </p> <p>  <strong>步骤二:使用weka中Apriori算法挖掘关联规则</strong></p> <p align="left">1.最小支持度下界为0.00005(约100),conf为0.9 。</p> <p align="left"><img referrerpolicy="no-referrer" src="https://images0.cnblogs.com/blog/575968/201311/04222024-200cfeb0435149eeb8dfe3c197d6f473.png" alt="" width="656" height="594" /></p> <p align="left">    由上图可得出结论:214082篇文章中挖掘出10条规则,这些作者有着深层次的合作。</p> <p align="left"> </p> <p align="left">2:最小支持度为0.000025(约50),conf为0.8。</p> <p align="left"><img referrerpolicy="no-referrer" src="https://images0.cnblogs.com/blog/575968/201311/04222150-b807243b11ed4cd9910edc17e2bb4a32.png" alt="" width="664" height="599" /></p> <p align="left"><img referrerpolicy="no-referrer" src="https://images0.cnblogs.com/blog/575968/201311/04222048-0b45169192a149658de19d7938b44800.png" alt="" width="664" height="592" /></p> <p align="left">由上图可知,在降低最小置信度,并减小conf值时,增加了得到的规则。(10条增加到257条。)</p> <p align="left"> </p> <p align="left"> </p> <p align="left"> </p> 
 
<p>转载于:https://www.cnblogs.com/binpan/p/3407598.html</p>
            <!-- Inline Paywall (Embedded in flow) -->
                    </div>

        <!-- Copyright Notice -->
                <div class="m-article-copyright-notice">
            <h3 class="m-copyright-title">版权声明</h3>
            <p class="m-copyright-text">
                本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 <a href="https://china666.feishu.cn/share/base/form/shrcn5HiHOSejVQ3P07wLwwh6ae" target="_blank" rel="nofollow" class="m-copyright-report-link">举报</a> 进行投诉反馈!
            </p>
        </div>

        <!-- Publisher Card -->
        

    </div><!-- End m-detail-container -->
</div><!-- End m-detail-content-wrap -->

<!-- Footer Zone (Gray Background) -->
<div class="m-detail-footer-wrap">
    <div class="m-detail-container">
        <!-- Related Articles -->
        <div class="m-related-section">
    <div class="m-related-header">
        <h3 class="m-related-title">推荐阅读</h3>
    </div>
    <ul class="m-related-list">
                <li class="m-related-item">
            <a href="/dev/747938.html" class="m-related-link">
                <span class="m-related-item-title">Duilib中list控件支持ctrl和shif多行选中的实现</span>
                <span class="m-related-item-meta">
                    <span class="m-related-date m-time-ago" datetime="1701992340"
                        data-time="1701992340">2023-12-08</span>
                </span>
            </a>
        </li>
                <li class="m-related-item">
            <a href="/dev/747937.html" class="m-related-link">
                <span class="m-related-item-title">[ICML2015]Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shif</span>
                <span class="m-related-item-meta">
                    <span class="m-related-date m-time-ago" datetime="1701992333"
                        data-time="1701992333">2023-12-08</span>
                </span>
            </a>
        </li>
                <li class="m-related-item">
            <a href="/dev/747936.html" class="m-related-link">
                <span class="m-related-item-title">win10系统 微软输入法 于eclipse ctrl+shif+f冲突间接处理办法</span>
                <span class="m-related-item-meta">
                    <span class="m-related-date m-time-ago" datetime="1701992330"
                        data-time="1701992330">2023-12-08</span>
                </span>
            </a>
        </li>
                <li class="m-related-item">
            <a href="/dev/747935.html" class="m-related-link">
                <span class="m-related-item-title">Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shif</span>
                <span class="m-related-item-meta">
                    <span class="m-related-date m-time-ago" datetime="1701992327"
                        data-time="1701992327">2023-12-08</span>
                </span>
            </a>
        </li>
                <li class="m-related-item">
            <a href="/dev/747934.html" class="m-related-link">
                <span class="m-related-item-title">读LDD3,内存映射与DMA--PAGE_SHIF…</span>
                <span class="m-related-item-meta">
                    <span class="m-related-date m-time-ago" datetime="1701992325"
                        data-time="1701992325">2023-12-08</span>
                </span>
            </a>
        </li>
            </ul>
</div>

        <!-- Comments -->
        <!-- Comments (Hidden temporarily)
                -->

    </div>

    <!-- Site Footer (Detail Page Only) -->
    <!-- Site Footer -->
<footer class="m-site-footer">
    <div class="m-footer-container">
        <div class="m-footer-content">
            <div class="m-footer-links">
                <a href="/p/aboutus.html" target="_blank" class="m-footer-link">关于网站</a>
                <a href="/p/contactus.html" target="_blank" class="m-footer-link">联系我们</a>
                <a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">浙ICP备14026978号-4</a>
            </div>
        </div>
    </div>
</footer>
</div>

<!-- Teleport Template for Topbar Actions -->
<div id="detail-actions-tpl" class="m-hidden">
    <!-- Like -->
    <a href="javascript:;" class="m-btn-action m-btn-like btn-like has-count" data-action="vote" data-type="like"
        data-id="733443" data-tag="archives" title="点赞">
        <i class="fa-regular fa-thumbs-up"></i>
        <span class="m-btn-action-count"></span>
    </a>

    <!-- Collection -->
    <a href="javascript:;" class="m-btn-action m-btn-collection addbookbark" data-id="733443"
        data-aid="733443" data-type="archives" data-action="/addons/cms/ajax/collection.html"
        title="收藏">
        <i class="fa-regular fa-star"></i>
    </a>

    <!-- Comment -->
    <!-- Comment (Hidden temporarily)
    <a href="#comments" class="m-btn-action m-btn-comment has-count" title="评论">
        <i class="fa-regular fa-comment"></i>
        <span class="m-btn-action-count"></span>
    </a>
    -->

    <!-- Share -->
    <a href="javascript:;" class="m-btn-action m-btn-share" title="分享">
        <i class="fa-solid fa-share-nodes"></i>
    </a>

    <!-- Back to Top -->
    <a href="javascript:;" class="m-btn-action m-btn-totop" title="回到顶部">
        <i class="fa-solid fa-chevron-up"></i>
    </a>
</div>

<!-- Hidden Share Content Template -->
<div id="share-content-wrapper" class="m-hidden">
    <div class="m-share-modal-body">
        <div class="m-share-icons-wrapper">
            <a href="javascript:;" data-url="https://private-origin.imspm.com/dev/733443.html" data-title="基于DBLP的作者协作关系的挖掘"
                data-id="wechat" class="m-share-item m-share-wechat" title="分享到微信"><i
                    class="fa-brands fa-weixin"></i></a>
            <a href="javascript:;" data-url="https://private-origin.imspm.com/dev/733443.html" data-title="基于DBLP的作者协作关系的挖掘"
                data-id="weibo" class="m-share-item m-share-weibo" title="分享到微博"><i class="fa-brands fa-weibo"></i></a>
            <a href="javascript:;" data-url="https://private-origin.imspm.com/dev/733443.html" data-title="基于DBLP的作者协作关系的挖掘"
                data-id="qq" class="m-share-item m-share-qq" title="分享到QQ"><i class="fa-brands fa-qq"></i></a>
            <a href="javascript:;" data-url="https://private-origin.imspm.com/dev/733443.html" data-title="基于DBLP的作者协作关系的挖掘"
                data-id="link" class="m-share-item m-share-link" title="复制链接"><i class="fa-solid fa-link"></i></a>
        </div>
        <div class="m-share-modal-tip">点击图标分享</div>
    </div>
</div>

<!-- Page Specific Scripts -->
<script src="/assets/addons/cms/js/typezen/article.js?v=1.0.78"></script>

<!-- SEO: Structured Data (JSON-LD) for Article -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "基于DBLP的作者协作关系的挖掘",
  "image": [
    "https://private-origin.imspm.com/assets/addons/cms/img/noimage.jpg"
  ],
  "datePublished": "2023-11-24T16:56:07+08:00",
  "dateModified": "2023-11-24T16:56:07+08:00",
  "author": [{
      "@type": "Person",
      "name": "超级产品经理",
      "url": "https://private-origin.imspm.com/u/0"
  }],
  "publisher": {
    "@type": "Organization",
    "name": "超级产品经理",
    "logo": {
      "@type": "ImageObject",
      "url": "/assets/img/imspm_logo.svg"
    }
  },
  "description": "  DBLP是计算机领域内对研究的成果以作者为核心的一个计算机类英文文献的集成数据库系统。按年代列出了作者的科研成果。包括国际期刊和会议等公开发表的论文。和一"
}
</script>
                </div>
            </main>

            <!-- Right Sidebar -->
                    </div>
    </div>

    <!-- Scripts -->
    <script src="/assets/libs/jquery/dist/jquery.min.js"></script>
    <script src="/assets/libs/bootstrap/dist/js/bootstrap.min.js"></script>
    <script src="/assets/libs/fastadmin-layer/dist/layer.js"></script>
    <script src="/assets/libs/art-template/dist/template-native.js"></script>
    <script src="/assets/addons/cms/js/jquery.autocomplete.js"></script>
    <script src="/assets/addons/cms/js/cms.js"></script>
    <script src="/assets/addons/cms/js/common.js"></script>
    <script src="/assets/addons/cms/js/typezen/theme.js?v=1.0.78"></script>

    <!-- Mobile Nav -->
    <!-- Mobile Bottom Navigation -->
<nav class="m-mobile-nav" role="navigation" aria-label="移动端导航">
    <!-- Home -->
    <a href="/"
        class="m-mobile-nav-item ">
        <svg class="m-mobile-nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
            stroke-linecap="round" stroke-linejoin="round">
            <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path>
            <polyline points="9,22 9,12 15,12 15,22"></polyline>
        </svg>
        <span class="m-mobile-nav-label">首页</span>
    </a>

    <!-- Search -->
    <a href="/s.html" class="m-mobile-nav-item">
        <svg class="m-mobile-nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
            stroke-linecap="round" stroke-linejoin="round">
            <circle cx="11" cy="11" r="8"></circle>
            <line x1="21" y1="21" x2="16.65" y2="16.65"></line>
        </svg>
        <span class="m-mobile-nav-label">搜索</span>
    </a>

    <!-- Categories (Trigger for Mobile Menu usually, linking to channel index for now) -->
    <a href="/[:diyname].html" class="m-mobile-nav-item">
        <svg class="m-mobile-nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
            stroke-linecap="round" stroke-linejoin="round">
            <line x1="8" y1="6" x2="21" y2="6"></line>
            <line x1="8" y1="12" x2="21" y2="12"></line>
            <line x1="8" y1="18" x2="21" y2="18"></line>
            <line x1="3" y1="6" x2="3.01" y2="6"></line>
            <line x1="3" y1="12" x2="3.01" y2="12"></line>
            <line x1="3" y1="18" x2="3.01" y2="18"></line>
        </svg>
        <span class="m-mobile-nav-label">栏目</span>
    </a>

    <!-- User / Profile -->
    <a href="/index/user/index.html" class="m-mobile-nav-item">
        <svg class="m-mobile-nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
            stroke-linecap="round" stroke-linejoin="round">
            <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path>
            <circle cx="12" cy="7" r="4"></circle>
        </svg>
        <span class="m-mobile-nav-label">我的</span>
    </a>
</nav>

<!-- addons/contentunlocker/view/hook/unlocker.html -->
<link rel="stylesheet" href="/assets/addons/contentunlocker/css/unlocker.css?v=1783807493">
<script>
window.contentUnlockerConfig = {"theme_color":"#2563eb","dialog_title":"\u68c0\u6d4b\u5230\u6d4f\u89c8\u5668\u5f00\u542f\u4e86\u5e7f\u544a\u62e6\u622a\u5668","dialog_desc":"\u8bf7\u5173\u95ed\u5e7f\u544a\u62e6\u622a\u5668\u6216\u5c06\u672c\u7ad9\u52a0\u5165\u5e7f\u544a\u62e6\u622a\u5668\u767d\u540d\u5355\uff0c\u652f\u6301\u6211\u4eec\u7ee7\u7eed\u4e3a\u60a8\u63d0\u4f9b\u4f18\u8d28\u5185\u5bb9\u3002","close_delay":"60"};
window.contentUnlockerConfig.plugin_url = '/assets/addons/contentunlocker';
</script>
<script src="/assets/addons/contentunlocker/js/unlocker.js?v=1783807493"></script>

</body>

</html>