有没有办法在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? 的相关文章

随机推荐

  • 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中获取词干并获取词干的单词列表 据我所知 答案是否定的 并且根据词干分析器的不同 可能很难进行详尽的搜索来恢复词干规则的效果 并且无论