nlp自然语言处理_自然语言处理:python中强大的NLP相关库

在之前的文章中介绍了NLP实际应用后,今天给大家介绍一下Python NLP相关的库。这些库可处理各种NLP任务,以及其他诸如情感分析,文本分类等任务。

Python中最著名的NLP库包括自然语言工具包(NLTK),Gensim和TextBlob。scikit-learn库还具有NLP相关功能。NLTK(http://www.nltk.org/)最初是出于教育目的而开发的,现在也广泛用于工业中。有一句话这么说的,“你不知道NLTK就说明你不懂NLP”。NLTK是用于构建基于Python的NLP应用程序的最著名最优秀的平台。我们可以通过sudo pip install -U nltk在Terminal中运行命令来安装NLTK。

NLTK带有50多个大型且结构良好的文本数据集,在NLP中称为语料库。语料库可用作单词出现的识别词典,以及模型学习和验证的训练库。一些有用且有趣的语料库包括Web文本语料库,Twitter示例,莎士比亚语料示例,情感极性,姓名语料库,Wordnet和路透社基准语料库。完整列表可在http://www.nltk.org/nltk_data中找到。在使用任何这些语料库资源之前,我们首先需要通过在Python中运行以下脚本来加载它:

1c1d2be5b19f109d5210f031b8fa96e6.png

将会弹出一个新窗口,询问我们要下载哪个软件包或特定语料库:

391504b7608093778734eb8b681b65bf.png

强烈建议安装popular这个软件包,因为它包含我们常用的所有重要语料库。安装软件包后,我们现在可以看一下其Names语料库:首先,导入语料库:

b71a0b5c3751511eb3ecb6a0b56abff1.png

前十个names可以显示如下:

0a0d28ab09e2ffc52bbe8c7901a5e301.png

除了易于使用和丰富的语料库外,更重要的是,NLTK可以解决许多NLP和文本分析任务,其中包括:

  • 分词:给定文本序列,分词是将其分成用空格分隔的片段。同时,通常会删除某些字符,例如标点符号,数字,表情符号。这些片段是用于进一步处理的所谓词。此外,在计算语言学中,由一个单词组成的词也称为unigrams,两个连续的单词组成的词称为bigrams, 三个连续的单词的trigramsn个连续的单词称为n-grams。这在文献中经常看见,给出分词的示例如下:
5910d96fbefdd185bf6a37ffaaff8c37.png
  • POS标记:我们可以应用现成的标记器,也可以组合多个NLTK标记器来自定义标记过程。直接使用内置的标记功能pos_tag,例如pos_tag(input_tokens)可以得到input_tokens的标记。但实际上,这实际上是来自预先构建的监督学习模型的预测。该模型基于由正确标记的单词组成的大型语料库进行训练的。
  • 词干提取:词干提取是将词尾变化或派生的词还原为词根形式的过程。例如,machine是machines的词干,learn是learning和learned的词干。

Gensim:由Radim Rehurek开发的Gensim(https://radimrehurek.com/gensim/)近年来也受到欢迎。它最初设计于2008年,目的是生成给定文章的类似文章的列表,因此该库的名称为(generate similar to Gensim)。Radim Rehurek后来对其效率和可伸缩性进行了彻底的改进。同样,我们可以通过pip install --upgrade genism安装它。需确保已安装依赖项NumPy和SciPy。

Gensim以其强大的语义和主题建模算法而闻名。主题建模是发现文档中隐藏的语义结构的典型文本挖掘。普通英语的语义结构是单词出现的分布。这显然是一项无监督的学习任务。我们需要做的是输入纯文本,然后让模型找出抽象的主题。

除了强大的语义建模方法外,Gensim还提供以下功能:

  • 相似性查询,检索与给定查询对象相似的对象
  • 单词向量化,一种在保留单词共现特征的同时表示单词的创新方法
  • 分布计算,使从数百万个文档中高效学习变得可行

TextBlob(https://textblob.readthedocs.io/en/dev/)是一个相对较新的库,建立在NLTK之上。它通过易于使用的内置函数和方法包装简化了NLP和文本分析。我们可以通过pip install -U textblob在终端中运行命令来安装TextBlob。

此外,TextBlob具有一些NLTK没有的功能,例如拼写检查和纠正、语言查询和翻译。

最后我想说的是,scikit-learn也提供了我们所需的所有文本处理功能,例如分词,以及全面的机器学习功能。


感谢您耐心看完,之后的文章会给大家介绍NLP的实例,发表这些东西的主要目的就是督促自己,希望大家关注评论指出不足,一起进步。内容我都会写的很细,并且按照文章中的代码自己也可以做出一样的结果,一个目的就是零基础也能懂,因为自己就是什么基础没有从零学Python的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值