比较与torchtext.data.utils.ngrams_iterator的差异
torchtext.data.utils.ngrams_iterator
torchtext.data.utils.ngrams_iterator(
    token_list,
    ngrams
)
mindspore.dataset.text.Ngram
class mindspore.dataset.text.Ngram(
    n,
    left_pad=("", 0),
    right_pad=("", 0),
    separator=" "
)
更多内容详见mindspore.dataset.text.Ngram。
使用方式
PyTorch:从1维的字符串生成N-gram
MindSpore:从1维的字符串生成N-gram,可以指定N-gram的连接符,或对序列进行额外的填充。
| 分类 | 子类 | PyTorch | MindSpore | 差异 | 
|---|---|---|---|---|
| 参数 | 参数 1 | token_list | - | 输入的分词列表,用法差别见代码示例 | 
| 参数 2 | ngrams | n | n-gram的数量 | |
| 参数 3 | - | left_pad | 指定序列的左侧填充 | |
| 参数 4 | - | right_pad | 指定序列的右侧填充 | |
| 参数 5 | - | separator | 指定用于将n-gram结果的连接符 | 
代码示例
# In torch, return an iterator that yields the given tokens and their ngrams.
from torchtext.data.utils import ngrams_iterator
token_list = ['here', 'we', 'are']
print(list(ngrams_iterator(token_list, 2)))
# Out:
# ['here', 'we', 'are', 'here we', 'we are']
# In MindSpore, output numpy.ndarray type n-gram.
from mindspore.dataset import text
ngram_op = text.Ngram([2, 1], separator=" ")
token_list = ['here', 'we', 'are']
output = ngram_op(token_list)
print(output)
# Out:
# ['here we' 'we are' 'here' 'we' 'are']