1、什么是自然语言处理

        自然语言处理是为了让机器理解人类的语言:需要通过各种语言处理让问文本转换成计算机语言再转回就是整个过程

2、文本处理的方法

        2.1、jieba分词

                分词:将连续的字列转换成单个词语

                词作为语言语义理解的最小单元. 分词是NLP领域高阶任务的基础环节, 如自动问答, 机器翻译, 文本生成等.

                功能:

                        精确模式:将句子最精确的切开

                        全模式:扫描所有可成词的词语

                        搜索引擎模式:在精确模式基础上对场次再次切分,提高召回率

                        中文繁体分词:支持繁体

                        自定义词典:可以将用户词典作为分词依据 词典需要输入 词语(不能少)、词频、词性     pseg.lcut(text)

                API:

                        jieba.cut:用于处理大数据的,返回的数据是数字不能直接辨认

                        jieba.lcut:用于处于小数量的数据 返回的数据数文字能自己查看

3、词性标注&命名实体识别

        词性标注:是将拆出来的每个词语进行词性标注

        命名实体识别:主要是将输入的句子里面的名词提取出来

        3.1:API

                pseg.lcut()  词性标注

4、文本张量表示

        概念:就是将问转换成词向量

        目的:主要是将语言转换成计算机能处理的语言  

        4.1 张量的三种表示方法
                4.1.1 one-hot

                        概述:他就是独热编码,主要是将每个词表示成具有n个元素的向量(就是整个元素的最大维度这个文本有1000个字这个n就是1000),只有一个是1其余的都是0  (也叫稀疏举证)

                        优点:操作简单

                        缺点:丢失语义、内存占用大、计算量大

                4.1.2 word2vec: 静态训练词向量
  • 核心思想:先在大规模无标注语料上预训练词向量,再将其作为固定特征输入到下游任务模型中。
  • 训练方法:无监督训练方法, 通过构建浅层神经网络学习词的向量表示, 其嵌入层参数矩阵E(vocab_size, embedding_size)即为词向量矩阵。
                        4.1.2.1:CBOW

                                # 连续词袋模式 主要是通过两边的字去预测中间的字

                                逻辑顺序:1、先将周围的两个字转换成one-hot编码  传入到词嵌入层

                                                  2、词嵌入层将两个one-hot编码转换成两个词向量传入到池化层                                                      3、收到词嵌入层的两个词向量编码和两个隐藏维度通过平均池层会计算出平均的词向量(这个就是中间词语的词向量)传入到线性层

                                                  4、将池化村计算出的数据映射出来  最后和真实值对照计算出损失值然后反向传播最终形成模型:

                        4.1.2.2 :skipgram 

                                # 跳字模式 主要是通过中间的字转换成两边的字

                               

                                逻辑顺序:1、先将中间的字转换成one-hot编码  传入到词嵌入层

                                                  2、词嵌入层将one-hot编码转换成词向量传入到下一层                                                                      3、是将上一层的数据生成一个词向量但是不是池化层

                                                  4、将池化村计算出的数据映射出来  最后和真实值对照计算出损失值然后反向传播最终形成模型:

                4.1.3 Embdding

   

Embdding逻辑:

        首先将文本分词去重》》再获取其索引传入词嵌入层》》词嵌入层会收到其整个词语的长度和自己定义的列进行训练》》生成相应的词向量

        

                     

                               

                

        

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐