理解 sklearn CountVectorizer 中的“ngram_range”参数

2023-12-30

我对如何在 Python 的 scikit-learn 库中使用 ngrams 有点困惑,具体来说,如何ngram_range参数在 CountVectorizer 中工作。

运行这段代码:

from sklearn.feature_extraction.text import CountVectorizer
vocabulary = ['hi ', 'bye', 'run away']
cv = CountVectorizer(vocabulary=vocabulary, ngram_range=(1, 2))
print cv.vocabulary_

给我:

{'hi ': 0, 'bye': 1, 'run away': 2}

我的印象是(显然是错误的)我会得到一元词和二元词,如下所示:

{'hi ': 0, 'bye': 1, 'run away': 2, 'run': 3, 'away': 4}

我正在处理这里的文档:http://scikit-learn.org/stable/modules/feature_extraction.html http://scikit-learn.org/stable/modules/feature_extraction.html

显然我对如何使用 ngram 的理解存在严重错误。也许这个论证没有效果,或者我对实际的二元组是什么有一些概念上的问题!我很困惑。如果有人能给我一些建议,我将不胜感激。

UPDATE:
我已经意识到我的做法是愚蠢的。我的印象是ngram_range会影响词汇,而不是语料库。


设置vocabulary明确意味着没有从数据中学习词汇。如果你不设置它,你会得到:

>>> v = CountVectorizer(ngram_range=(1, 2))
>>> pprint(v.fit(["an apple a day keeps the doctor away"]).vocabulary_)
{u'an': 0,
 u'an apple': 1,
 u'apple': 2,
 u'apple day': 3,
 u'away': 4,
 u'day': 5,
 u'day keeps': 6,
 u'doctor': 7,
 u'doctor away': 8,
 u'keeps': 9,
 u'keeps the': 10,
 u'the': 11,
 u'the doctor': 12}

明确的词汇表限制了将从文本中提取的术语;词汇没有改变:

>>> v = CountVectorizer(ngram_range=(1, 2), vocabulary={"keeps", "keeps the"})
>>> v.fit_transform(["an apple a day keeps the doctor away"]).toarray()
array([[1, 1]])  # unigram and bigram found

(请注意,停用词过滤是在 n 元语法提取之前应用的,因此"apple day".)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

理解 sklearn CountVectorizer 中的“ngram_range”参数 的相关文章

随机推荐

  • 如何使用 NHibernate 模式生成更新数据库表模式?

    我试图弄清楚如何使用 NHibernate 配置和映射来更新表模式 而不是删除并重新创建它们 目前我正在使用NHibernate Tool hbm2ddl SchemaExportobj 使用 FluentNHibernate 生成 mys
  • 相当于给定 wget 命令的 Python

    我正在尝试创建一个与 wget 命令执行相同操作的 Python 函数 wget c read timeout 5 tries 0 URL c 如果下载中断 则从上次中断的地方继续 read timeout 5 如果超过 5 秒没有新数据传
  • 如何在React js文本区域内渲染漂亮的json数据?

    我是 React js 新手 我在渲染文本区域内漂亮的 json 数据时遇到问题 我不知道哪一部分是错误的 我希望我的 Prettyjson 像这样在 textarea 内渲染 email email protected cdn cgi l
  • 首先使用代码禁用整数主键上的标识(自动递增)

    我在 ASP NET MVC 3 应用程序中使用代码优先方法 并在模型中使用所有整数主键 public int Id get set 默认情况下配置为自动递增的身份 如何禁用此功能并启用手动输入主键整数的方法 实际情况是Id整数具有特殊的含
  • 如何摆脱这个 Do-While 循环?

    我有这个基本的 Arduino 代码 我想要退出此 Do While 循环的 2 个选项 我简化了原始代码以突出真正的问题 Do While无法识别 OR 退出循环的条件 在此代码中 我从两个等于 0 的整数变量开始 一旦它们进入 Do W
  • Git 推送结果致命:协议错误:错误的行长度字符:这

    我正在尝试让 GitLab 在我的服务器上运行 运行 CentOS 6 5 我跟着gitlab 菜谱 https github com gitlabhq gitlab recipes blob master install centos R
  • 如何创建一个包含纬度和经度的数组,并使用for循环来标记android中谷歌地图上的位置

    我刚刚开始在 android 中编码 经过很长一段时间 我让我的谷歌地图可以工作 并且能够在上面放置标记 接下来我想做的是创建一个 latlng 数组并使用 for 循环在谷歌地图上放置一个标记 我不知道该怎么做 有人可以帮助我吗 到目前为
  • 更改 Windows 中的默认 MySQL 用户

    如果我运行mysql or mysqldump从命令提示符运行程序 我在 Windows 中得到这个 ERROR 1045 28000 Access denied for user ODBC localhost using password
  • 内联三元运算符不起作用

    由于某种原因 我的三元运算符分配不适用于数组的第二部分 有人看到我做错了什么吗 它应该只是查看永久链接字段是否有值 如果没有则插入link url进入数组 function getSiteMap this gt db gt select s
  • Firefox 中的文本描边和阴影 CSS3

    我想知道是否有一种方法可以在文本中添加描边和阴影 我可以让它在 Chrome 和 Safari 中工作 因为 webkit 支持文本描边和文本阴影 我可以在 Firefox 中显示笔划 但那是使用文本阴影并使用偏移量 那么有人知道解决这个问
  • 将日期和时间数字转换为 time_t 并指定时区

    我有以下整数 int y mon d h min s 他们的价值观是 2012 06 27 12 47 53分别 如果我在应用程序中的其他地方选择了 UTC 我想表示 2012 06 27 12 47 53 UTC 的日期时间 或者如果我在
  • 如何通过 SAX XML Schema Validator 的验证消息进行内部化?

    我使用此代码根据 XSD 验证 XML SchemaFactory factory SchemaFactory newInstance http www w3 org 2001 XMLSchema Schema schema factory
  • Excel 复制到 Word VBA

    我正在使用宏记录器处理一些代码 在单词中 它总是以选择开头 本文说我应该能够将文档分配给一个变量 然后将其插入到 Selection 之前 但是 在我输入文档变量后 选择方法不会出现在 VBE 中 第一次使用 Selection 对象 Se
  • 如何在 VB.NET 中使用多种字体样式组合?

    如果我想设置我的字体 我可以使用 new Font Times New Roman 12 Drawing FontStyle Bold 我可以使用斜体 常规或下划线代替粗体 但我想同时使用粗体和斜体 我怎样才能做到这一点 The FontS
  • wx 0.90.0.1 无法在 Haskell Platform 2012.2.0.0 (WinXP) 上安装

    我尝试使用 cabal install wx 在 Haskell Platform 2012 2 0 0 上安装 WX 0 90 0 1 但得到以下结果 Configuring wxc 0 90 0 4 setup exe wx confi
  • AspectJ:验证错误

    我正在尝试面向方面的编程 我已经安装了AspectJ 插件 http eclipse org aspectj index php在 Eclipse 中并遵循本中提到的所有步骤tutorial http sites google com si
  • 无效的二进制或无效的 Swift 支持

    将应用程序发送到应用程序商店以供批准后 我在 iTunes Connect 中收到消息 无效的二进制文件 然后我在 Apple 发来的电子邮件中收到以下消息 无效的 Swift 支持 该捆绑包包含无效的 Swift 实现 该应用程序可能是使
  • Chart.js x 轴线性比例:奇怪的行为

    我正在尝试在 Chart js 图表中的 x 轴上使用线性刻度 我添加了一些代码 因为 stackoverflow 使其在添加 jsfiddle url 时必须这样做 但我不明白这一点 var options scales xAxes ty
  • 相当于其他编译器中 MSVC 的 _countof 吗?

    是否有任何内置的等价物 countof http msdn microsoft com en us library ms175773 v VS 100 aspx由其他编译器提供 特别是 GCC 和 Clang 有没有非宏观形式 使用C 11
  • 理解 sklearn CountVectorizer 中的“ngram_range”参数

    我对如何在 Python 的 scikit learn 库中使用 ngrams 有点困惑 具体来说 如何ngram range参数在 CountVectorizer 中工作 运行这段代码 from sklearn feature extra