python自然语言处理库之gensim简介

微信公众号:数据挖掘与分析学习

Gensim是一个免费的 Python库,旨在从文档中自动提取语义主题,尽可能高效(计算机方面)和无痛(人性化)。

Gensim旨在处理原始的非结构化数字文本(“ 纯文本 ”)。

Gensim的算法,比如Word2VecFastText,潜在语义分析(LSILSA,见LsiModel),隐含狄利克雷分布(LDA,见LdaModel)等,自动训练文档的躯体内检查统计共生模式发现的文件的语义结构。这些算法是无监督的,这意味着不需要人工输入 - 您只需要一个纯文本文档。

一旦找到这些统计模式,任何纯文本文档(句子,短语,单词......)都可以在新的语义表示中简洁地表达,并查询与其他文档(单词,短语......)的主题相似性。

1.功能

  • 内存独立性 - 任何时候都不需要整个训练语料库完全驻留在RAM中(可以处理大型的Web级语料库)。
  • 内存共享 - 经过训练的模型可以持久保存到磁盘并通过mmap加载回来。多个进程可以共享相同的数据,从而减少RAM占用空间。
  • 一些流行的向量空间算法的高效实现,包括Word2VecDoc2VecFastText,TF-IDF,潜在语义分析(LSI,LSA,见LsiModel),隐含狄利克雷分布(LDA,见LdaModel)或随机投影(见RpModel)。
  • 来自几种流行数据格式的I / O包装器和读卡器。
  • 在语义表示中对文档进行快速相似性查询。

Gensim背后的主要设计目标是:

  1. 为开发人员提供简单的接口和低API学习曲线。适合原型设计。
  2. 记忆独立性与输入语料库的大小有关; 所有中间步骤和算法都以流式方式运行,一次访问一个文档。

2.核心概念

语料

数字文档的集合。CorporaGensim担任两个角色:

  1. 模型训练的输入语料库用于自动训练机器学习模型,例如 LsiModelLdaModel

模型使用此培训语料库来查找共同的主题和主题,初始化其内部模型参数。

Gensim专注于无监督模型,因此无需人工干预,例如昂贵的注释或手工标记文件。

  1. 要组织的文件。训练之后,可以使用主题模型从新文档中提取主题(培训语料库中未见的文档)。

这样的语料库可以通过语义相似性,聚类等进行索引,查询。

矢量空间模型

在向量空间模型(VSM)中,每个文档由一系列要素表示。例如,单个功能可以被视为问答配对:

  1. 单词splonge在文档中出现了多少次?零。
  2. 该文件包含多少段?二。
  3. 该文档使用了多少种字体?五。

问题通常只能由它的一个整数标识符(如所表示123在此),因此,该文件的表示变得一系列像对。(1, 0.0), (2, 2.0), (3, 5.0)

如果我们提前知道所有问题,我们可能会隐瞒并简单地写。(0.0, 2.0, 5.0)

该答案序列可以被认为是矢量(在这种情况下是三维密集矢量)。出于实际目的,Gensim中只允许答案(或可以转换为)单个浮点数的问题

每个文档的问题都是相同的,所以看两个向量(代表两个文档),我们希望能够得出结论,例如这两个向量中的数字非常相似,因此原始文档必须类似也是。当然,这些结论是否与现实相符取决于我们选择问题的程度。

Gensim稀疏向量,词袋向量

为了节省空间,在Gensim中我们省略了值为0.0的所有向量元素。例如,我们只写(注意缺失的)而不是三维密集向量。每个向量元素是一对(2元组)。此稀疏表示中所有缺失特征的值可以明确地解析为零。(0.0, 2.0, 5.0)[(2, 2.0), (3, 5.0)](1, 0.0)(feature_id,feature_value)0.0

Gensim中的文档由稀疏向量(有时称为词袋向量)表示。

Gensim流式语料库

Gensim没有规定任何特定的语料库格式。语料库只是一个稀疏向量序列(见上文)。

例如, 是两个文档的简单语料库=两个稀疏向量:第一个具有两个非零元素,第二个具有一个非零元素。这个特定的语料库表示为普通的Python [ [(2, 2.0), (3, 5.0)], [(3, 1.0)] ]list

然而,Gensim的全部功能来自于语料库不必是list,或NumPy数组,或Pandas数据帧等等。Gensim 接受任何对象,当迭代时,连续产生这些稀疏的袋子向量

这种灵活性允许您创建自己的语料库类,直接从磁盘,网络,数据库,数据帧...流式传输稀疏向量。实现Gensim中的模型,使得它们不需要所有向量一次驻留在RAM中。你甚至可以动态创建稀疏矢量!

请参阅我们的Python流数据处理教程

有关直接从磁盘流式传输的高效语料库格式的内置示例,请参阅中的Matrix Market格式mmcorpus。有关如何创建自己的流式语料库的最小蓝图示例,请查看CSV语料库源代码

模型,转换

Gensim使用模型来引用将一个文档表示转换为另一个文档表示所需的代码和相关数据(模型参数)。

Gensim中,文档被表示为向量(见上文),因此模型可以被认为是从一个向量空间到另一个向量空间的转换。从训练语料库中学习该变换的参数。

训练有素的模型(数据参数)可以持久保存到磁盘,然后加载回来,以继续培训新的培训文档或转换新文档。

Gensim实现多种模式,如Word2Vec LsiModelLdaModel FastText等见API参考的完整列表。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python自然语言处理(NLP)是使用Python编程语言进行自然语言处理任务的领域。NLP涉及将人类语言转化为计算机可以理解和处理的形式,以及从文本数据中提取有用的信息。 对于Python中的NLP,有一些重要的和工具可以使用。其中一些包括: 1. scikit-learn:这是Python中的机器学习,提供了许多用于文本分类、情感分析和文本生成等NLP任务的功能。 2. Natural Language Toolkit(NLTK):这是一个丰富的Python,提供了各种NLP技术的实现,包括语料、词性标注、句法分析等。 3. Pattern:这是一个用于NLP和机器学习的Web挖掘模块,提供了一些实用的功能,如情感分析、实体提取和关键词提取等。 4. TextBlob:这是一个简单易用的NLP工具,构建在NLTK和Pattern之上,提供了一些文本处理和分析的功能。 5. spaCy:这是一个用于工业级NLP的强大Python,使用Cython进行加速,提供了高性能的文本处理功能,包括词性标注、命名实体识别和句法分析等。 6. Gensim:这是一个用于主题建模的Python,可以用于从大规模文本数据中提取主题和语义信息。 此外,Stanford Core NLP是由Stanford NLP组提供的一个NLP服务包,它提供了一系列NLP工具和模型,如实体识别、依赖关系分析和情感分析等。 在使用Python进行NLP时,还可以使用N元语法(N-Grams)作为特征。N元语法将N个单词结合在一起,可以用于文本生成和特征提取。例如,使用二元语法(bigrams)可以生成文本的二元语法序列。 Python中的NLP还涉及到实体识别、情感分析、文本分类和语法分析等任务。可以使用Stanford Core NLP和NLTK的依赖性文法来生成依赖关系树,这些输出可以用于很多NLP问题,例如实体情感分析、角色和实体识别以及文本分类。 总之,Python在自然语言处理领域提供了丰富的和工具,可以用于处理文本数据、提取有用信息和解决各种NLP任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值