首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏素质云笔记

    比赛必备 ︱ 省力搞定三款词向量训练 + OOV词向量问题的可性方案

    (out of vocabulary,OOV)未登录词向量问题 3.1 fasttext 解决OOV的词向量最佳方案 3.2 两个词向量空间对齐 ---- 1 之前的几款词向量介绍与训练帖子 glove 高级词向量表达(二)——FastText(简述、学习笔记) fastrtext︱R语言使用facebook的fasttext快速文本分类算法 极简使用︱Gemsim-FastText 词向量训练以及OOV 地址:https://ai.tencent.com/ailab/nlp/embedding.html ---- 3 OOV(out of vocabulary,OOV)未登录词向量问题 未登录词又称为生词 在第二种含义下,未登录词又称为集外词(out of vocabulary, OOV),即训练集以外的词。通常情况下将OOV与未登录词看作一回事。 如果按照上面的训练方式,也能够快速解决OOV问题吗?

    4.3K50发布于 2019-05-28
  • 来自专栏素质云笔记

    极简使用︱Gemsim-FastText 词向量训练以及OOV(out-of-word)问题有效解决

    + 版本的fasttext训练 3 fasttext使用 3.1 获得词向量 3.2 词向量词典 3.3 与word2vec 相同的求相似性 3.4 求词附近的相似词 3.5 fasttext自带的OOV negatively, but with less susceptibility to one large distance dominating the calculation. 3.5 fasttext自带的OOV 再kaggle的1%方案中就提到fasttext应对OOV的问题,About my 0.9872 single model 原表述: Fixed misspellings by finding word ,也可以基于glove等向量来自己构造一套方法 3.5 如何获得fasttext的n-grams词向量 fasttext_wrapper.py,20181111补充,来看看fasttext内部如何应对OOV self.ngrams raise KeyError('all ngrams for word %s absent from model' % word) 以上是fasttext如何应对OOV

    3.9K20发布于 2019-05-26
  • 来自专栏小小挖掘机

    NLP入门(2)-分词结果评价及实战

    对于分词结果的评价,本文主要介绍五个指标,分别是精确率、召回率、F1值、OOV Recall Rate和IV Recall Rate。 1.2 OOV Recall Rate和IV Recall Rate 接下来介绍两个比较新奇的指标。OOV的意思是未登陆词(Out of Vocabulary),也可以称作新词。 OOV Recall Rate指的就是分词方法把这些未登陆词给找出来的能力,如果一种分词方法,能够找出像中国人民大学这种的新词,那么它的OOV Recall Rate会比较高。 = OOV_R / OOV IV_Recall_Rate = IV_R / IV return precision,recall,F1,OOV_Recall_Rate,IV_Recall_Rate OOV Recall Rate=0.1,由此可以看出新词发现的能力比较弱,休斯顿马赛克队对于分词结果的影响较大。

    1.8K20发布于 2019-11-18
  • 来自专栏小鹏的专栏

    [语音识别] kaldi -- aidatatang_200zh脚本解析:词典准备

    lexicon-en.txt(格式:数据集中的英文单词 及其对应的拼音发音) - Downloading CMU dictionary - 格式化cmu字典(把字典中重音和发音标记去除) - 生成words-en-oov.txt (数据集中有,字典中没有的单词) - 生成lexicon-en-iv.txt (数据集能在字典中取得的单词,及其对应的cmu音素) - 下载安装g2p_model(单词到音素模型,用于转换oov) - 生成lexicon-en-oov.txt (使用g2p_model生成,oov 及其对应的cmu因素 *由于words-en-oov中含有【VISA卡】这种中英文混用的单词会导致转换失败,会少21条数据 ,不知道对后面会不会有影响*) - 生成lexicon-en-phn.txt (merge in-vocab and oov lexicon) - 将cmu和拼音中无法转换的cmu音素替换成可以转换的因素

    65120发布于 2021-07-19
  • 来自专栏小鹏的专栏

    [语音识别] kaldi -- aidatatang_200zh脚本解析:语言模型训练

    输入:data/local/train/text data/local/dict/lexicon.txt 输出:data/local/lm (含text.no_oov, word.counts, unigram.counts , word_map, 3gram-mincount/lm_unpruned.gz) local/train_lms.sh || exit 1; 流程: text.no_oov 把data/local /train/text的文件名索引替换成<UNK> word.counts 统计text.no_oov中单词出现的个数,并按出现次数倒序 unigram.counts 合并text.no_oov和dict word_map 通过get_word_map.pl生成word_map,输入unigram.counts中的单词并加入"" "" "<UNK>" train.gz 将text.no_oov

    42710发布于 2021-07-19
  • 来自专栏AI科技评论

    ACL2019 | 中文到底需不需要分词

    原因可以部分归结为“词”级别的数据稀疏问题、OOV(out-of-vocabulary)问题和过拟合问题。 可以看到,在两个方向上都是“字”优于“词”,而且OOV也有显著优势。 分析 在本节中,我们将从数据稀疏、OOV和过拟合三个方面去分析“字”优于“词”的原因。 OOV问题 另一方面,“词”模型也有更多的OOV。如果是因为OOV问题导致的“词”模型效果欠佳,那么我们期望可以通过减少OOV来缩小与“字”模型的差距。 但是正如上面所讲的,减少OOV就意味着降低频率界限,这样就会加剧数据稀疏问题。因此我们使用另一种方法:对不同的词频率界限,我们在数据集(包括验证机和测试集)中除去那些包含OOV词的句子。 这说明,对于“字”模型而言,OOV不是一个突出的问题,缩小数据集会导致效果下降;对于“词”模型,OOV的确会严重阻碍模型的表现,减少数据集中的OOV有利于效果提升。

    1.8K20发布于 2019-05-24
  • 来自专栏AI科技大本营的专栏

    中文NLP的分词真有必要吗?李纪为团队四项任务评测一探究竟 | ACL 2019

    这篇文章在分析分词不 work 的时候,很大一部分把不 work 的原因归因于 oov 太多,我个人不认同,至少分类动不动就能开十万+ 级别的词表,一方面 oov 不会太多,另一方面即使 oov 太多, 也应该分析一下哪些 oov 导致模型不 work 吧,其实我个人认为根本不是 oov 的原因造成的。 对此,李纪为回答道: 李纪为:文章提到几个方面,OOV 是其中一个方面,但并不是所有。除了 OOV 之外, data sparsity 也是一个重要原因。 从文章的图2上看,在同样的数据集上,对于不同 OOV 的frequency bar (意思是 frequency 小于 1 算作 OOV,还是 frequency 小于 5 算作 OOV),实验结果是先升再降的 图2 数据稀疏性对基于词语和基于字符的模型的影响 4.2 OOV 对word model 来说,OOV 是另一重要影响因素。

    1.1K20发布于 2019-07-03
  • 来自专栏AI应用开发实践

    Tokenizer 和 BPE

    2.1.1 OOV 问题 OOV问题(Out-Of-Vocabulary Problem) 是自然语言处理(NLP)中因词表覆盖不足导致的核心挑战。 ,常常在预设词表中查询不到,进而就会触发 OOV 问题。 通过子词分词可以在一定程度上消除 OOV 问题。 比如输入一个 OOV 词: "unbreakable",这个词会被拆解为 ["un", "break", "able"],而这三个子词全部在词表内,OOV 被消除。 OOV 问题是 NLP 模型泛化能力的核心瓶颈。子词分词(BPE/WordPiece)通过将 OOV 词分解为可管理的语义单元,成为当前最有效的解决方案。

    30910编辑于 2026-03-26
  • 来自专栏深度学习自然语言处理

    长文实践 | 详述文文本生成任务之营销文本生成

    ': oov,             'len_OOV': len(oov),             'y': [self.vocab.SOS] +             abstract2ids , 1 for the second source OOV             oov_num = oovs.index(w)             # This is e.g. 20000 for 需要注意的是,PGN可以⽣成在source⾥⾯出现过的OOV tokens,所以我们对reference的token的映射方式将不同于以往(以往通常将reference中的OOV toekn直接替换为“  = data_batch["OOV"]     len_OOV = torch.tensor(data_batch["len_OOV"])     x_padded = padding(x, x_max_length , len_OOV 2.

    1.1K42编辑于 2022-09-13
  • 来自专栏相约机器人

    使用TensorFlow 2.0的LSTM进行多类文本分类

    vocab_size = 5000 embedding_dim = 64 max_length = 200 trunc_type = 'post' padding_type = 'post' oov_tok = '<OOV>' training_portion = .8 定义两个包含文章和标签的列表。 oov_token当遇到看不见的单词时,要赋予特殊的值。这意味着要<OOV>用于不在中的单词word_index。 fit_on_text将遍历所有文本并创建像这样的字典: tokenizer = Tokenizer(num_words = vocab_size, oov_token=oov_tok) tokenizer.fit_on_texts 运行以下代码,探索第11条文章,可以看到有些单词变成了“ <OOV>”,因为它们没有进入前5,000个排名。

    4.8K50发布于 2019-12-19
  • 来自专栏深度学习自然语言处理

    NLP硬核入门-PointerNet和CopyNet

    1 背景介绍 1.1 OOV 在NLP领域中,由于词表大小的限制,部分低频词无法被纳入词表,这些词即为OOV(Out Of Bag)。它们会统一地被UNK替代显示,其语义信息也将被丢弃。 OOV难以完全规避,有两个主要原因: (1)命名实体常常包含重要的信息,但是许多命名实体也是低频词,常常无法被纳入词表。 (2)网络新词层出不穷,旧词表无法及时的更新。 PtrNet主要应用于NLP的文本摘要任务、对话任务、(特定条件下)的翻译任务,目的在于应对OOV问题。 这样,由于decoder输出的是一个指针序号的序列,而不是具体的词,也就没有了OOV问题;同时,因为不需要构建词表,就从根本上解决了词表内容和词表长度的问题。 (3)要将PtrNet用于翻译任务,需要做一些额外的工作:遇到OOV词时,在使用Location Softmax模块前,会进行两个判定,一个是对OOV词进行查表(法语-英语字典)判断相应的词是否在target

    1.4K20发布于 2019-11-12
  • 来自专栏机器学习算法与Python学习

    NLP预训练模型大集合

    近日,Separius 在 GitHub 上列举了一系列关于 NLP 预训练模型的近期论文和文章,力求全面地概述 NLP 各个方面的最新研究成果,包括词嵌入、池化方法、编码器、OOV 处理等。 OOV 处理 A La Carte Embedding: Cheap but Effective Induction of Semantic Feature Vectors:基于 GloVe-like 嵌入的近期结果构建 OOV 表征,依赖于使用预训练词向量和线性回归可高效学习的线性变换。 Mimicking Word Embeddings using Subword RNNs:通过学习从拼写到分布式嵌入的函数,合成地生成 OOV 词嵌入。

    91220发布于 2019-07-04
  • 无需重新训练即可为语音识别器添加新词

    在推理时,使用上下文适配器嵌入罕见词或词表外(OOV)实体名称列表,在每个音频时间帧,一个注意力模块尝试将名称嵌入与音频表示进行匹配。解码器偏置:在解码器偏置方面获得了积极结果。 一元语法增强:通过一个OOV/BOOST类将列表中的词添加到外部语言模型来提升其概率,从而在推理期间保持语言模型不变。 基于发音的词典查找:对于罕见词和OOV词,音素预测假设比子词预测更准确。因此,使用强制对齐来识别音素序列中的词边界。如果与一个词对应的音素序列与词典中某个词的发音完全匹配,则将该词替换为词典实体。 而解码器偏置技术则进一步提升了罕见词和OOV词的候选路径在图中排名靠前的可能性。

    14010编辑于 2026-01-27
  • 来自专栏ATYUN订阅号

    用不确定性来解释和调试你的深度学习模型

    解决此问题的常用方法是使用特殊的OOV(Out of Vocabulary)嵌入。 想想某个物品的广告商。所有罕见的广告商都共享相同的OOV嵌入,因此,从模型的角度来看,他们本质上就是一个广告商。 这个OOV广告商有许多不同的商品,每个商品都有不同的CTR。如果我们仅使用广告商作为CTR的预测,我们就会得到OOV的高不确定性。 为了验证模型对OOV输出的高不确定性,我们取一个验证集,并转换所有广告商嵌入到OOV。接下来,我们检查了转换前后的不确定性。正如预期的那样,不确定性增加了。 我们可以针对不同的特征重复这一点,并寻找在被OOV嵌入替换时导致低不确定性的特征。这些特征要么是无信息性的,要么是我们将它们提供给模型的方式并不理想。

    78930发布于 2018-08-16
  • 来自专栏小鹏的专栏

    [语音识别] kaldi -- aidatatang_200zh脚本解析:获取对齐文件(对指定的数据进行对齐,作为新模型的输入)

    gmm-align-compiled 输入:tree & final.mdl & text & L.fst & feats 输出:ali.JOB.gz tra="ark:utils/sym2int.pl --map-oov $oov -f 2- $lang/words.txt $sdata/JOB/text|"; $cmd JOB=1:$nj $dir/log/align.JOB.log \ compile-train-graphs

    1.1K20发布于 2021-07-20
  • 来自专栏机器学习技术分享

    7.、隐马尔可夫(HMM)/感知机/条件随机场(CRF)----词性标注

    词性支撑着许多高级应用,当下游应用遇到 OOV 时,可以通过 OOV 的词性猜测用法,比如上面的句子“林晚霞”就识别为人名进行处理,而不会拆开。 OOV 是任何自然语言处理任务的难题。 词性标注模型 统计方法为这两个难点提供了解决方案,那就是我们熟悉的序列标注模型。 但 OOV问题就出现了,无法把“李狗蛋”识别成人名,隐马尔可夫模型一步走错满盘皆输,其根本原因在于隐马尔可夫模型只能利用单词这一个状态特征,无法通过姓氏“李”来推测“李狗蛋”是人名。 运行会有些慢,结果如下: 李狗蛋/nr 的/u 希望/n 是/v 希望/v 上学/v 李狗蛋/人名 的/助词 希望/名词 是/动词 希望/动词 上学/动词 这次的运行结果完全正确,感知机成功的识别出 OOV crf_pos.py 运行时间会比较长,结果如下: 李狗蛋/nr 的/u 希望/n 是/v 希望/v 上学/v 李狗蛋/人名 的/助词 希望/名词 是/动词 希望/动词 上学/动词 依然可以成功识别 OOV

    1.6K20发布于 2020-02-18
  • 来自专栏深度学习自然语言处理

    【干货】基于pytorch的CNN、LSTM神经网络模型调参小结

    处理词汇表中在词向量里面找不到的word,俗称OOV(out of vocabulary),OOV越多,可能对加过的影响也就越大,所以对OOV词的处理就显得尤为关键,现在有几种策略可以参考: 对已经找到的词向量平均化 随机初始化或者全部取zero,随机初始化或者是取zero,可以是所有的OOV都使用一个随机值,也可以每一个OOV word都是随机的,具体效果看自己效果 随机初始化的值看过几篇论文,有的随机初始化是在( 特别需要注意处理后的OOV词向量是否在一定的范围之内,这个一定要在处理之后手动或者是demo查看一下,想处理出来的词向量大于15,30的这种,可能就是你自己处理方式的问题,也可以是说是你自己demo可能存在

    4.3K70发布于 2018-04-10
  • 来自专栏AI研习社

    模型可解释性差?你考虑了各种不确定性了吗?

    解决此问题的常用方法是,使用特殊的 Out of Vocabulary(OOV) 嵌入向量。 想想一篇文章的广告客户,如果所有稀有的广告客户都共享同一个 OOV 嵌入向量,那么从模型的角度来看,它们基本上就是同一个广告客户。 此 OOV 广告客户有许多不同的商品,每个商品都有不同的点击通过率(CTR)。如果我们仅使用广告客户作为点击通过率的预测因子,那么 OOV 将产生很高的不确定性。 为了验证模型输出 OOV 的高度不确定性,我们采用了验证集并将所有广告客户嵌入向量转换为 OOV。接下来,我们检查了向量转换前后模型的不确定性。正如预期那样,由于向量的转换,模型的不确定性增加了。 我们可以针对不同的特征重复这一点,然后找出那些在采用 OOV 嵌入向量替换时导致较低不确定性的特征。这些特征都是不提供信息的,或者是因为我们将它们提供给模型的方式不对。

    1.1K40发布于 2018-08-16
  • 来自专栏深度学习框架

    根据译文片段预测翻译作者

    vocab entries:", vocab[:5]) 接下来,我们需要用 vocab 创建 StaticVocabularyTable,因为 0 被保留用于表明 padding,1 被保留用于表明 OOV vocab_size+2],代码如下所示 keys = vocab values = range(2, len(vocab) + 2) # reserve 0 for padding, 1 for OOV tf.lookup.KeyValueTensorInitializer( keys, values, key_dtype=tf.string, value_dtype=tf.int64) ​ num_oov_buckets = 1 vocab_table = tf.lookup.StaticVocabularyTable(init, num_oov_buckets) 最后我们要封装一个函数用于 standardize,

    42230发布于 2021-07-28
  • 来自专栏Coding01

    用 TensorFlow_text(3) 构建 Rasa 中文分词 tokenizer

    components.fanlyJiebaTokenizer.JiebaTokenizer - name: CRFEntityExtractor - name: CountVectorsFeaturizer OOV_token : oov token_pattern: '(? - name: TensorFlowTextTokenizer - name: CRFEntityExtractor - name: CountVectorsFeaturizer OOV_token : oov token_pattern: '(?

    1.7K10发布于 2021-02-24
领券