【问题标题】:How to deal with out-of-vocaboular words in NLP applications when word embedding is used?使用词嵌入时如何处理 NLP 应用中的词汇外词?
【发布时间】:2018-08-21 04:30:16
【问题描述】:

以下 NLP 应用程序使用词嵌入。但我不确定如果输入文本中的某个词在嵌入中不可用怎么办。有谁知道处理不在 NLP(或特别是 NER)嵌入中的单词的标准做法是什么?谢谢。

https://guillaumegenthial.github.io/sequence-tagging-with-tensorflow.html

【问题讨论】:

    标签: tensorflow nlp named-entity-recognition word-embedding


    【解决方案1】:

    一般来说,无论您的领域和模型如何,都可以保证出现一些 OOV 词。重要的是认识到这些对您的任务的影响并采取适当的措施:

    1. 了解您的整个语料库中有多少 OOV 词,以及它们的频率是否足够高以保证除忽略它们之外的任何其他操作(在词级别或更高级别,例如跳过包含 OOV 词的句子)
    2. 如果您的数据是特定领域的,并且您有一些重复的 OOV 词(例如技术术语、科学术语等),则 fastText (https://fasttext.cc/) 等工具将允许您快速训练本地嵌入。

    【讨论】:

    • ',', '.', '!' 这样的标点符号呢?它们不在词嵌入中。但显然它们不应该被忽视。如何对付它们?
    • 根据模型,标点符号可以被视为功能词(因此不携带语义向量,而是通过一些更高级别的功能影响句子语义),或者被分配像其他单词一样的向量。如果您使用的模型没有标点符号向量,并且您认为绝对需要它们,请尝试寻找一个。
    • 但是 fasttext 允许使用标点符号吗?似乎不允许使用标点符号。至少在一些 fasttext 示例中,首先过滤掉标点符号以构建 fasttext 模型。或者你知道一个允许标点符号的嵌入包?
    • 为什么你希望你的标点符号首先有嵌入?由于频率欠采样,大多数算法都会忽略标点符号的影响。
    猜你喜欢
    • 2021-08-02
    • 2021-04-18
    • 1970-01-01
    • 2016-01-19
    • 2019-01-11
    • 2018-09-04
    • 2021-11-30
    • 1970-01-01
    • 2018-07-19
    相关资源
    最近更新 更多