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

简介:

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月前
|
机器学习/深度学习 自然语言处理 并行计算
【机器学习】Transformer:自然语言处理的巅峰之作
【机器学习】Transformer:自然语言处理的巅峰之作
107 0
|
2月前
|
机器学习/深度学习 自然语言处理 算法
探索机器学习中的自然语言处理技术
【2月更文挑战第16天】 在数字化和智能化的浪潮中,自然语言处理(NLP)技术已成为连接人类与机器沟通的重要桥梁。本文深入探讨了机器学习在自然语言处理中的应用,包括最新的模型架构、算法优化技巧及实际场景中的挑战和解决方案。通过逻辑严密的分析,我们将揭示如何有效利用机器学习提升NLP系统的性能,同时对未来发展趋势进行预测。
23 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习中的自然语言处理技术
【2月更文挑战第31天】 随着人工智能的飞速发展,自然语言处理(NLP)技术在机器学习领域扮演着越来越重要的角色。本文旨在深入探讨NLP的关键技术,包括语言模型、词嵌入和深度学习方法,并分析这些技术如何相互协作,以实现更高效的文本分析和理解。通过案例研究和最新研究成果的介绍,我们展示了NLP在实际应用中的强大潜力,以及它如何推动人机交互和信息检索系统的革新。
22 0
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习在图像识别中的应用与挑战探索机器学习中的自然语言处理技术
【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习已经成为计算机视觉领域的核心动力。本文将探讨深度学习在图像识别任务中的关键技术、应用实例以及面临的主要挑战。我们将重点讨论卷积神经网络(CNN)的架构优化、数据增强技术以及迁移学习的策略,并通过具体案例分析其在医疗影像、自动驾驶和面部识别等领域的应用成效。同时,我们也将指出当前模型泛化能力不足、对抗性攻击以及算力资源需求等挑战,并提出潜在的解决方向。 【4月更文挑战第30天】 在人工智能领域,自然语言处理(NLP)是赋予机器理解和响应人类语言能力的关键技术。本文将深入探讨NLP的发展历程、核心技术及其在不同领域的应用案例。我们将从
|
5天前
|
机器学习/深度学习 自然语言处理 PyTorch
【Python 机器学习专栏】自然语言处理中的深度学习应用
【4月更文挑战第30天】本文探讨了深度学习在自然语言处理(NLP)中的应用,包括文本分类、情感分析和机器翻译等任务。深度学习的优势在于自动特征学习、强大的表达能力和处理大规模数据的能力。常见模型如RNN、LSTM、GRU、CNN和注意力机制在NLP中发挥作用。Python的TensorFlow、PyTorch、NLTK和SpaCy等工具支持NLP研究。然而,数据稀缺、模型解释性和计算资源需求高等挑战仍待解决。随着技术进步,未来深度学习将进一步推动NLP发展,实现更智能的语言交互。
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习中的自然语言处理技术
【4月更文挑战第29天】本文将深入探讨自然语言处理(NLP)在机器学习领域中的应用和挑战。我们将介绍NLP的基本原理,包括文本预处理、特征提取、模型训练等步骤。然后,我们将讨论一些最新的NLP技术,如深度学习、预训练模型等,并分析其在实际问题中的应用效果。最后,我们将展望NLP的未来发展趋势,以及其在人工智能中的潜在影响。
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习中的自然语言处理技术
【4月更文挑战第24天】本文深入探讨了自然语言处理(NLP)在机器学习领域中的应用与进展。通过分析最新的技术动态,阐释了深度学习如何增强NLP的能力,并讨论了当前面临的挑战及未来的发展趋势。文中不仅总结了NLP的核心概念和关键技术,还通过案例研究展示了其在实际应用中的潜力。
|
2月前
|
机器学习/深度学习 自然语言处理 并行计算
【机器学习】“注目未来:自注意力机制的巧妙设计引领自然语言处理新潮流“
【机器学习】“注目未来:自注意力机制的巧妙设计引领自然语言处理新潮流“
47 0
|
2月前
|
机器学习/深度学习 自然语言处理 算法
在NLP中,什么是词性标注?
【2月更文挑战第13天】【2月更文挑战第37篇】在NLP中,什么是词性标注?
|
4月前
|
机器学习/深度学习 JavaScript 前端开发
机器学习 - [源码实现决策树小专题]决策树中子数据集的划分(不允许调用sklearn等库的源代码实现)
机器学习 - [源码实现决策树小专题]决策树中子数据集的划分(不允许调用sklearn等库的源代码实现)
40 0

热门文章

最新文章