题记

与自己的导师肖老师做维基百科也有一年多时间了,对维基百科的了解也多多少少积累了一定的内容,因此有点想记录下我用维基百科做了些什么。近期也准备在华科做计算机存储方向,因此可能做维基百科(或者更大一点方向NLP)要放一阵子了,再加之我在上半年帮老师招了一批学生继续研究维基百科,自己也基本上完成了交接工作,后面的发展就看学生自己的努力了。直接进入正题吧!

维基百科

维基百科作为一个开放的知识库,是一个人人可以编辑的百科全书,它受到许多自然语言处理方面的学者将其作为高质量的语料来源,中文维基百科的副题是“海纳百川,有容乃大”也表现出维基百科自由开发的原则和宗旨。
中文维基百科访问点击此!英文的点击此!(最近好像都被墙了,记得翻墙访问)
由于每个维基百科概念都包含有结构化和非结构化的信息资源,这为找出概念对之间的关系提供良好的参考。每个概念在维基百科上的页面(article)主要包含标题(title)、概要说明(summary)、正文(main body)和分类(category),其中在标题和正文部分的文本当中还包含有大量的超链接概念,这些超链接构成了维基百科庞大的链接网络,使得每个概念在维基百科当中并不是以孤立的形式存在,而每个概念在维基页面的底端的分类列出了该概念所属的类别,这些类别为用户找到相似概念提供了方便。

先决条件关系(Prerequisite Relationship)

先决条件关系简单一点就是可以类比于课程之间所具有的“先修关系”,例如,计算机专业的学生必须完成一系列的前导课程才能进入目标课程的学习,假设这些课程的名称与相应代号有如下表所示的关系。

课程之间的“先修关系”可以用一个有向图表示,如下图。

更正式的定义就看这篇论文当中讲的吧《Crowdsourced comprehension_Predicting prerequisite structure in wikipedia》,我的研究也是从这篇文章开始的。文章当中的这句话基本上就先决条件关系最直接的解释了:
“d->d’ corresponds to the assertion “understanding d’ is a prerequisite to understanding d”".当然这个指向与我们上文的先修关系可能是反的,后面大家稍微注意一下这个区别即可。

选择维基百科的理由

首先,维基百科的文档里,通常包含了大量的超链接,这些链接可能暗示着两个文档间存在先决关系。其次,维基百科的文档都具有标准化的格式,通过其提供的API,可以方便的对文档进行特征分析,同时活跃的社区也为我们提供了有利的帮助。最后,维基百科覆盖的领域较广,提取出概念的先决关系,构建领域知识网络,能够为学习对象排序、学习路径设计、课程计划的安排提供有效的支持。

后面我就简单介绍如何通过维基百科当中的关系找到概念之间的先决条件关系,原理其实都很简单,但是自己需要举一反三,通过数学定理转换成其余更加复杂的feature来挖掘更深层的关系。

基于链接关系

由于维基百科里面相关概念之间是通过超链接联系在一起,据此可以猜想这些引用关系可能暗含着两个概念的先决关系。这与大多数人在阅读某个概念的维基百科页面时候碰到用于解释该概念的其他概念非常类似,而这些概念大多在维基百科里面又以超链接的形式出现,因此有理由对每个概念包含的超链接进行考虑。

上面图就是展现的维基百科当中的超链接关系,就拿pet和cat、dog作为例子,你们基本上应该可以明白其中的道理。但是如何将这样的关系转化为数学公式,这个就要看你自己了,我这篇文章暂时不讲,以后有机会再写。

基于分类关系

每个维基百科的概念都对应有相应的标签,可以把这些标签看成一种层次关系,与计算机网络当中的网状型拓扑结构类似,只是在概念网络当中其内部也有结点,越往内层概念的层次也越低,如果一个概念的标签在整个网络的层次越低,这就代表这个概念就越具体越特殊。当往外层走的时就会遇到一个根节点(可以将其看成网络当中的终端设备),这个节点是最抽象也最基本的概念,这样的根节点不止有一个。这样的思想和理解事物是有着相似之处的,最开始都是理解比较抽象的事物,在大脑里面建立出该概念的大体轮廓,在建立好这样的模型后再去具体化和细节化。通过这样的层次关系本文得到如下猜想,如果前一个概念是比后一个概念更加抽象,那就说明前者是后者的先决条件。

大家看上面的图的时候我建议倒过来看,我这里因为已经做成这样了,倒过来不太方便。上面当中可以明显看到概念“深度学习”的层数明显要比概念“人工智能”要更深,因此更加抽象。

基于文本的特征

这个特征暂时不太好讲,因为所涉及的内容太多,包括LDA、wordVec等都可以拿来作为文本的处理工具和对象,不同工具得出的结论也不同,有的是基于主题的思想来解释,有的还是落实到链接关系层面,但是我推荐去理解LDA,这可能是占时可以较好解释基于文本的特征如何发现概念之间的先决条件关系。LDA可以看我之前写过的博文《LDA(Latent Dirichlet Allocation)的原理和代码实现》。将主题提取出来后我们通过计算主题之间的差异度来得到先决条件关系。

基于时间的特征

在维基百科当中还有一个比较重要的是概念的创建时间,换一句话来讲,它表达的含义是后创建的概念要用先创建的概念来解释。这也就意味着创建时间越早的概念它就越抽象和越基础。

以上就是目前通过维基百科挖掘概念之间的先决条件关系的初步研究,当然如何将这四个关系转换成数学公式还是需要一番功夫,我在后头有时间也会继续写一下过程。当前可用的数据集可以见之前的那篇文章所用的数据集。除此之外,维基百科还有许多有关特征可能对概念之间的先决条件关系的挖掘有所帮助,这里我也把API地址给出,有兴趣的可以查看(API)。
对于获取超链接信息或者分类信息,我也已经写好对应的代码可以直接进行访问,可以参考我的博文《通过Python获取维基百科中概念词条的维基信息》。通过举一反三的方式你也可以写出其他特征的获取代码。

后记

通过数学公式转换成一个个features后,你可以使用机器学习的方式来对概念对进行分类,你可以像论文中那样分为两类,我后面做的也有分为三类(A -> B, B -> A, A 与 B 无关),但是思想都是一样的。如果你的正确率和准确率可以达到90%左右,那说明基本上你的模型已经很好了,我当时做的时候只达到80%左右,感觉还欠一把火,可能是特征设计还有待完善,但是相关的论文已经在CCF系列会议发表出去了,也算是有了个结果。

最后总结一下,运用维基百科可以做很多自然语言处理方向,目前课题组里面老师分配的任务当中除了我这个方向之外,还有人用维基百科做大学排名等,原理也会用到我上文当中讲的那些,因此搞懂维基百科对做NLP方向是很有帮助的!

欢迎大家访问我的主页当中的其他博文,谢谢!

博文的其他说明

该文早在2019年10月发布过,由于涉及到自己本科毕业论文的相关内容,为了避免对论文查重造成影响,文章在20年4月被我下线为草稿,因此之前可能无法访问到该文。这期间收到了一些阅读者的反馈以及感兴趣小伙伴的私信,还有一些朋友也尝试联系我咨询更多这方面的知识和问题,在此非常感谢各位朋友对我的支持,也希望更多的人能够有机会接触这个领域,细细研究一番倒还有那么点意思呢!当然我在这里撰写的博文也仅仅给大家一个参考,更多的需要阅读相关论文才能收获更多。

本科毕业答辩完后,回首论文最初的起点以及本科期间的葱葱岁月,内心五感交集,复杂难以言说,但我依旧清晰记得第一次正式接手做科研的那段日子,平淡中蕴含着对未来的希望。非常幸运自己能够涉足该领域,不仅以独立第一作者在CCF推荐会议上发表了相关论文并顺利保研,也让我对“科研”有了大概的认识和经历,对应的毕业论文很荣幸被评为优秀论文,最后在计算机类八校联盟毕业答辩当中获得本校唯一的一等奖。在这里特别感谢我的指导导师肖老师,预祝肖老师的科研事业越做越强,实验室的发展越来越好。

利用维基百科挖掘概念之间的先决条件关系(初探)相关推荐

  1. 【NLP】利用维基百科促进自然语言处理

    作者 | Nicola Melluso 编译 | VK 来源 | Towards Data Science 介绍 自然语言处理(NLP)正在兴起.计算语言学和人工智能正在联手促进新的突破. 虽然研究的 ...

  2. [评测] 利用维基百科实现高质量中文简繁转换

    自从有了简体中文以来,中文的简繁转换便成了一项新兴职业,特别是近年来,两岸三地的交流愈发频繁,这种需求更为旺盛.当然,你可以付钱选择专业的公司来帮您完成文件.文章等等的职业级简繁转换:然而,您也可以选 ...

  3. 机器学习、人工智能、深度神经网络和神经网络,四个概念之间有什么关系?

    这些概念大家经常碰到,可能会有一些混淆,我这里解释下. 人工智能,顾名思义ArtificialIntelligence,缩写是大家熟知的AI.是让计算机具备人类拥有的能力--感知.学习.记忆.推理.决 ...

  4. 基于维基百科的用户意图分类

    关于"用户查询意图分类(识别)",在很久以前就开始关注了,最近开始阅读一些文章.前期得文章中,多半在特征抽取中,提到的都是用其他得资源比如查询日志比较多.今天偶然读了一篇文章,以一 ...

  5. 利用中文维基百科数据进行词语相似度word2vec实验

    使用维基百科数据利用word2vec简历词向量, 通过对词向量之间的距离的比对,查找出与给出词语相似度较高的单词进行返回 1.使用维基百科官方给出的文档处理程序处理从维基百科上下载的压缩包文件成原始t ...

  6. NLP之word2vec:利用 Wikipedia Text(中文维基百科)语料+Word2vec工具来训练简体中文词向量

    NLP之word2vec:利用 Wikipedia Text(中文维基百科)语料+Word2vec工具来训练简体中文词向量 目录 输出结果 设计思路 1.Wikipedia Text语料来源 2.维基 ...

  7. ML之prophet:利用prophet算法对维基百科页面的日志每日页面浏览量实现回归预测(时间序列的趋势/周季节性趋势/年季节性趋势)案例

    ML之prophet:利用prophet算法对维基百科页面的日志每日页面浏览量实现回归预测(时间序列的趋势/周季节性趋势/年季节性趋势)案例 目录 利用prophet算法对维基百科页面的日志每日页面浏 ...

  8. 利用Gensim训练关于英文维基百科的Word2Vec模型(Training Word2Vec Model on English Wikipedia by Gensim)

    Training Word2Vec Model on English Wikipedia by Gensim 更新:发现另一篇译文:中英文维基百科语料上的Word2Vec实验,该译文还提供了中文维基百 ...

  9. 面向维基百科的领域知识演化关系抽取

    题目:面向维基百科的领域演化知识关系抽取 期刊:计算机学报 时间:2016 摘要 重点在于领域知识的演化关系 网络数据的多样和无序是用户难以准确有序的获取领域之间的关系,提出一种面向中文维基百科领域知 ...

  10. 基于中文维基百科的词向量构建及可视化

    你将使用Gensim和维基百科获得你的第一批中文词向量,并且感受词向量训练的基本过程. 词向量原理详解请参考: 词向量技术原理及应用详解(一) 词向量技术原理及应用详解(二) 词向量技术原理及应用详解 ...

最新文章

  1. SysTick定时器的一个简单应用
  2. 四格漫画《MUXing》——度姐传说
  3. 高级cmd攻击命令_一步一步学习DVWA渗透测试(Command Injection命令行注入)-第七次课...
  4. YAML 学习笔记 .yml
  5. mysql - 5.5.21_MySQL5.5.21安装配置教程(win7)
  6. mysql打开闪退 ini_解决MySql客户端秒退(找不到my.ini)
  7. linux命令:FTP服务
  8. 用计算机弹雅俗共赏,聊聊雅俗共赏:钢琴、饺子和面
  9. 在oracle 12c上如何禁用haip,以及打开haip,以及对haip的理解
  10. snmp 获取mac add table_【群晖系统】不拆机不进PE直接修改黑群晖的SN和MAC
  11. [Android] 软件中选择文件夹功能
  12. matlab 设计 希尔伯特变换器,基于Matlab的FIR型希尔伯特变换器设计
  13. Nik Collection 5 Mac,最新PS滤镜插件套装
  14. 处理:TF卡突然变成8M,格式化提示写保护
  15. 白话空间统计二十三回归分析番外:残差可视化
  16. Ubuntu系统修复GUID格式GPT硬盘的引导
  17. 树链剖分 --算法竞赛专题解析(30)
  18. 暑期集训1期11暑期集训一期12阶段性测验
  19. 嵌入式工作会越来越少吗?
  20. 阿里云创建管理bucket(一)

热门文章

  1. hard link soft link
  2. 微信小程序获取用户绑定手机号
  3. 无线网络的几种认证与加密方式
  4. ensp 下一跳选址
  5. Word设置子标题跟随上级标题变化
  6. 谷歌地图kml能透明吗_如何打开KML和KMZ文件并与卫星影像叠加
  7. 快速入门机器学习——特征抽取
  8. 为什么正定矩阵等于转置_线性代数28——对称矩阵及正定矩阵,正定性
  9. matlab方差分析盒型图
  10. 20220520数据结构绿皮书读书笔记