CCFrank4dblp icon indicating copy to clipboard operation
CCFrank4dblp copied to clipboard

部分会议显示不正常

Open liyewen521 opened this issue 3 years ago • 2 comments

首先感谢您做出如此有趣而实用的工作!

  1. 我的研究是体系结构领域,所以对#21提到的关于MICRO的问题很清楚。其中MICRO(称为大MICRO,是体系结构的顶级会议)的正确dblp网址为https://dblp.org/db/conf/micro/index.html 。然后IEEE Micro(称为小micro,是一个期刊)的dblp网址为http://dblp.uni-trier.de/db/journals/micro/ 。

  2. 我在semantic scholar上面发现有部分顶会显示不正常,如下图所示: (1)MICRO: (2)ISCA: (3)HPCA: (4)TC:

由于我对js代码并不是很了解,所以没有去直接看源码,只从现象上进行猜测。 (1)(2)(3)是同一个问题,都是带有全名和缩写,因为会议一年召开一次,所以全名里面会带上年份或者届数的字段,例如2019,53rd等。我猜测是不是因为全名采用的完全匹配,所以会导致无法正常检测,可以对全名的进行模糊匹配。 (4)的问题是只给出了全名,没有给出缩写(实际上缩写是有的,可能是这个文章没写),由于没有缩写,所以没匹配上。 综上匹配策略可以是:1. 如果同时有全名和缩写,则模糊全名+精确缩写;2. 如果只有全名或缩写,则精确匹配。

  1. 如果您能对代码结构进行介绍一下,那就更好啦~

liyewen521 avatar Jan 11 '22 07:01 liyewen521

感谢您的使用!

  1. 谢谢您的说明,我可以放心地修改链接啦~我已在数据文件中更新网址,等待上传。

  2. 谢谢您的指正!

从您提供的具体例子来看,目前 Semantic Scholar 上的匹配还有不少问题。

您对 (1-3) 的猜测是正确的,全名采用开头匹配(即使用 n-th Annual ... Symposium on 匹配期刊的全名)。

(4) 的问题已经解决,原因是在代码上偷懒 ///v/// 在超出长度的名称后有 '…' 字符,我在匹配前不加甄别地直接删除结尾的字符,用“IEEE Transactions on Computer”查找,得到 ['IEEE Transactions on Computers', 'IEEE Transactions On Computer-Aided Design Of Integrated Circuits And System'],在无法确定的情况下,CCFrank 选择不显示。 我已在匹配逻辑中增加判断是否包含 '…' 的逻辑,解决 (4) 中出现的问题。

  1. 代码结构:文件夹 css 包含样式文件,如 tag 的形状、颜色等;data 存储数据文件;js 中是对各搜索页(如 dblp 、谷歌学术等)增加标记的主要逻辑。

我猜测您可能是希望了解 js 部分判断 CCF 的内容,所以我这里介绍一下大致思路: (当然如果您希望了解其他信息,欢迎再次评论告知我) 从根目录下 script.js 出发,根据我们浏览器当前打开的页面网址不同window.location.hostname.includes(site_name),执行不同页面的匹配逻辑site_name.run(); 以我们现在讨论的 Semantic Scholar 为例,执行 js/semanticscholar.js,其中 appendRanks() 函数根据前端显示,定位我们需要的信息所在的网页元素 $(".cl-paper-venue"),获取文本如“IEEE Transactions on Computers”。 传入 js/ccf.js 的 getRankInfo() 函数,Semantic Scholar 此时的匹配方式 type 选择 'abbr'。 观察 Semantic Scholar 上会议显示缩写,期刊显示全称。 先将“IEEE Transactions on Computers”当作缩写,在 ccf.abbrFull 字典中匹配该名称,如果匹配成功,则得到该会议的信息; 而当缩写中不存在该名称 full === undefined 时,将 “IEEE Transactions on Computers” 中可能存在的 '…' 字符删除,查找名称是否与 ccf.fullUrl 字典中 key 的开头有匹配,若有,则得到该期刊的信息。

从 (1) 和 (2) 来看,(去除“Annual”及前序字符)期刊名称的开头匹配有重名的可能性,所以最好获取鼠标悬停后 tooltip 中的完整名称。 我尝试获取 tooltip 中没有成功,因为 Semantic Scholar 显示 tooltip 的做法和通常的做法不同: 鼠标悬停后,在页面中新增 div,该 div 包含完整名称,但并不与 $(".cl-paper-venue") 绑定; 鼠标移出后,该 div 的内容被清空; 下一次鼠标悬停后,新增另一个 div 显示信息。 我还没有找到好办法来获取这些文字。

我再尝试解决下 (1-3) 的问题。

谢谢您的反馈! 做系统的同学都特别厉害,要考虑好多方面、各种因素!祝 Paper 多多!

WenyanLiu avatar Jan 12 '22 02:01 WenyanLiu

感谢您耐心的回复,现在我对软件的执行流程有了初步了解,感谢~ 以及您的夸奖,也祝您Paper多多,哈哈~

  1. 首先,去除Annual及其前序字符应该不会导致会议名称的重复(这里强调是会议,因为期刊好像都不会用那些哪一届的写法,会议会这么写),例如(1)和(2)去掉Annual还是能区分的开,即International Symposium on Microarchitecture (MICRO)和International Symposium on Computer Architecture (ISCA)。但是直接去掉Annual会导致那些名字带Annual的会议检测错误,如NeurIPS的全称为Annual Conference on Neural Information Processing Systems。

  2. 我想了个办法,你看看行不行,如下:

  • 考虑最复杂的情况:2020 53rd Annual IEEE/ACM Internation Symposium on Microarchitecture (MICRO-53)。
  • 处理左右括号,分成全称2020 53rd Annual IEEE/ACM Internation Symposium on Microarchitecture和缩写MICRO-53。
  • 处理破折号,将MICRO-53变成MICRO,得到 url 为 https://dblp.org/db/conf/micro/index.html 。
  • 在数据库里面查找全称,如果查找成功则返回,如果查找失败则删除最左侧字符进行查询,如:
    • 2020 53rd Annual IEEE/ACM Internation Symposium on Microarchitecture,失败
    • 53rd Annual IEEE/ACM Internation Symposium on Microarchitecture,失败
    • Annual IEEE/ACM Internation Symposium on Microarchitecture,失败
    • IEEE/ACM Internation Symposium on Microarchitecture,成功,并得到 url 为 https://dblp.org/db/conf/micro/index.html 。
  • 对比全称和缩写得到的url是否相同,如果相同,则最终显示 “CCF A”;如果不相同,则最终显示“CCF A?”。
  • (补充)如果只有全称或缩写,则第一步,第二步,和第五步不做,相当于只有第三步和第四步。
  • (补充)CCF列表很小,计算量应该不算大。如果计算量还是太大的话,那可以先对CCF 列表存在的全称先建一个哈希表,这样可以依据哈希值做快速查找。
  • (补充)还有一个计算量大的原因如果一个会议名称长度为N且不在CCF列表,那么需要做N次查找。因此,可以提前设置一下阈值,左侧删除的字符大于N/2之后,停止查找。这个N/2可以设置,一般N/2足够了。

liyewen521 avatar Jan 12 '22 04:01 liyewen521