2.3 整合数据集


我们已经讨论整合数据集时需要考虑的一些问题:标注任务的范围、已有语料库是否含有对你有用的文档与标注信息、数据来源的多样化。

如果你计划将你的数据集公开,请确定你已经拥有对所标注信息向第三方重新发布的许可。有时可以仅发布独立的标注信息和从网站上收集数据的代码段,但最佳且最简单的方式是直接向内容提供者申请许可,尤其是当语料库和标注信息将用于商业而不是纯粹的教育目的时。

语料库构建指南

语料库语言学家John Sinclair(约翰·辛克莱尔)就构建语言学语料库提出了一些指南。尽管这些指南主要针对设计以语言现象研究为目的的语料库,但它们对任何构建语料库感兴趣的人都会有所帮助。论文全文可从http://www.ahds.ac.uk/creating/guides/linguistic-corpora/chapter1.htm下载,为方便起见,在此列出其中的指南:

1. 选择语料库的内容时不应该取决于它们所包含的语言,而主要依据其在社区中的交流功能。

2. 语料库创建者应该努力使他们的语料库尽可能代表它所来自的语言或语言

场景。

3. 只有那些已经设计成可独立比较的语料库的组成部分才应该是可比较的。

4. 决定语料库结构的准则在数量上应该比较少,彼此可以清晰地区分开,并且作为一个整体时能够有效地描写能够代表某种语言或语言变体的语料库。

5. 除了构成文本的词语和标点外,其他任何与文本有关的信息均应与纯文本分开存储,而且在需要时能够将两者合并起来。

6. 在可能的情况下,语料库中的语言样本应该由完整的文章、完整言语事件的转写文本或者尽可能接近于这一目标的其他形式组成。这意味着样本在长度上可能有较大的差别。

7. 语料库的设计与构成应该与那些形成这些决定过程中的讨论内容与论据一起完整地归档。

8. 语料库创建者应该将保持代表性与平衡性作为目标。尽管这些不是可精确定义和可实现的目标,但我们必须将它们用于指导语料库的设计和内容的选择。

9. 语料库题材方面的任何限制应该通过使用显式的而非隐含的准则予以明示。

10. 语料库的各个成分应该在保持足够覆盖范围的同时具有同质性,还应避免收录含有色情内容的文本。

2.3.1 理想的语料库:代表性与平衡性

在语料库语言学中,“代表性与平衡性”经常用于描述构建语料库时应该作为目标的那些特性。因为一个语料库永远只能是一种语言的选择性子集,而不可能包含某种语言所有可能使用的所有例子。因此,应该通过对某种语言的文本进行抽样的方式来建立语料库。由于任何一种抽样方法都不可避免地存在偏差,所以应尽力确保语料库能够代表总体样本更大范围内的变化性(Biber 1993)。用于抽样的“总体”取决于标注任务的目标和范围。例如,如果你想研究电影评论,就不需要考虑收录其他方面的评论和作品。然而,你的确需要确定在你的数据集中对不同类型的评论都提供了相应的例子。McEnery等(2006:19-22)就语言抽样问题提供了极好的论述。

创建语料库过程中另一个重要的概念是平衡性。Sinclair(2005)以这样的方式描述语料库的平衡性:它包含的不同类型文本的比例应该与有依据的和基于直觉的判断相一致。这一点主要适用于从不同类型文本进行采样的语料库。例如,用于反映美式英语的语料库必须包括所有类型的书面和口语文本,从报纸文章到聊天室讨论再到电视录音文本、图书样本等。预先确定仅收录较少样本的语料库比较易于达到平衡的目标,因为在这种前提下语料库需要考虑的文本类型范围比较少,但是相应地该语料库在普通研究中的可用性也会减少。

无可否认地,代表性与平衡性的概念难以定义,语料库语言学家已经就任何语料库是否真正具有代表性的问题进行了多年的争论。考虑语料库和世界的哪些方面可能对数据集是否可以认为具有“代表性和平衡性”产生影响,是一个可以衡量它对于其他标注工作和机器学习任务是否有用的好方法,也有助于确保得到的结果最大限度地适用于其他数据集。

注意: 需要考虑的一个重要问题是,语料库是否与任务目标相匹配。如果目标是能够处理任何电影评论,那么需要让语料库充分地反映电影评论在现实世界中的分布。这将有助于训练出能够更准确地对以后给出的评论进行自动标注的算法。

2.3.2 从因特网上收集数据

如果你正在进行文本标注,你或许将从因特网上收集语料库。有许多优秀的书籍可以提供如何从网站以及推特、论坛和其他因特网资源上收集网址、超文本标记语(HTML)标签的具体方法。这里我们将就其中一些方法稍做介绍。

Steven Bird、Ewan Klein和Edward Loper所著的《Natural Language Processing with Python》(Python自然语言处理)一书(O扲eilly出版社)提供了一些用于直接从因特网导入文本和网络数据的基本指令。例如,如果你想从古滕贝格工程图书馆(Project Gutenberg library)中的某一本书中收集文本,那么过程是非常简单的(如该书所述):

>>> from urllib import urlopen

>>> url = "http://www.gutenberg.org/files/2554/2554.txt"

>>> raw = urlopen(url).read()

但是,你应该知道一些网站禁止这样的程序下载其内容,因此你需要找到其他一些可以下载数据的方法。

如果你想从HTML页面中提取未加工的文本,NLTK已经为你提供了一个可以用于清除HTML的程序包。

>>> url = "http://www.bbc.co.uk/news/world-us-canada-18963939"

>>> html = urlopen(url).read()

>>> raw = nltk.clean_html(html)

《Natural Language Processing with Python》(Python自然语言处理)一书的第11章提供了从其他来源(比如Word文件、数据库和电子表格)收集数据的信息与资源。

在从推特和博客之类的其他网络数据源中获取信息方面,Matthew A. Russell所著的《Ming the Social Web》(社会网络挖掘)一书提供了较详细的信息,包括使用推特API的方法以及从电子邮件、LinkedIn和博客等挖掘信息的资源。

2.3.3 从人群中获取数据

迄今为止,我们一直假定你将要标注的文本或记录已经存在。但是在某些任务中,数据并不是原本就有的,或者至少没有以一种可以为我们所用的形式存在着。

我们认为,这种情况通常发生在那些要求对口语或视觉现象进行标注的场景中,而较少发生在书面语场景中——就文本来说,除非你要寻找一些很特别的东西,要求人们为你专门撰写某类文章的情况极为罕见。但是,需要口语样本、言语或者运动识别类行为记录的情况却很常见。

警告: 如果你的确需要从人们身上获取一些数据,并且你工作在大学或者企业中,你或许将不得不从律师甚至是内部审查委员会那里寻求许可。即使你正在进行自己的研究项目,你也必须让参与的志愿者清楚地知晓他们将要做什么以及为什么要求他们做这些工作。

当获取数据时(而不只是收集数据),有一些事情需要考虑:尤其是,你需要数据以自然的方式产生,或者以诵读的方式产生?要求每个人说相同的东西?让我们看看这些方式的不同之处是什么,以及将怎样影响数据。

朗读语言

朗读语言指的是在收集数据时,要求每个人朗读相同的句子或者单词的集合。例如,如果你想比较不同的方言或者口音,或者你想训练一个语音识别程序来检测什么时候人们在说同样的东西,那么这可能就是你使用朗读语言这种模式的合适场景。

VoxForge语料库使用这种方式——它提供了一系列提示使说话者可以自己录音,然后提交结果,每个说话者都提供一个用户描述来说明其语言背景。

注意: 如果你决定让人们来朗读提词器上的文本,那么一定要弄清楚文本呈现的形式(字体、黑体、斜体)怎样影响文本朗读的方式。你可能需要进行一些测试来确定你的朗读者给你的录音是有效的。

新闻广播的录音也能视为“朗读语言”,但是请注意——新闻主播的韵律与常规语音往往有较大的不同,因此这些录音可能并不有效,具体如何要取决于你的目标。

关于WSJCAM0语料库数据收集过程的详细说明可从http://www.ldc.upenn.edu/Catalog/readme_files/wsjcam0/wsjcam0.html上获取。

自发语言

自然地,自发语音是在事先不告诉说话者说话内容的情况下收集的语言内容。收集时可以问说话人一些可自由发挥的问题,并且记录他们的应答,或者简单地记录会话内容(当然,是在得到许可的前提下)。

面向机器学习的自然语言标注2.3 整合数据集相关推荐

  1. 面向机器学习的自然语言标注导读

    前言 本书的读者是那些使用计算机来处理自然语言的人.自然语言是指人类所说的任何一种语言,可以是当代语言(如英语.汉语.西班牙语),也可以指过去曾经使用过的语言(如拉丁语.古希腊语.梵语).标注(ann ...

  2. 面向机器学习的自然语言标注

    作者:[美] 普斯特若夫斯基(James Pustejovsky),[美] 斯塔布斯(Amber Stubbs) 出版社: 机械工业出版社 ISBN:9787111555155 丛书名: OReill ...

  3. NLP自然语言处理-机器学习和自然语言处理介绍(五)

    NLP自然语言处理-机器学习和自然语言处理介绍-知识抽取构建流程 1.什么是知识抽取 知识抽取,即从不同来源.不同结构的数据中进行知识提取,形成知识(结构化数据)存入到知识图谱. 知识抽取的三个基本任 ...

  4. 面向机器学习的特征工程 一、引言

    来源:ApacheCN<面向机器学习的特征工程>翻译项目 译者:@ZhipengYe 校对:(虚位以待) 机器学习将数据拟合到数学模型中来获得结论或者做出预测.这些模型吸纳特征作为输入.特 ...

  5. NLP自然语言处理-机器学习和自然语言处理介绍(四)

    NLP自然语言处理-机器学习和自然语言处理介绍-事件抽取 一.案例介绍 1.背景 事件抽取技术的核心价值,是可以把半结构化.非结构化数据转换为对事件的结构化描述,进而支持丰富的下游应用. 比如说我们要 ...

  6. 计算机视觉、机器学习、自然语言处理、机器人技术、语音识别等人工智能技术的应用

    人工智能受益于神经网络和深度学习在算法上的突破,技术水平得到飞跃提升.未来,计算机视觉.机器学习.自然语言处理.机器人技术.语音识别等人工智能技术或将给整个人类社会带来巨大改变. 语音识别与自然语言处 ...

  7. 科研指导:机器学习与自然语言处理

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Viax科研教育 科研方向:机器学习与自然语言处理 盐趣是一家专业的在线科研教育机构,核心教研团 ...

  8. Jeff Dean| 面向系统的机器学习和面向机器学习的系统

    来源:全球人工智能 概要:我们将发布一系列内容,展示 Google 在 NIPS 2017 上发布的工作成果.首当其冲的便是来自 Jeff Dean 的 PPT <面向系统的机器学习和面向机器学 ...

  9. [NSDI 17] TuX2: 面向机器学习的分布式图计算系统 学习总结

    今天要讲的文章NSDI 2017年的一篇文章,TUX2: Distributed Graph Computation for Machine Learning.本文主要想解决的问题就是:在图形引擎(如 ...

  10. 面向机器学习的特征工程翻译版

    前些日子推荐了一个仓库,是知名开源apachecn组织翻译的<面向机器学习的特征工程>英文版,可以说是特征工程的宝典,值得推荐. 仓库说明 知名开源apachecn组织翻译了<面向机 ...

最新文章

  1. 【加密解密】单表加密(Javascript实现)
  2. elasticsearch的简介_以及实现原理---全文检索引擎ElasticSearch工作笔记001
  3. node事件循环 EventEmitter 异步I/O Buffer缓冲区 模块
  4. 数据结构与算法汇总详解(一)
  5. sp_executesql (Transact-SQL) from MSDN
  6. Linux不同发型版本(Debian REHL)与软件包管理器(RPM dpkg)的概念
  7. pandas输出到excel_精通Pandas,从零基础到中级运用,看这一篇就够了
  8. 【论文阅读】Speicher: Securing LSM-based Key-Value Stores using Shielded Execution
  9. centos7挂载大于10T及以上硬盘
  10. 解决百度地图加载大量点卡顿
  11. A*算法最合理的数据结构
  12. Wannafly挑战赛29-御坂美琴(递归模拟)
  13. 20140417本人分别用12种编程语言编写的MasterSeeker热键辅助工具软件[晓亮原创]
  14. 77.组合 | 40.组合总和II | 39.组合总和 | 784.字母大小写全排列
  15. 深度学习思维导图(基于TensorFlow框架)
  16. 使用Python操作音频文件,提取音频特征
  17. Android自带的人脸识别
  18. vue渐进式框架的理解
  19. Excel如何生成条形码图片?
  20. 查看自己的CSDN访客

热门文章

  1. 过滤掉文本中的javascript标签代码
  2. c语言实验赵欣版答案,赵欣-计算机科学与技术学院
  3. 内存管理 kmalloc
  4. wireshark基本用法及过虑规则
  5. linux内存源码分析 - 伙伴系统(初始化和申请页框)
  6. Linux中tty框架与uart框架之间的调用关系剖析
  7. 电话聊天狂人(25 分)(散列函数)
  8. python弹球游戏移动球拍_python pygame实现挡板弹球游戏的代码
  9. java配环境变量_用于 Java 开发的配置工具 Simple Configuration Facade
  10. 唯一分解定理 详解(C++)