如何预处理嵌入文本?

时间:2017-05-31 18:03:38

标签: neural-network nlp

在单词作为向量的传统“一热”表示中,您有一个与词汇量基数相同维度的向量。为了减少维度,通常会删除停用词,以及应用词干,词形等,以规范您要执行某些NLP任务的功能。

我无法理解是否/如何预处理要嵌入的文本(例如word2vec)。我的目标是使用这些单词嵌入作为NN的特征,将文本分类为主题A,而不是主题A,然后在主题A的文档(使用第二个NN)上对它们进行事件提取。

我的第一直觉是预处理去除停用词,使词干化等等。但是当我了解NN时,我意识到应用于自然语言,CBOW和skip-gram模型实际上需要整套词要存在 - 为了能够从上下文预测一个单词,需要知道实际的上下文,而不是规范化后的上下文的简化形式......对吗?)。 POS标签的实际顺序似乎是人类对词语预测的关键。

我找到了some guidance online,但我仍然很想知道社区在想什么:

  1. 最近是否有关于标点符号,词干化,词典化,停用词,数字,小写等最常见的最佳做法?
  2. 如果是这样,他们是什么?一般情况下,尽可能少地处理,或者在较重的一侧处理以使文本规范化更好吗?是否有权衡?
  3. 我的想法:

    最好删除标点符号(但例如在西班牙语中不删除重音符号,因为它确实传达了上下文信息),将书写数字更改为数字,不要小写所有内容(对于实体提取有用),没有词干,没有词形化。

    这听起来不错吗?

3 个答案:

答案 0 :(得分:3)

这么多问题。他们所有人的答案可能都是“依赖”。它需要被视为您要预测的类和您拥有的文档类型。尝试预测作者身份(然后你肯定需要保持各种标点符号和案例,以便测量法将起作用)不同于情绪分析(你可以摆脱几乎所有东西,但必须特别注意诸如否定之类的事情)

答案 1 :(得分:3)

我想说两端应用相同的预处理。表面形式是您的链接,因此您无法以不同方式进行标准化。我同意 Joseph Valls 的观点,但我的印象是,大多数嵌入都是以通用而非特定的方式进行培训。我的意思是谷歌新闻嵌入在各种不同的任务上表现得很好,我认为他们没有一些花哨的预处理。获得足够的数据往往更为重要。所有这一切 - 它仍然取决于: - )

答案 2 :(得分:3)

我自己一直在研究这个问题。我完全同意其他答案,它真的取决于你的问题,你必须将你的输入与你期望的输出相匹配。 我发现,对于像情绪分析这样的某些任务,可以通过预处理去除很多细微差别,但是对于文本生成,保持一切是非常必要的。

我目前正致力于生成拉丁文本,因此我需要在数据中保留相当多的结构。

我发现了一篇非常有趣的论文,对该主题做了一些分析,但它只涵盖了一小部分。但是,它可能会给你一些提示:

论文本预处理在神经网络体系结构中的作用:文本分类与情感分析的评价研究 作者:Jose Camacho-Collados和Mohammad Taher Pilehvar

https://arxiv.org/pdf/1707.01780.pdf

以下是他们的结论:

"我们的评估强调了在培训和评估数据中采用的预处理策略保持一致的重要性。通常,简单的标记化语料库与更复杂的预处理技术(例如词形还原或多词分组)相同或更好地工作,除了对应于专用域的数据集,例如健康,其中唯一标记化表现不佳。另外,在应用于简单的标记化数据集时,在多字组分组语料库上训练的单词嵌入表现出色得非常好。"