在多语种情感语料库上

数据挖掘 机器学习 Python nlp 数据集 情绪分析
2021-09-18 16:29:27

我希望为多种语言的新闻文章(每语言约 100k。用于机器学习实验)编译情绪语料库,其中每篇文章都标记为正面、中性或负面。我搜索了高低,但找不到类似的东西。我已经拥有每种语言的新闻文章。

我向社区提出的问题是,您将如何尽可能准确地实现这一目标?

我首先看的是Mechanical Turk,您可以在其中雇用人员为您手动标记每篇文章。这可能是最好的方法,但代价高昂在此处输入图像描述

接下来,我考虑了所有现有的流行库(其中一些已经使用过 Mechanical Turk)进行情感分析(AFINNBing LiuMPQAVADERTextBlob等)

  1. 情绪理念

我目前的想法是,我在其中的几个库中运行每篇新闻文章(例如 AFINN,然后是 TextBlob,然后是 VADER),并且对于那些一致显示正面、负面、中立的文章,尽管所有三个库都被语料库接受。这看起来是一个相当强大和合理的验证过程吗?

  1. 语言理念

下一个问题与语言本身有关。上面的 3 lib 管道可以用英文执行,没有问题。然而,这些图书馆并不统一支持许多其他语言(西班牙语、德语、汉语、阿拉伯语、法语、葡萄牙语等)。我正在考虑按照 VADER 的建议,以非英语语言获取新闻报道并通过谷歌翻译发送它们API 将它们变成英文,然后通过上面现有的 3 lib 管道发送它们。我确实意识到许多文章的语义会有所损失。但是,我希望有足够多的文章翻译得足够好,以至于有些文章可以通过 3 lib 管道。

我知道通过这个三盲情感管道翻译和发送新闻文章可能需要 100k 语料库并产生 10k 结果。我对此很好。准确性和价格是我关心的问题。我可以轻松获取更多数据。

你会怎么做才能更准确地获得新闻文章的情感语料库?是否有现有的最佳实践来组装这样的语料库?

1个回答

有几个问题和想法浮现在脑海。

  1. 语料库中有哪些语言?这可能会影响您可以利用的服务。
  2. 我喜欢您提到的服务本机支持的语言的“情感理念”。
  3. 我会保留“语言理念”作为最后的手段,因为翻译引擎可能无法捕捉到原始语言的情感。
  4. 如果您可以限制发送用于分类的样本数量,Mechanical Turk 将是一个不错的选择。对于每种语言,您可以尝试通过例如将字数统计到 30 个(您选择)集群中来对段落进行聚类,然后在集群中执行抽样以识别候选段落以发送给 Mechanical Turk。我已经使用这种技术来尝试更均匀地在向量空间中进行采样。

不要忽略 oW_ 的评论。您应该认真考虑将文章分成几段。您始终可以将段落分数汇总到文章中,但是随着文本变长,很难获得一个有代表性的分数。

高温高压