自然语言处理(NLP)基础到高级概念教程

本系列文章旨在通过Python代码和流行的深度学习机器学习框架,如scikit-learn、Keras和TensorFlow,逐步讲解自然语言处理NLP)的基本概念到高级技术。无论是NLP新手还是有一定基础的读者,都可以跟随本系列文章进行学习和实践。

目标读者

本系列文章适合对NLP感兴趣的初学者或有一定基础的读者,通过阅读和编码来学习NLP。

先决条件

需要具备基本的Python理解能力。

使用的库

Keras、Tensorflow、Scikit-learn、NLTK、Glove等。

将涵盖以下主题

  • 原始数据处理(数据清洗
  • 分词和停用词
  • 特征提取技术
  • 主题建模和LDA
  • Word2Vec(词嵌入)
  • 连续词袋模型(CBOW)
  • 全局词向量表示(GloVe)
  • 文本生成
  • 迁移学习

什么是NLP

自然语言处理是计算机科学的一个分支,它使计算机能够像人类一样自然地理解语言。这意味着计算机能够理解情感、语音、回答问题、文本摘要等。将不会过多讨论NLP的历史和演变。如果感兴趣,可以访问这个。

原始文本数据在未经清洗的情况下直接从各种来源获取。应用多个步骤来清洗数据。未清洗的文本数据包含无用信息,这会偏离结果,因此清洗数据始终是第一步。一些标准的预处理技术应该被应用以使数据更干净。清洗后的数据还可以防止模型过拟合。

将原始文本数据转换为pandas数据框,并执行各种数据清洗技术。

import pandas as pd text = ['This is the NLP TASKS ARTICLE written by ABhishek Jaiswal', 'IN this article I"ll be explaining various DATA-CLEANING techniques', 'So stay tuned for FURther More &&', 'Nah I don"t think he goes to usf, he lives around'] df = pd.DataFrame({'text':text})

输出:

Source: Local Lowercasing The method lower() converts all uppercase characters into lowercase and returns. Applying lower() method using lambda function df['lower'] = df['text'].apply(lambda x: " ".join(x.lower() for x in x.split()))

接下来,将讨论去除标点符号、去除停用词、拼写校正、分词、词干提取和词形还原等技术。

到目前为止,已经看到了在获取原始数据后必须执行的各种文本预处理技术。清洗完数据后,现在可以执行探索性数据分析,并探索和理解文本数据。

计算数据中的独特词汇可以让了解数据中最常见的、最不常见的词汇。通常会删除最不常见的评论,使模型训练更加泛化。

import nltk nltk.Freq_dist(all_words) from wordcloud import WordCloud import matplotlib.pyplot as plt words = [] for message in df['processed']: words.extend([word for word in message.split() if word not in STOPWORDS]) wordcloud = WordCloud(width=1000, height=500).generate(" ".join(words)) plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show()
  • One Hot编码
  • Count向量化器
  • 词频-逆文档频率(TF-IDF)
  • N-gram
  • 共现矩阵
  • 词嵌入配方
  • 实现fastText
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485