使用 Tensorflow 进行文字标注

数据挖掘 神经网络 nlp 监督学习 词嵌入 张量流
2021-09-30 20:33:57

我们系统的一部分执行有限的基于规则的词标签(有点 WSD)。基本上,它需要一个句子的依赖树,找到感兴趣的词或词性标签,并根据词本身、词性标签、句子中的位置等为每个词分配一个标签/意义。

我想知道是否可以将一般的 ML 方法,特别是 Tensorflow 用于该任务,如果可以,可以尝试哪些方法。我熟悉 ML 的理论基础知识,但从未在工作中实际使用过它,因此我将不胜感激任何指针。

基本上,我们的输入是一个句子的 ConLL 表示,我们可以把它变成一个矩阵:

[
 ['cat', 'NN', 'nsubj']
 ['jumped', 'VBD', 'root']
 ['over', 'IN', 'case']
 ['fox', 'NN', 'nmod:over']
]

我们可以将单词和标签编码为数字,并将句子填充到 60 个单词的最大长度,这给出了最终输入的 60x3 整数矩阵。然后我们的输出是一个包含 60 个数字的向量,其中包含对应输入单词的标签代码。

到目前为止,我的研究指向使用双向 RNN 来完成任务,但是我能找到的所有教程都将它们用于分类(与 MNIST 一样)或在 Tensorflow 的 RNN 教程中找到下一个最佳单词,而我想标记每个单词/输入。

所以,我的问题是:

  1. 双向 RNN 是该任务的好选择吗?如果是这样,它的成分应该是什么?你会推荐多少步骤和隐藏层?
  2. 如果 RNN 不是一个好的选择,你还会推荐什么?
  3. 如果我们的标签不关心词的含义/相似性,使用词嵌入会增加准确性吗?
1个回答

这个问题的一个解决方案可以在Grammar as a Foreign Language中找到。该论文概述了一个使用序列到序列 LSTM(长期短期记忆模型)将英语句子“翻译”成句法选区分析树的系统。可以在此处找到 TensorFlow 实现。