美文网首页
opennmt-tf 关键术语说明

opennmt-tf 关键术语说明

作者: 小飞侠fayer | 来源:发表于2019-06-29 12:18 被阅读0次

1. 词嵌入向量WordEmbedding

定义:
词嵌入向量(WordEmbedding)是NLP里面一个重要的概念,我们可以利用WordEmbedding将一个单词转换成固定长度的向量表示,从而便于进行数学处理。本质上降低维度处理

详见:https://www.jianshu.com/p/2a76b7d3126b

2. 分词Tokenization

2.1 定义

2.1.1 目标(Goal)

将文本切分成单词序列(divide text into a sequence of words),单词指的是一串连续的字母数字并且其两端有空格;可能包含连字符和撇号但是没有其它标点符号

2.1.2 Tokenizatioan 容易吗?

2.1.2.1 什么是词(What’s a word)?

i. English:
  1. “Wash. vs wash”
  2. “won’t”, “John’s”
  3. “pro-Arab”, “the idea of a child-as-required-yuppie-possession must be motivating them”, “85-year-old grandmother”

ii. 东亚语言(East Asian languages):
  1. 词之间没有空格(words are not separated by white spaces)

2.1.2.2 分词(Word Segmentation)

i. 基于规则的方法(Rule-based approach): 基于词典和语法知识的形态分析(morphological analysis based on lexical and grammatical knowledge)
 ii. 基于语料库的方法(Corpus-based approach): 从语料中学习(learn from corpora(Ando&Lee, 2000))
 iii. 需要考虑的问题(Issues to consider): 覆盖面,歧义,准确性(coverage, ambiguity, accuracy)

2.1.2.3 统计切分方法的动机(Motivation for Statistical Segmentation)

i. 未登录词问题(Unknown words problem):
  ——存在领域术语和专有名词(presence of domain terms and proper names)
 ii. 语法约束可能不充分(Grammatical constrains may not be sufficient)
  ——例子(Example): 名词短语的交替切分(alternative segmentation of noun phrases)
 iii. 举例一
  1. Segmentation:sha-choh/ken/gyoh-mu/bu-choh
  2. Translation:“president/and/business/general/manager”
 iv. 举例二
  1. Segmentation:sha-choh/ken-gyoh/mu/bu-choh
  2. Translation:“president/subsidiary business/Tsutomi[a name]/general manag

2.2 标记化

默认情况下,OpenNMT-tf 需要并生成分词文本。因此,用户负责对输入进行分词,并使用他们选择的工具使输出无效。
但是,OpenNMT-tf提供了基于C ++ OpenNMT Tokenizer的分词工具,可以通过两种方式使用:
offline:使用提供的脚本在执行前手动对文本文件进行分词,并将输出解除声明以进行评估
online:配置执行以即时应用分词和去分词

注意:该pyonmttok软件包仅在Linux上受支持。

2.3 配置文件

YAML文件用于设置分词器选项,以确保数据准备和培训期间的一致性。例如,此配置使用OpenNMT分词器在简单的基于单词的标记化中定义:

mode: aggressive
joiner_annotate: true
segment_numbers: true
segment_alphabet_change: true

有关可用选项的完整列表,请参阅Tokenizer文档。

2.4 离线使用

您可以onmt-tokenize-text直接调用脚本并传递tokenizer配置:

echo "Hello world!" | onmt-tokenize-text --tokenizer_config config/tokenization/aggressive.yml
Hello world ■!

2.5 在线使用

在线使用一个关键特性是在训练期间即时分词。这样可以避免分词文件的需要,还可以提高预处理管道的一致性。这是一个示例工作流程:

1.使用自定义分词器构建词汇表,例如:

onmt-build-vocab --tokenizer_config config/tokenization/aggressive.yml --size 50000 --save_vocab data/enfr/en-vocab.txt data/enfr/en-train.txt

onmt-build-vocab --tokenizer_config config/tokenization/aggressive.yml --size 50000 --save_vocab data/enfr/fr-vocab.txt data/enfr/fr-train.txt

文本文件仅作为示例提供,不属于存储库。

  1. 在数据配置中引用tokenizer配置,例如:
data:
  source_tokenization: config/tokenization/aggressive.yml
  target_tokenization: config/tokenization/aggressive.yml

相关文章

  • opennmt-tf 关键术语说明

    1. 词嵌入向量WordEmbedding 定义:词嵌入向量(WordEmbedding)是NLP里面一个重要的概...

  • 餐厅的一百零八个关键词 01

    前言 本系列偏向说明,主要普及一些西餐关键常用术语 而术语,每天都会新增,包括各种餐厅自创自用的 包括不限...

  • 术语说明

    术语说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序...

  • 常用排序算法总结

    排序算法说明 0 / 1 排序的定义 对一序列对象根据某个关键字进行排序 术语说明 稳定:如果 a 原本在 b 前...

  • (转载)十大经典排序算法最强总结(含JAVA代码实现)

    0、排序算法说明 0.1 排序的定义 对一序列对象根据某个关键字进行排序。 0.2 术语说明 稳定:如果a原本在b...

  • java算法

    0、排序算法说明 0.1 排序的定义 对一序列对象根据某个关键字进行排序。 0.2 术语说明 稳定:如果a原本在b...

  • 网络术语说明

    TPS 衡量业务层处理性能的重要指标(每秒钟request/事务的处理数量)。业务服务处理一个完整的业务过程,并向...

  • 快速使用opennmt-tf

    1 快速使用opennmt http://opennmt.net/OpenNMT-tf/quickstart.ht...

  • 十大经典排序算法(js实现)

    参考:十大经典排序算法 0、排序算法说明 0.1排序的定义 对一序列对象根据某个关键字进行排序。 0.2 术语说明...

  • 算法基础 - 排序

    # 排序?   排序,即对一系列对象根据某个关键字进行排序 # 术语说明 稳定: 如果a原本在b前面,且a==b...

网友评论

      本文标题:opennmt-tf 关键术语说明

      本文链接:https://www.haomeiwen.com/subject/skxpcctx.html