tf-idf 向量化器在 char_wb 的特征词中有空格?

2024-01-17

I use

singleTFIDF = TfidfVectorizer(
    analyzer='char_wb', 
    ngram_range=(4,6),
    stop_words=my_stop_words, 
    max_features=50
).fit([text])

并想知道为什么我的特征中有空格,例如“chaft”

我怎样才能避免这种情况?我需要自己对其进行标记化和预处理吗?


Use analyzer='word'.

当我们使用analyzer='char_wb',矢量化器填充空白因为它不会对单词进行标记;它针对字符进行标记。

根据文档 https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html为了analyzer争论:

analyzer{‘word’, ‘char’, ‘char_wb’} or callable, default=’word’

该特征是否应由单词或字符 n-gram 组成。选项“char_wb”创建字符 n 元语法仅从文本在单词边界内; n 元语法在单词的边缘用空格填充.

看下面的例子:

from sklearn.feature_extraction.text import TfidfVectorizer
corpus = [
    'This is the first document.',
    'This document is the second document.',
    'And this is the third one.',
    'Is this the first document?',
]
vectorizer = TfidfVectorizer(
  analyzer='char_wb', 
  ngram_range= (4,6))
X = vectorizer.fit_transform(corpus)
print([(len(w),w) for w in vectorizer.get_feature_names()])

[(4, '和'), (5, '和'), (4, '文档'), (5, '文档'), (6, '文档'), (4, '杉'), (5, '杉'), (6, '第一'), (4, '是'), (4, '一'), (5, '一.'), (6, '一.'), (4, '秒'), (5, '秒'), (6, '秒'), (4, '该'), (5, '该'), (4, '这'), (5, '第三'), (6, '第三'), (5, '这个'), (6, '这个'), (4, '和'), (4, '条件'), (5, '条件'), (4, 'cume'), (5, 'cumen'), (6, 'cument'), (4, 'docu'), (5, 'docum'), (6, '文档'), (4, '经济'), (5, '第二'), (6, '第二'), (4, 'ent '), (4, 'ent.'), (5, 'ent.'), (4, 'ent?'), (5, 'ent?'), (4, '第一'), (5, '第一'), (6, '第一'), (4, '第三'), (5, '第三'), (4, '他的'), (4, 'ird'), (4, '第一'), (5, '第一'), (4, 'ment'), (5, 'ment'), (5, 'ment。'),(6,'ment。'),(5,'ment?'),(6,'ment?'),(4,'ne。'),(4, 'nt。 '), (4, 'nt? '), (4, '奥库姆'), (5, '奥库姆'), (6, '奥库门'), (4, '第一个'), (4, '一'), (5, '一'), (4, '第一'), (4, '第二'), (5, '第二'), (6, '第二'), (4, '第三'), (4, '第三'), (5, '第三'), (6, '第三'), (4, '这个'), (5, '这个'), (4, 'umen'), (5, 'ument'), (6, 'ument'), (6, 'ument.'), (6, 'ument?')]

Notice:

  • 输出/特征include ' this'(在开头填充了原文中没有的额外空格;句子以'This')
  • 输出/特征include 'ment. '(在末尾添加了原文中没有的额外空格;句子以'document.')
  • 输出/特征do not包括'is the',因为该 n 元语法跨越了单词边界,但是'char_wb'分析器仅创建 n 元语法“在单词边界内"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tf-idf 向量化器在 char_wb 的特征词中有空格? 的相关文章

随机推荐

  • C++ 从字符串中间提取数字

    我有一个vector含有strings遵循以下格式text number number Eg Example 45 3 我只想要第一个数字 45在示例中 并且我无法使用当前代码执行其他操作 std vector
  • 在不同的函数中分配的空闲内存?

    我正在尝试学习 C 目前正在尝试编写基本的堆栈数据结构 但我似乎无法掌握基本的知识malloc free right 这是我一直在使用的代码 我只是在这里发布一小部分来说明特定问题 而不是全部代码 但错误消息是通过运行此示例代码生成的val
  • PGAdmin III 无法连接 AWS RDS

    我正在尝试从 PgAdmin 3 连接 AWS RDS PostgreSql 我点击了以下链接http docs aws amazon com AmazonRDS latest UserGuide USER ConnectToPostgre
  • 创建包含多个 AAR/JAR 的 AAR

    我看到了一些问题 Android Studio 将 2 个 aar 合二为一 https stackoverflow com questions 30084314 android studio combine 2 aar into one和
  • Google 地图标记为链接

    我在我的网站上使用 Google 地图 但我想知道如何使用Markers作为链接 我的意思是当我单击标记打开特定链接时 先感谢您 这实际上很容易做到 只需将事件处理程序附加到您的标记 然后通过设置启动链接window location hr
  • 在 Hibernate JPA 实体中用另一个列表替换一个列表是否合法?

    假设一个 Hibernate 4 2 JPA 2 0 实体class EntityA 它包含一个 ManyToOne field List
  • 连接多个字典以创建新列表,其值作为原始字典的值列表

    我使用的是 Python 2 7 并且在这里查看了几个解决方案 如果您知道要合并多少个字典 这些解决方案就有效 但我可以有 2 到 5 个之间的任何内容 我有一个循环 它生成一个具有相同键但不同值的字典 我想将新值添加到以前的值中 Such
  • 过滤输入 URL 的最佳方法是什么?

    我有一个接受来自 PHP 用户的 URL 的表单 我应该允许或禁止哪些字符 目前我使用 input preg replace a zA Z0 9 string 输入 子字符串 输入 0 255 因此 它被修剪为 255 个字符 并且只能包含
  • 抑制地址清理程序的 gtest 的统一测试

    我正在我的单元测试上运行地址清理程序 Cmake 看起来像这样 cmake G Unix Makefiles DCMAKE CXX COMPILER clang 9 DCMAKE C COMPILER clang 9 DCMAKE C FL
  • 是否有 RedGate 的“穷人”替代品来编写整个数据库模式的脚本? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我现在的情况是 我想为数据库生成一个脚本 我可以在另一台服务器上运行该脚本 并获得与原始数据库相同的数
  • Eclipse 类路径条目仅用于测试

    在 Maven 中 你可以有编译时依赖关系和test依赖关系 这是我喜欢的一个功能 M2Eclipse 插件也使这个功能在 Eclipse 中可用 这非常棒 所以如果我添加jmock jar作为测试依赖项添加到我的项目中 它将显示在 JUn
  • 有什么办法可以使用路径查找图像吗? MediaStore.Images.Thumbnails (Android)

    我在用着MediaStore Images Thumbnails以显示用户拥有的图像 但我无法通过其路径获取图像 有什么办法可以使用路径查找图像吗 String proj MediaStore Images Thumbnails ID Me
  • 无论如何要在flutter中使用sharedPreferences启用“记住我”功能?

    目前 如果用户成功登录一次 我已启用 保持登录 功能 但是 我仍然想制作一个 记住我 复选框来保存用户的成功登录信息 谁能帮我解决这个问题吗 需要 一个复选框 使用户能够在用户成功登录后存储电子邮件和密码 代码如下所示 signIn Str
  • 在 Android 设备上运行 github 上的 React Native 项目

    背景 我跟着this https facebook github io react native docs tutorial html教程并在我的设备上成功运行了这个 现在我正在尝试运行 github 上的其他 React Native 项
  • Bigquery 使用具有空字段的数据流进行流式插入

    我们使用预定义的 Dataflow 作业模板将 Bigquery 流式插入与 Dataflow 结合使用 当我将其与可为空和重复的字段一起使用时 我遇到了一些特殊情况 例如 使用模式 name STRING NULLABLE 尝试进行插入操
  • WSDL测试

    有人做过 wsdl 测试吗 即 模式验证 语义验证 WSDL 回归测试 互操作性 有人知道如何实施上述内容吗 I use SoapUI http www soapui org 用于我所有的 SOAP REST 测试 它可以完成您想要的所有操
  • 在 AWS CodePipeline 中对多个构建进行手动审批

    我们设置了一个 CodePipeline 来执行构建 部署到 QA ECS 环境 然后执行手动批准步骤以部署到 Prod 但令人困惑的是 当有多个构建相继运行时 多个构建按顺序部署到 QA 但 批准 按钮似乎一次批准一个 并且当您单击它时不
  • 缺少“运行方式”Android 应用程序

    SDK 和 ADT 已安装并正常工作 但是当我运行一些 android 代码时 运行方式 面板为空 我需要转到运行配置 单击 Android 应用程序 制作副本 将我的项目名称放在副本上并运行它 然后在模拟器上就可以正常运行了 如何在运行方
  • Java 工作空间和文件路径

    我有一个可能很容易解决的问题 我的项目中有一个文件夹 想使用相对路径获取它 new File folder 这给了我FileNotFoundException 如果我尝试这样 new File d workspace project fol
  • tf-idf 向量化器在 char_wb 的特征词中有空格?

    I use singleTFIDF TfidfVectorizer analyzer char wb ngram range 4 6 stop words my stop words max features 50 fit text 并想知