Press "Enter" to skip to content

探索自然语言处理 — 启动自然语言处理(第二步)

如果你是第一次接触我的“探索自然语言处理”系列,请在这里查看我的介绍性文章。

探索和精通自然语言处理 —— 一次深入的旅程

大家好,我是Deepthi Sudharsan,一名正在攻读人工智能专业的大三本科生。考虑到我已经……

VoAGI.com

最近,在一次面试过程中,我被要求探索两个问题,并在此过程中学习了一些新概念。以下是我对这两个问题的写作。

问题1:

Photo by Claudio Schwarz on Unsplash

我们有一些用印地语和英语标记的数据。我想知道如何为其他语言内容获取标签。让我们以一个例子来说明。

看看印地语和英语中的话题。有“娱乐”、“治理”、“健康”等类别。其中很多都已经分类(有些是手动分类,有些是通过深度神经分类器分类的)。所以,鉴于我们在英语中有标记的数据,我能否将其用作训练,以找到泰米尔语或卡纳达语中与娱乐相关的内容?多语言模型能否在任何方面提供帮助?

例如,假设我有大量的印地语和英语数据,我可以用这些数据做些什么,以便在某种程度上帮助理解其他语言(如泰米尔语、卡纳达语、泰卢固语等)的标签是什么?比如说,我拿印地语/英语标记的数据,并将其翻译成泰米尔语。原始标签在英语中是“娱乐”,我将其翻译为泰米尔语。然后假设该平台上没有人写过这个内容,但是否有类似的内容已经写在平台上了?如果我将从Koo翻译的版本从英语翻译成泰米尔语,是否有帮助?这个泰米尔语标签中没有内容,但是否有相关的内容?这样做是否可行?

我的学习和研究成果:

我们可以选择与某个类别(例如“பொழுதுபோக்கு”即泰米尔语中的“娱乐”)相关的内容(前提是该类别当前没有内容)。

我们可以利用BERT等多语言模型。我们甚至可以进行机器翻译并标记数据,使用零样本学习等技术(如果我们没有任何训练数据,可以使用这种技术来标记数据,这是Google翻译用于将一种语言的句子翻译成另一种语言的技术)。假设你想将一个泰米尔语句子翻译成一种非洲语言。你永远不会找到一个包含泰米尔语句子及其在该非洲语言中对应翻译的数据集。然而,借助零样本学习技术,Google翻译可以进行翻译。因此,如果我们有一个多语言模型,就可以使用零样本学习等技术标记来自其他语言的数据。

为了找到“相关”内容,我们可以使用词嵌入技术(例如,分布式方法、Word2vec可以从大型语料库中学习词语关联性、GloVe等)。对于印度语系的语料库,我们可以使用预训练的词嵌入模型,如fastText、iNLTK、indicBERT等。我们可以使用HuggingFace等库中的预训练词嵌入模型。BERT就是其中一个例子,它利用了基于上下文的相似性的概念。通过这种方式,我们可以找到相关的类别和内容。

问题2:

Courtesy: https://www.techslang.com/definition/what-is-named-entity-recognition-ner/

假设我们采用印地语内容并将其翻译成英语,然后在此基础上运行命名实体识别器。但是,与iNLTK一样,我们需要为印度语言开发自己的命名实体识别器。使用印度语言的命名实体识别器来识别人名、地点和其他实体。以泰米尔语为例,进行分类和命名实体识别(NER)。

我的学习和研究:

NER用于从一段文本中识别专有名词,并根据领域(通用、网络安全等)将它们分类到相应的类别中。不是所有的命名实体都是专有名词,因为还有集体实体、金额、日期等实体。使用NER识别“专有名词”存在一些缺点,在设计和开发NER时必须解决这些缺点。

每个句子中的专有名词数量非常有限。因此,如果我们使用大型数据集,专有名词的数量将远远超过其它类别的词语,导致数据不平衡。可以通过使用成本敏感学习等方法来解决数据不平衡的问题(无法对极大语料库进行过采样)。

接下来是歧义问题。华盛顿既可以是一个地方,也可以是一个人的名字。但这也可以通过理解上下文来解决。为此,我们可以使用双向RNN、LSTM、HMM、条件随机场等方法。可以使用能够捕捉双向上下文/信息的Transformer模型,如BERT。预处理方面,我们可以使用词性标注器,然后进行分类。

谈到为印度语言(如德拉维达语系)开发NER的问题,阻碍这一过程的一个问题是缺乏用于德拉维达语言的黄金或银标准数据。德拉维达语言的词汇量高于英语,并且语言在形态上很丰富。由于语言的复杂性,开发准确的NER是困难的,这使得它们的开发成为一个持续进行的过程。

尽管如此,我们仍然可以将其他语言的文本转换为英语,并通过NER进行处理,但前提是翻译足够准确。无论语言如何,“Curry”在泰米尔语和英语中都是“curry”。因此,我们需要将泰米尔语文本准确地翻译成英语,然后通过NER进行处理。我们可以使用预训练的多语言文本翻译模型来进行此过程,尽管对于语料库规模较小的语言,无法保证准确的结果。因此,如果我们能够收集到黄金标准数据,并能够有效地翻译和准确理解多义词的用法,就能够有效地为印度语言开发一个NER。

本系列的先前部分:

第1部分:https://medium.com/@deepthi.sudharsan/exploring-nlp-kickstarting-nlp-step-1-e4ad0029694f

Leave a Reply

Your email address will not be published. Required fields are marked *