自然语言处理(NLP)入门(一)

一.如何用计算机可以处理的方式来表示单词(也叫作“分词”)

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.preprocessing.test import Tokenizer
sentences=[‘I love my dog’,
                    ‘I.love my cat’]
tokenizer=Tokenizer(num_words=100)

创建一个Tokenizer Object实例,保留该文字库中出现最频繁的100个单词

tokenizer.fit_on_texts(sentences)

查看sentences中所有文本,并将文本与对应数字进行匹配

word_index= tokenizer.word_index

获取所有单词列表,输出所有词汇与词表(注:所有大写字母都会转为小写字母,后面做初始化embedding时,记得转为大写)

print(word_index)

输出:{‘i’:1,‘m’:3,‘dog’:4,‘cat’:5,‘love’:2} 输出单词和其对应的标识符

注:分词器很聪明,即使dog后有个“!”,像是I love my dog!,分词器也能识别出dog,自动去掉“!”。

二. 为句子创建数字序列,将包含上面单词的句子转换为数字序列

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.preprocessing.test import Tokenizer
sentences=[‘I love my dog’,
                   ‘I.love my cat’,
                   ‘You love my dog!’,
                   ‘Do you think my dog is amazing?’]
tokenizer=Tokenizer(num_words=100)
tokenizer.fit_on_texts(sentences)
word_index= tokenizer.word_index
sequences=tokenizer.texts_to_sequences(sentences)

创建了代表每个句子的标识符序列

print(word_index)
print(sequences)
自然语言处理(NLP)入门(一)

三.为测试集中的句子进行排序

自然语言处理(NLP)入门(一)

由于manatee和really和loves是不在word_index中的单词,不在构建这个序列的语料库中,所以会输出这个样子
自然语言处理(NLP)入门(一)
为了不损失句子长度,可以使用ovv_token属性,设置可代替语料库中无法识别的内容
自然语言处理(NLP)入门(一)
自然语言处理(NLP)入门(一)

四.处理不同长短的句子,可以用padding填充先让短句子与最长的句子保证长短相同

自然语言处理(NLP)入门(一)
自然语言处理(NLP)入门(一)

后续见下一个博客!!!

上一篇:Lambda表达式简化方法


下一篇:字符串