本系列文章旨在通过Python代码和流行的深度学习及机器学习框架,如scikit-learn、Keras和TensorFlow,逐步讲解自然语言处理(NLP)的基本概念到高级技术。无论是NLP新手还是有一定基础的读者,都可以跟随本系列文章进行学习和实践。
本系列文章适合对NLP感兴趣的初学者或有一定基础的读者,通过阅读和编码来学习NLP。
需要具备基本的Python理解能力。
Keras、Tensorflow、Scikit-learn、NLTK、Glove等。
自然语言处理是计算机科学的一个分支,它使计算机能够像人类一样自然地理解语言。这意味着计算机能够理解情感、语音、回答问题、文本摘要等。将不会过多讨论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()