NLP——让机器听懂人话

什么是自然语言处理:

在计算机领域, NLP(Natural Language Processing),也就是人们常说的「自然语言处理」,就是研究如何让计算机读懂人类语言。 这包括,既要能让计算机理解自然语言文本的意义,也能以自然语言文本来表达给定的深层的意图、思想等。

自然语言处理的难点:

1.语言是没有规律的,或者说规律是错综复杂的。

2.语言是可以自由组合的,可以组合复杂的语言表达。

3.语言是一个开放集合,可以发明创造新的表达方式(网络热词)。

4.语言需要联系到实践知识,有一定的先验知识依赖。

5.语言的使用要基于场景、环境和上下文。

NLP具体任务:

包括自然语言理解( Natural Language Understanding, NLU)和自然语言生成( Natural Language Generation, NLG)两部分。 注:NLP是典型边缘交叉学科,涉及到语言科学、计算机科学、数学、认知学、逻辑学等,是关注计算机和人类(自然)语言之间的相互作用的领域。

NLP——从人类语言到空间向量

文本预处理:

分词处理(tokenize):切分输入的语句,英文可以切分成单词,中文可以切分成单个字(注:分词方式有很多)。 词嵌入(word embedding):将切分后的单词/字映射到一个高维空间中,用一个向量表示(注:词/字 => 数字索引 => 高维向量)。

中文预处理过程:代码测试

输入:“你好啊!” Tokenize:[START, 你, 好, 啊, !, END]

字典查找:[1, 6677, 5240, 6019, 6466, 2] embedding:[v0, v1, v2, v3, v4, v5]

代码:

from torchtext.data import get_tokenizer


def chinese_tokenizer(inputs: str):
    return list(inputs)


def chinese_tokenizer_with_pad(inputs: str):
    return inputs.split()


if __name__ == '__main__':
    # token用于切分语句

    # 英文token 需要空格
    tokenizer = get_tokenizer("basic_english")
    tokens = tokenizer("You can now install TorchText using pip!")
    print(tokens)

    # 英文token 需要空格
    tokens = chinese_tokenizer_with_pad("You can now install TorchText using pip !")
    print(tokens)

    # 中文token 不需要空格
    tokens = chinese_tokenizer("你好啊!")  #
    print(tokens)

    # 中文token 需要空格
    tokens = chinese_tokenizer_with_pad("你 好 啊 !")
    print(tokens)

分享人:任静

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值