自从开始使用Python做深度学习的相关项目时,大部分时候或者说基本都是在研究图像处理与分析方面,但是找工作反而碰到了很多关于自然语言处理(natural language processing: NLP)的问题,所以决定花点时间学习并且写下来,希望那些跟我一样同时在学习NLP的朋友能有一些帮助,学习过程中以英文为文本标准,后期会尝试用中文,并且将相关的信息补进来博客文章中。刚开始学习哪里讲得不好,多海涵并且欢迎指出。
NLP的首要任务就是将文本内容做Tokenization(标识化)处理,也就是说我们将文本分割成一个小块一个小块的例如以一个英文单词为单位或者一个汉字为单位,这样子的操作主要是方便我们可以更集中的去分析文本信息的内容和文本想表达的含义。当然分割是一个大范围,不仅仅是文本分成不同的词,也可以将整个文本分成段落,进而分成句子,句子在细分到词。当然,我们一般所说的标识化就是将整句分割为单个标识符(tokens)。
文本标识化主要是将没有结构的数据(unstructured data)或者自然语言文本分割成不同的分散的(discrete)块信息,从而可以被进行统计计算,这样子做的原因是我们可以通过计算每个标识符(tokens)在文件中出现的频次从而形成一个频次向量(vector)组来表示文件,因为计算机是无法直接处理我们人类所能辨识的文本信息,所以我们用统计的方式将纯文本信息转化为数字信息。完成了转换之后,我们就可以直接将这些频次向量作为特征输入到机器学习或者深度学习相关的算法模型中去进行训练。
当我们实际处理的时候一个比较简单的标记化处理就是利用空格作为分隔符将字符串分割,下面的代码是简单的将英文句子进行分割:
1 sentence_example = """I love deep learning, I love natural language processing.""" 2 token_seq1 = str.split(sentence_example) 3 token_seq2 = sentence_example.split(' ') 4 print("token_seq1: ", token_seq1) 5 print("token_seq2: ", token_seq2)
转载自原文链接, 如需删除请联系管理员。
原文链接:分词(Tokenization) - NLP学习(1),转载请注明来源!