有没有办法在python nltk中反转stem?

2024-02-22

我有一个 NLTK/python 中的词干列表,并且想要获取创建该词干的可能单词。

有没有办法在Python中获取词干并获取词干的单词列表?


据我所知,答案是否定的,并且根据词干分析器的不同,可能很难进行详尽的搜索来恢复词干规则的效果,并且无论以什么标准来看,结果都大多是无效的单词。例如,对于波特词干分析器:

from nltk.stem.porter import *
stemmer = PorterStemmer()
stemmer.stem('grabfuled')
# results in "grab" 

因此,反向函数将生成“grabfuled”作为有效单词之一,因为“-ed”和“-ful”后缀在词干提取过程中被连续删除。 但是,给定一个有效的词典,您可以执行以下与词干提取方法无关的操作:

from nltk.stem.porter import *
from collections import defaultdict

vocab = set(['grab', 'grabbing', 'grabbed', 'run', 'running', 'eat'])

# Here porter stemmer, but can be any other stemmer too
stemmer = PorterStemmer()

d = defaultdict(set)
for v in vocab:
    d[stemmer.stem(v)].add(v)  

print(d)
# defaultdict(<class 'set'>, {'grab': {'grab', 'grabbing', 'grabbed'}, 'eat': {'eat'}, 'run': {'run', 'running'}})

现在我们有了一个字典,可以将词干映射到可以生成词干的有效单词。对于任何词干,我们可以执行以下操作:

print(d['grab'])
# {'grab', 'grabbed', 'grabbing'}

为了构建词汇表,您可以标记语料库或使用nltk内置英语单词词典 https://stackoverflow.com/questions/28339622/is-there-a-corpora-of-english-words-in-nltk.

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

有没有办法在python nltk中反转stem? 的相关文章

  • 如果两点之间的距离低于某个阈值,则从列表中删除点

    我有一个点列表 只有当它们之间的距离大于某个阈值时 我才想保留列表中的点 因此 从第一个点开始 如果第一个点和第二个点之间的距离小于阈值 那么我将删除第二个点 然后计算第一个点和第三个点之间的距离 如果该距离小于阈值 则比较第一点和第四点
  • 是否有解决方法可以通过 CoinGecko API 安全检查?

    我在工作中运行我的代码 一切都很顺利 但在不同的网络 家庭 WiFi 上 我不断收到403访问时出错CoinGecko V3 API https www coingecko com api documentations v3 可以观察到 在
  • 保存为 HDF5 的图像未着色

    我目前正在开发一个将文本文件和 jpg 图像转换为 HDF5 格式的程序 用HDFView 3 0打开 似乎图像仅以灰度保存 hdf h5py File Sample h5 img Image open Image jpg data np
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • 立体太阳图 matplotlib 极坐标图 python

    我正在尝试创建一个与以下类似的简单的立体太阳路径图 http wiki naturalfrequent com wiki Sun Path Diagram http wiki naturalfrequency com wiki Sun Pa
  • 在Python中连接反斜杠

    我是 python 新手 所以如果这听起来很简单 请原谅我 我想加入一些变量来生成一条路径 像这样 AAAABBBBCCCC 2 2014 04 2014 04 01 csv Id TypeOfMachine year month year
  • 如何将张量流模型部署到azure ml工作台

    我在用Azure ML Workbench执行二元分类 到目前为止 一切正常 我有很好的准确性 我想将模型部署为用于推理的 Web 服务 我真的不知道从哪里开始 azure 提供了这个doc https learn microsoft co
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • Docker 中的 Python 日志记录

    我正在 Ubuntu Web 服务器上的 Docker 容器中测试运行 python 脚本 我正在尝试查找由 Python Logger 模块生成的日志文件 下面是我的Python脚本 import time import logging
  • 如何通过索引列表从 dask 数据框中选择数据?

    我想根据索引列表从 dask 数据框中选择行 我怎样才能做到这一点 Example 假设我有以下 dask 数据框 dict A 1 2 3 4 5 6 7 B 2 3 4 5 6 7 8 index x1 a2 x3 c4 x5 y6 x
  • pyspark 将 twitter json 流式传输到 DF

    我正在从事集成工作spark streaming with twitter using pythonAPI 我看到的大多数示例或代码片段和博客是他们从Twitter JSON文件进行最终处理 但根据我的用例 我需要所有字段twitter J
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • 从 NumPy ndarray 中选择行

    我只想从 a 中选择某些行NumPy http en wikipedia org wiki NumPy基于第二列中的值的数组 例如 此测试数组的第二列包含从 1 到 10 的整数 gt gt gt test numpy array nump
  • 使用特定颜色和抖动在箱形图上绘制数据点

    我有一个plotly graph objects Box图 我显示了箱形 图中的所有点 我需要根据数据的属性为标记着色 如下所示 我还想抖动这些点 下面未显示 Using Box我可以绘制点并抖动它们 但我不认为我可以给它们着色 fig a
  • python import inside函数隐藏现有变量

    我在我正在处理的多子模块项目中遇到了一个奇怪的 UnboundLocalError 分配之前引用的局部变量 问题 并将其精简为这个片段 使用标准库中的日志记录模块 import logging def foo logging info fo
  • 实现 XGboost 自定义目标函数

    我正在尝试使用 XGboost 实现自定义目标函数 在 R 中 但我也使用 python 所以有关 python 的任何反馈也很好 我创建了一个返回梯度和粗麻布的函数 它工作正常 但是当我尝试运行 xgb train 时它不起作用 然后 我
  • 如何应用一个函数 n 次? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 假设我有一个函数 它接受一个参数并返回相同类型的结果 def increment x return x 1 如何制作高阶函数repeat可以
  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重
  • cv2.VideoWriter:请求一个元组作为 Size 参数,然后拒绝它

    我正在使用 OpenCV 4 0 和 Python 3 7 创建延时视频 构造 VideoWriter 对象时 文档表示 Size 参数应该是一个元组 当我给它一个元组时 它拒绝它 当我尝试用其他东西替换它时 它不会接受它 因为它说参数不是

随机推荐

  • Boost 解析日期/时间字符串并生成 .NET 兼容的 Ticks 值

    我想使用 C Boost 来解析时间字符串 例如1980 12 06 21 12 04 232并获得一个ticks对应于刻度计数的值 用于初始化 NETSystem DateTime 我该怎么做 Update I do需要使用C 我不能为此
  • 如何从维基百科 API 获取表中的数据?

    我正在尝试从中获取所有内容维基百科 Unusual articles https en wikipedia org wiki Wikipedia Unusual articles我可以通过调用此端点来获取表内容列表 https en wik
  • 如何限制文本宽度

    我想限制文本块的宽度 这样它看起来就像在每行的 ned 处都有 br 像这样的事情 Texttttttttttttttttttttt tttttttttttttttttttttttt tttttttttttttttttttttttt 由此
  • UICollectionView 的 iOS 字母滚动

    我有一个集合视图 显示人物及其姓名的多个图像 并且我已经实现了搜索和排序功能 但是 问题是我也想要按字母顺序排列 但是集合视图没有像这样的委托方法UITableView has NSArray sectionIndexTitlesForTa
  • C++ 编程帮助

    您创建一个程序 显示用户输入的两个数字之间 含 的偶数之和 例如 2 和 7 12 之和 2 4 6 这就是我到目前为止所拥有的 但如果你能让我朝着正确的方向前进 那就会有帮助了 Advanced30 cpp displays the su
  • 如何以编程方式从父进程获取子进程的堆栈跟踪?

    假设我在程序中派生了一个子进程 在某个时候 我暂停子进程kill child SIGSTOP 并想要检查堆栈的内容 有没有办法以编程方式从父进程获取子进程的堆栈跟踪 我知道ptrace是跟踪子进程并检查其内存 寄存器的标准方法 我也知道ba
  • 使用 C/C++ 创建多线程应用程序的最简单方法是什么?

    使用 C C 创建多线程应用程序的最简单方法是什么 不幸的是没有简单的方法 有几个选项 Linux 上的 pthread Windows 上的 win32 api 线程或 boost thread 库
  • 如何在运行时查找已加载的 d3.js 扩展及其版本?

    按照 JavaScript 库的惯例 全局根对象由d3 js https d3js org 有一个自我识别属性 该属性返回 并因此在控制台中调用时输出 所用库的版本 在这种情况下 它是 d3 version Now 从 4 0 版本开始 d
  • Keras 中的 Seq2Seq 双向编码器解码器

    我正在尝试使用 Keras 实现 seq2seq 编码器 解码器 并在编码器上使用双向 lstm 如下所示 from keras layers import LSTM Bidirectional Input Concatenate from
  • 如何使用 html、svg 创建可点击的三角形网格?

    我已经创建了一个三角形网格 如下所示 svg margin left 0px margin right 60px padding 0 div div div div
  • Cocoapods 和 XCode5 集成错误

    在新的 XCode5 中构建我的项目时 我收到以下警告 Pods App 作为 libPods App a 的隐式依赖项被拒绝 因为其架构 i386 不包含所有必需的架构 x86 64 要解决此问题 请选择Pods项目在左侧菜单中 然后在t
  • Firebase 通知在 iOS 11 中不起作用

    我正在开发一个使用 Firebase 推送通知的应用程序 它运行良好 直到我在 iOS 11 中尝试 使用带有 iOS 11 的 iPhone 时 通知不会到达 这是我的代码 void application UIApplication a
  • 从 Eclipse 项目创建多个 JAR

    我已经开始开发一个项目 目前该项目从 Eclipse 项目生成一个整体 JAR 文件 基本上 有一个 Ant 脚本 它会在 Eclipse Java Builder 运行时运行 并获取 Eclipse Java Builder 的输出 cl
  • Spring 的 @DependsOn 不适用于应用程序事件?

    我有一个发送应用程序事件的类 接收者不能错过这个事件 因此发送者依赖于接收者 Service DependsOn receiver class Sender PostConstruct public void init applicatio
  • 一般来说,什么更快,是通过文件进行 grep 还是通过 blob 运行 SQL LIKE %x% 查询?

    假设我正在设计一个工具 可以将代码片段保存在 PostgreSQL MySQL 数据库或文件系统中 我想搜索这些片段 使用像Sphinx这样的搜索引擎似乎不太实用 因为我们在搜索代码时需要代码的精确文本匹配 grep and ack并且一直
  • 如果更新时属性值为 null,则不应将该属性添加到记录中

    假设我有一个像这样的猫鼬模式 var mongoose require mongoose var Schema mongoose Schema var testSchema new Schema name type String requi
  • 如何暂停/延迟我的代码的特定部分

    我在一个类中有一个 PaintComponent 方法 它生成一个 10 10 的网格 我想降低帧速率 以便每次函数为网格中的矩形着色时 我都可以看到进度 public void paint Graphics g1 super paint
  • Ruby 中私有方法应该放在哪里?

    大多数博客或教程或书籍在任何类 模块的底部都有私有方法 这是最佳实践吗 我发现在必要时使用私有方法更方便 例如 public def my method do something minion method end private def
  • Python 正则表达式中的错误? (re.sub 与 re.MULTILINE)

    我注意到 Python 的 Regex 库中有一些奇怪的行为 并且我不确定我是否做错了什么 如果我使用正则表达式对其运行re sub with re MULTILINE 它似乎只替换了前几次出现的情况 如果我关闭它 它会替换所有出现的情况r
  • 有没有办法在python nltk中反转stem?

    我有一个 NLTK python 中的词干列表 并且想要获取创建该词干的可能单词 有没有办法在Python中获取词干并获取词干的单词列表 据我所知 答案是否定的 并且根据词干分析器的不同 可能很难进行详尽的搜索来恢复词干规则的效果 并且无论