AI-Paper-Collector icon indicating copy to clipboard operation
AI-Paper-Collector copied to clipboard

feat(WIP): 协同框架|融合的脚手架指令集|搜索优化|并发性能优化|架构调整

Open QIN2DIM opened this issue 3 years ago • 18 comments

black . -C -l 100

QIN2DIM avatar Apr 30 '22 05:04 QIN2DIM

Thanks for formatting the code. How about the idea that "协同框架|融合的脚手架指令集|搜索优化|并发性能优化|架构调整"? We can discuss more details.

Doragd avatar Apr 30 '22 15:04 Doragd

啊啊啊- -我代码还没传上来,目前只是“新建文件夹”。

  1. [√] 协同框架:引入并发的请求网络+任务队列替换掉目前的 for loop 逻辑;
  2. [√] 融合的脚手架指令集:借助开源库 fire 重写传参逻辑,使得项目可持续拓展,可垂直分层;
  3. [...] 搜索优化:这个确实需要讨论=。=我仔细(反复)看了几遍源码,这个模糊匹配是基于标题的吗orz...;
  4. [...] 架构调整:如果这个项目打算长期维护更新,可以考虑做一些代码组织结构上的调整,否则随着 corpus/dataset 的累增,按照现有交互逻辑会越来越卡(响应迟钝)。

以上 √ 的地方我有现成的代码框架可以套过来,4 的话如果担心移植性差或臃肿的话可以考虑用 yaml 替换 json 作为对象存储,3 的话我暂时没有多的想法,但个人觉得仅仅是基于标题的 fuzzy 可能会漏检。。。

QIN2DIM avatar Apr 30 '22 16:04 QIN2DIM

Hi, @QIN2DIM. Thanks for your awesome ideas! The project is still in construction at the very beginning stage. I need to schedule some features first. I have to admit that your ideas don't seem to be fully considered by us at this time, but I sincerely invite you to join our group to strike some balance. Feel free to contact me via my Gmail (in my profile).

Doragd avatar Apr 30 '22 16:04 Doragd

@Doragd hi,

我仔细研究了一下项目最新版本的 crawler 实现,有个困扰了我很久的问题一直想请教一下-。-

就是每个配置文件下的 url 域名以及 root-path 都是统一的,为何不使用一些现代化的基础设施直接扫描所有可访问的文章链接……

然后是 acl_conf.json,其中的 tag 的作用是清洗出 aclanthology 中非 workshop 的文章标题吗-、-我用 xpath 复现了同样的业务代码,也在网页端简单对比了一下 Contents 以及 ctrl F 的结果,发现使用 tag 与观测值相差还蛮大的。如果和我理解的一样的话,每条规则可能错检或漏检几百条数据o_o ....

QIN2DIM avatar May 03 '22 20:05 QIN2DIM

@QIN2DIM 谢谢你的建议~

首先回答第二个问题:

  1. 对于ACL*系列的会议,在设计爬虫之初,我认为Workshop文章是不被包含的,因此没有包含workshop的文章
  2. 对于以下这两种情况:我认为以2021-acl*结尾的链接是值得爬取的,以2021-ecnlp*结尾的链接是不值得爬取的。为了方便处理,所以tag设置的是^/2021.acl*
* Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing: Student Research Workshop
     * https://aclanthology.org/events/acl-2021/#2021-acl-srw
* Proceedings of The 4th Workshop on e-Commerce and NLP
     * https://aclanthology.org/events/acl-2021/#2021-ecnlp-1

按照上述处理原则,我再次检查了下爬虫结果: 不符合上述要求的是EMNLP2019: 这是由于其网页本身不区分workshop和非workshop,均以D19-结尾 考虑到这一个会议对检索结果不会有太大影响和前期处理统一性的问题,没有对这一个会议进行处理。

对于大部分结果,我认为是符合要求的:

# 网页中的统计数: 572 + 140 + 37 + 44 + 7 = 800
# 返回值: (800, 'Recognizing Multimodal Entailment')
len(data['ACL2021']), data['ACL2021'][-1]

# 网页中的统计数: 779 + 44 + 43 + 9 = 875
# 返回值: (875, 'Open-Domain Question Answering')
len(data['ACL2020']), data['ACL2020'][-1]

# 网页中的统计数: 661 + 61 + 35 + 10 = 767
# 返回值: (767, 'Storytelling from Structured Data and Knowledge Graphs : An NLG Perspective')
len(data['ACL2019']), data['ACL2019'][-1]
...

综上,我这边可能还没有大面积地发现类似的问题,你可以列出下每条规则可能错检或漏检几百条数据的一些具体例子,对于不符合要求的EMNLP2019的问题,你也可以顺便修复下哈哈哈 (feel free to raise a new pr hhhh)~

Doragd avatar May 03 '22 21:05 Doragd

@QIN2DIM 对于第一个问题, 我理解的是获取所有可访问的文章链接似乎还是需要针对不同数据源进行分别的处理,比如dblp或者acl。 所以可能不是很了解有什么现代化的基础设施可以做到这件事, 欢迎来个新pr来改进这一问题(敲重点hhhh

Doragd avatar May 03 '22 21:05 Doragd

@QIN2DIM 如果你有任何新进展、新问题、或者新的回复,也可以继续comment

Doragd avatar May 03 '22 21:05 Doragd

对于这方面我还是太小白了- -有没有什么规则可以判断一个 element 是不是 Workshop 呢 0.0

QIN2DIM avatar May 03 '22 22:05 QIN2DIM

还是说-。-官方已经归档到指定的 path 下面了。

QIN2DIM avatar May 03 '22 22:05 QIN2DIM

@QIN2DIM 从我观察来看,ACLanthology官方也没有太统一的准则去规范workshop和非workshop,一些可能的经验是:对于19年以前的文章,以W开头是属于workshop的,但是也不保证非W开头就一定是主会。对于19年以后的文章,链接采用的命名规则是「年份」-「会议」-「细分」。

我个人认为这个问题似乎并没有这么重要,并不影响实际的使用(从刚才的统计结果看出)。当然我还是希望能够看到更多的具体例子(或者统计值)来说明下面的观察,因为我觉得如果属实的话,确实是一个比较严重的问题: 发现使用 tag 与观测值相差还蛮大的。如果和我理解的一样的话,每条规则可能错检或漏检几百条数据o_o ....

Doragd avatar May 03 '22 22:05 Doragd

@QIN2DIM 针对刚刚提出的第一个问题,我也希望能够有更多细节上的叙述或者讨论,因为我确实不太清楚”现代化的基础设施“具体指的是什么

Doragd avatar May 03 '22 22:05 Doragd

emmm,然而我還陷在 Workshop 的判斷規則裏,我屬於是躺平了……我稍後推上來(btw, Student Research Workshop 算不算 Workshop 呀

QIN2DIM avatar May 03 '22 23:05 QIN2DIM

我确实不太清楚”现代化的基础设施“具体指的是什么

用在 OSINT 上的工具包,一般用来扫描一个二级域名注册的子域名以及邮箱域名,或者根据一个接口域名扫描可能存在的 /path 。但我观察了一下配置文件中的站点,RESP 编排非常严谨规范,同时站点内容有很强的时效性,所以我个人感觉是用不上这些工具的,手动实现一个能做到同样需求的工具类还快些。

QIN2DIM avatar May 03 '22 23:05 QIN2DIM

emmm,然而我還陷在 Workshop 的判斷規則裏,我屬於是躺平了……我稍後推上來(btw, Student Research Workshop 算不算 Workshop 呀

  • 我上面列了两条判断规则,为了方便处理,优先满足第二条,所以这里是把srw也爬下来了
  • 因为第二条规则造成的误判,我觉得在接受范围内
  • 综上,我觉得这确实不是问题(在没有更多证据引入前

Doragd avatar May 03 '22 23:05 Doragd

我确实不太清楚”现代化的基础设施“具体指的是什么

用在 OSINT 上的工具包,一般用来扫描一个二级域名注册的子域名以及邮箱域名,或者根据一个接口域名扫描可能存在的 /path 。但我观察了一下配置文件中的站点,RESP 编排非常严谨规范,同时站点内容有很强的时效性,所以我个人感觉是用不上这些工具的,手动实现一个能做到同样需求的工具类还快些。

我个人不是很认同通过扫描的方式来获取所有可用的文章链接,理由如下:

  • 对于dblp数据来源,如何确保通过扫描的方式获取?似乎并不适用于所有情况
  • 仍然需要设计扫描规则,仍然需要对不同来源的数据设计分别的规则
  • 如何判断文章链接是可用的、有效的,似乎并不清楚
  • 抓取单个网页的信息,尽管可能会存在很多无用的信息,但是是否是一种影响更小的方式,相比于扫描全站而言

Doragd avatar May 03 '22 23:05 Doragd

@beiyuouo Bingjie这边现在也有权限来进行合并pr了。 @QIN2DIM 可以和他来继续讨论这边的进展以及code review & merge

Doragd avatar May 04 '22 00:05 Doragd

我个人不是很认同通过扫描的方式来获取所有可用的文章链接

是这样的

QIN2DIM avatar May 04 '22 06:05 QIN2DIM

我个人不是很认同通过扫描的方式来获取所有可用的文章链接

是这样的

嗯嗯,我看到你的VulcanFramework了,真的超级无敌强大,我觉得确实crawler写成协程的方式肯定更好,期待VulcanFramework的尽早merge!

Doragd avatar May 04 '22 07:05 Doragd