我们系统的一部分执行有限的基于规则的词标签(有点 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 教程中找到下一个最佳单词,而我想标记每个单词/输入。
所以,我的问题是:
- 双向 RNN 是该任务的好选择吗?如果是这样,它的成分应该是什么?你会推荐多少步骤和隐藏层?
- 如果 RNN 不是一个好的选择,你还会推荐什么?
- 如果我们的标签不关心词的含义/相似性,使用词嵌入会增加准确性吗?