5个Python库可以帮你轻松的停止自然言语预处理
作者头像
  • 雷科技
  • 2021-05-12 08:05:32 17

自然语言是指人类之间相互交流的语言形式,而自然语言处理则是将数据预处理成易于理解的形式,以便计算机能够理解和处理。简单来说,自然语言处理(NLP)是让计算机能够以人类的方式进行交流的技术。

自然语言处理是当前研究领域中最广泛的一个分支。许多大公司在这一领域投入了大量资源。NLP为公司提供了机会,使其能够更好地理解消费者的情绪和需求。NLP的应用实例包括识别垃圾邮件、分类假新闻、情感分析、预测下一个单词、自动纠错、聊天机器人和个人助手等。

在处理任何NLP任务之前,需要掌握一些基本术语:

  1. 标记化:即将整个文本分割成较小的片段。标记化可以按照句子和单词两种方式进行。

    示例: ``` text = "Hello there, how are you doing today? The weather is great today. python is awesome"

    句子分割

    ['Hello there, how are you doing today?', 'The weather is great today.', 'python is awesome']

    单词分割

    ['Hello', 'there', ',', 'how', 'are', 'you', 'doing', 'today', '?', 'The', 'weather', 'is', 'great', 'today', '.', 'python', 'is', 'awesome'] ```

  2. 停用词:通常,这些词语对句子意义贡献不大。在NLP中,我们删除所有停用词,因为它们对数据分析并不重要。英语中有大约179个停用词。

  3. 词干提取:即去掉词尾和词头,将单词还原为其词根形式。

  4. 词形还原:其作用类似于词干提取,但主要区别在于它返回一个有意义的单词。这主要用于开发聊天机器人、问答系统和文本预测等应用。

  5. WordNet:这是一个英语词汇数据库或词典,包含名词、动词、形容词和副词,并将这些词分为专门设计用于自然语言处理的集合。

  6. 词性标注:即将一个句子转换成一系列元组的过程。每个元组包含一个词和其对应的词性标签(如名词、形容词或动词)。

    示例: text = 'An sincerity so extremity he additions.' [('An', 'DT'), ('sincerity', 'NN'), ('so', 'RB'), ('extremity', 'NN'), ('he', 'PRP'), ('additions', 'VBZ')]

  7. 词袋模型:这是一种将文本转换成某种数字表示的方法。例如,独热编码等。

    示例: sent1 = 'he is a good boy' sent2 = 'she is a good girl' | | girl good boy sent1 0 1 1 sent2 1 0 1

接下来,我们将介绍一些可以帮助您轻松预处理数据的库:

NLTK

毫无疑问,NLTK是自然语言处理领域最好的库之一。它由Steven Bird和Edward Loper开发,包含了许多内置模块,如标记化、分词、词干化、解析、分块和词性标注。它还提供了超过50个语料库和词汇资源。

安装命令:pip install nltk

使用NLTK对给定文本进行预处理的示例代码: ```python import nltk

nltk.download('punkt')

from nltk.tokenize import wordtokenize from nltk.corpus import stopwords from nltk.stem import PorterStemmer import re ps = PorterStemmer() text = 'Hello there, how are you doing today? I am Learning Python.' text = re.sub("[^a-zA-Z0-9]", " ", text) text = wordtokenize(text) textwithnostopwords = [ps.stem(word) for word in text if word not in stopwords.words('english')] text = " ".join(textwithnostopwords) text 输出结果: 'hello today i learn python' ```

TextBlob

TextBlob是一个简化文本处理的库。它提供了一个简单的API,可以方便地执行常见的NLP任务,如词性标注、情感分析、分类、翻译等。

安装命令:pip install textblob

spaCy

spaCy是Python中最好用的自然语言处理库之一,由Cython编写。它提供了一些预训练的统计模型,并支持49种以上的语言进行标记化。它还具备卷积神经网络功能,用于标记、解析和命名实体识别。

安装命令:pip install spacy

使用spaCy对给定文本进行预处理的示例代码: python import spacy nlp = spacy.load('en_core_web_sm') text = "I am Learning Python Nowadays" text2 = nlp(text) for token in text2: print(token, token.idx) 输出结果: I 0 am 2 Learning 5 Python 14 Nowadays 21

Gensim

Gensim是一个专门用于识别两个文档间语义相似性的Python库。它利用向量空间建模和主题建模工具包来寻找文档间的相似性。它设计用于处理大型文本语料库的算法。

安装命令:pip install gensim

CoreNLP

Stanford CoreNLP旨在简化使用多种语言工具处理文本的过程。该库运行速度快,在开发过程中表现良好。

安装命令:pip install stanford-corenlp

    本文来源:图灵汇
责任编辑: : 雷科技
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
预处理言语停止轻松自然可以Python
    下一篇