torchtext.data.functional

custom_replace(replace_pattern)

功能:用于按规则对文本进行替换。

参数:

  • replace_pattern:替换规则列表,可使用正则表达式。

样例:

from torchtext.data.functional import custom_replace

custom_replace_transform = custom_replace([(r'[Se]', '#'), (r'\s+', '_')])
list_a = ["Sentencepiece encode  aS  pieces", "exampleS to   try!"]
print(list(custom_replace_transform(list_a)))

样例结果:

['##nt#nc#pi#c#_#ncod#_a#_pi#c#s', '#xampl##_to_try!']

simple_space_split(iterator)

功能:按照空白字符切割文本,包括空格、制表符、换行等。

参数:

  • iterator:迭代器。需要分割的文本。

样例:

from torchtext.data.functional import simple_space_split

list_a = ["Sentencepiece\t\t\tencode as\n pieces", "example to try!"]
print(list(simple_space_split(list_a)))

样例结果:

[['Sentencepiece', 'encode', 'as', 'pieces'], ['example', 'to', 'try!']]

注意:只是单纯的按空白字符分割,标点符号会跟单词连在一起

numericalize_tokens_from_iterator(vocab, iterator, removed_tokens=None)

功能:将文本列表根据字典映射为索引的迭代器

参数:

  • vocab:单词与索引的对应字典。
  • iterator:文本迭代器。需要转换为索引的文本。
  • removed_tokens:需要忽略的单词列表,默认None。若不为None,则列表中的单词在索引化时会被删除。

样例:

from torchtext.data.functional import simple_space_split, numericalize_tokens_from_iterator

vocab = {
    "Sentencepiece":0,
    "encode":1,
    "as":2,
    "pieces":3
}

sentences = [
    "Sentencepiece encode as as as",
    "pieces pieces encode"
]

ids_iter = numericalize_tokens_from_iterator(
    vocab=vocab,
    iterator=simple_space_split(sentences),
)

for ids in ids_iter:
    print([num for num in ids])
    
ids_iter = numericalize_tokens_from_iterator(
    vocab=vocab,
    iterator=simple_space_split(sentences),
    removed_tokens=["encode"]
)

for ids in ids_iter:
    print([num for num in ids])

样例结果:

[0, 1, 2, 2, 2]
[3, 3, 1]
[0, 2, 2, 2]
[3, 3]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值