使用 trie 的 Python 拼写检查器

2023-12-26

我正在尝试使用 trie 数据结构实现拼写检查器。我目前有以下大纲Node:

class Node:
    def __init__(self):
        self.next = {}
        self.word_marker = False

    def add_item(self, string):
        #if the length of the string is 0 then return. When the end of the word 
        #comes set the word_marker to true
        if len(string) == 0:
            self.word_marker = True
            return
        #set the key to the first letter of the string and reformat the string to reflect the first letter taken out
        #ultimately going to store the letters for each node as the key
        key = string[0]
        string = string[1:]

        #if there is a key in the dictionary, then recursively call add_item with new string
        if key in self.next:
            self.next[key].add_item(string)

        else:
            node = Node()
            self.next[key] = node
            node.add_item(string)

我想做的下一件事是编写函数来搜索string然后返回建议的拼写。 (def correct(self, string))。我将如何通过这个 trie 来实现搜索?假设我已经通过定义根节点向 trie 添加了单词列表root,然后使用add_item对于列表中的每个单词。


如果您还没有,您可能想看看 Norvig 的 '如何编写拼写纠正器 http://norvig.com/spell-correct.html'

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

使用 trie 的 Python 拼写检查器 的相关文章

  • 如何传递架构以从现有数据帧创建新数据帧?

    要将 schema 传递到 json 文件 我们这样做 from pyspark sql types import StructField StringType StructType IntegerType data schema Stru
  • Python - 比较同一字典中的值

    我有一本字典 d Trump MAGA FollowTheMoney Clinton dems Clinton Stein FollowTheMoney Atlanta 我想删除字符串列表中的重复字符串 该字符串是键的值 对于这个例子 期望
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • 如何在 __init__ 中使用await设置类属性

    我如何定义一个类await在构造函数或类体中 例如我想要的 import asyncio some code class Foo object async def init self settings self settings setti
  • 有什么办法可以加快这个 VBA 算法的速度吗?

    我正在寻找实现 VBAtrie http en wikipedia org wiki Trie 构建能够在相对较短的时间内 少于 15 20 秒 处理大量英语词典 约 50 000 个单词 的算法 由于我实际上是一名 C 程序员 这是我第一
  • 如何从Python中的函数返回多个值? [复制]

    这个问题在这里已经有答案了 如何从Python中的函数返回多个变量 您可以用逗号分隔要返回的值 def get name you code return first name last name 逗号表示它是一个元组 因此您可以用括号将值括
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • PyQt 使用 ctrl+Enter 触发按钮

    我正在尝试在我的应用程序中触发 确定 按钮 我当前尝试的代码是这样的 self okPushButton setShortcut ctrl Enter 然而 它不起作用 这是有道理的 我尝试查找一些按键序列here http ftp ics
  • Pycharm 在 os.path 连接上出现“未解析的引用”

    将pycharm升级到2018 1 并将python升级到3 6 5后 pycharm报告 未解析的引用 join 最新版本的 pycharm 不会显示以下行的任何警告 from os path import join expanduser
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • Python 3:将字符串转换为变量[重复]

    这个问题在这里已经有答案了 我正在从 txt 文件读取文本 并且需要使用我读取的数据之一作为类实例的变量 class Sports def init self players 0 location name self players pla
  • 使用 python/numpy 重塑数组

    我想重塑以下数组 gt gt gt test array 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 为了得到 gt gt gt test2 array 11 12 21 22 13 14
  • 无法导入 langchain.agents.load_tools

    我正在尝试使用 LangChain Agents 但无法导入 load tools 版本 langchain 0 0 27 我尝试过这些 from langchain agents import initialize agent from
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • 每当使用 import cv2 时 OpenCV 都会出错

    我在终端上使用 pip3 install opencv contrib python 安装了 cv2 并且它工作了 但是每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时 在 python IDLE 上它都会说 Trac
  • 如何使用 Boto3 启动具有 IAM 角色的 EC2 实例?

    我无法弄清楚如何使用指定的 IAM 角色在 Boto3 中启动 EC2 实例 以下是迄今为止我如何成功创建实例的一些示例代码 import boto3 ec2 boto3 resource ec2 region name us west 2
  • JSON:TypeError:Decimal('34.3')不是JSON可序列化的[重复]

    这个问题在这里已经有答案了 我正在运行一个 SQL 查询 它返回一个小数列表 当我尝试将其转换为 JSON 时 出现类型错误 查询 res db execute SELECT CAST SUM r SalesVolume 1000 0 AS

随机推荐

  • atob 函数不应在新代码中使用?

    我需要使用atob在我正在处理的 React 项目中 有一个函数 但 VSCode 在函数调用中插入了一行 悬停时我收到以下消息 提供此功能只是为了与旧版 Web 兼容 平台 API 永远不应该在新代码中使用 因为它们使用 表示二进制数据的
  • 无法收集 pydev 的 python 解释器信息

    操作系统 Windows 7 x64 蟒蛇 2 7 3 pydev 2 7 1 2012100913 Eclipse 版本 Juno Service Release 1 内部版本号 20121004 1855 我无法在 Pydev 中配置
  • 如何检查exe是否从服务器访问

    这是一个客户端服务器应用程序 我正在创建一个更新程序 它将替换 exe 文件列表 运行脚本以及其他需要更新的内容 这将安装在服务器上 首先 我需要检查可执行文件是否通过网络共享打开 我可以通过进入计算机管理然后共享文件和打开文件来手动执行此
  • 在keras中定义模型(include_top = True)

    有人能告诉我在 keras 中定义模型时 include top True 意味着什么吗 我在 Keras 文档中读到了这一行的含义 它表示 include top 是否包含网络顶部的全连接层 我仍在寻找这行代码的直观解释 ResNet50
  • Dropwizard Response.status(Response.Status.NOT_FOUND).build() 返回 html

    如果确实缺少资源 我的 API 将返回以下内容 code 404 message HTTP 404 Not Found 当我使用代码通过我的资源返回 404 时Response status Response Status NOT FOUN
  • 在 LINQ to 对象的语句中

    LINQ to 对象中是否存在与 SQL IN 语句等效的语句 Yes Contains http msdn microsoft com en us library system linq enumerable contains aspx
  • Java 中的 PPMD​​ 压缩?

    有谁知道 PPMD 压缩算法的 Java 实现吗 我还没有找到 Java 实现 但有一个 C 实现http users senet com au mjbone Compression html http users senet com au
  • 如何在 Windows 窗体应用程序中创建全局错误处理程序?

    我认为有一个组件允许创建全局错误处理 例如 当发生不好的事情时 我自己会抛出异常 例如 throw new ArgumentNullException playlist is empty 我怎样才能在全球范围内捕捉到它 您可以通过以下方式完
  • 使用 std::make_shared 抽象类实例化时出错

    我将省略相当多的代码 因为这些是一些相当大的对象 而我的问题实际上只涉及 std make shared 的操作 我在命名空间 SYNC 中有一个名为 D3D11Shader 的对象 这有一个static函数调用 SYNC D3D11Sha
  • Spring、Infinispan 和 JBoss 7 集成

    我正在尝试使用 JBoss 7 Infinispan 缓存作为两个战争部署的基于 spring 的应用程序的通信形式 稍后会详细介绍 我在访问 JBoss 托管缓存管理器时遇到问题 当我使用 DefaultCacheManager cach
  • 如何在 WordPress 上找到我的 php.ini?

    我想增加我的 WordPress 网站上的最大执行时间 我知道我应该编辑 php ini 但似乎找不到它 有小费吗 看到这个问题我真多啊 我所看到的一切都缺乏真正的答案 php ini 应该位于wp admin目录 如果不是只是创建它然后定
  • EntityManager persist() 方法不会将记录插入数据库

    我使用时遇到问题EntityManager persist Object 方法 现在 当我摆脱其他问题时 通过应用程序工作没有异常 但对象没有放入我的数据库中 我的实体类 Entity Table name Chain public cla
  • sails.js 会话 - 记住我的功能

    我一直在尝试使用来实现 Rememberme 功能sails http sailsjs org 我希望会话持续到浏览器关闭为止 但是 如果用户登录时勾选了 Rememberme 复选框 我希望会话持续 30 天 我使用了这里的记住我护照策略
  • 如何使用 JPA 在同一对象上映射父/子关系

    读完这篇文章后JPA映射关系实体parentID https stackoverflow com questions 2743895 jpa map relation entity parentid我尝试将其应用到我的代码中 但这对我不起作
  • Magento 1.9 - 产品未添加到注销用户的购物篮中

    与大多数与 Magento 相关的问题一样 通常需要用头撞墙才能找到解决方案 然而这一次 什么也没有 对于已注销并尝试将商品添加到空购物车的客户 我遇到了一个奇怪的问题 它不适用于某些特定的产品类型 我扩展了购物车控制器以添加对用户输入值的
  • 无需注册 COM 即可与 C# 互操作,可能吗?

    是否可以通过 Dotnet 互操作和 C 使用免注册 COM 如果是这样 如何在 C 项目中添加对 COM 对象的引用 我有一个免费的 ATL COM 服务器 dll 带有嵌入式清单和两个测试客户端 一个是 cpp 另一个是 c cpp 客
  • C# 如何不断向标签框添加值,以便生成的数字不断添加到其中?

    我正在开发一个骰子程序 我们应该有一个 总收入 标签框 其中显示滚子掷骰子时赚取的总金额 如果你掷出 6 你将赚取 600 美元 如果你掷出 5 你将赚取 500 美元 等等 我可以让美元值显示在标签框上 但当我继续滚动时 该数字将被下一个
  • 错误:“jQuery 未定义”

    我用 jQuery 写了一个脚本 它适用于 Firefox 和 GoogleChrome 仅使用 IE 我会返回此错误 jQuery 未定义 jquery ui 1 8 4 custom min js 第 10 行字符 1 这是我的页面的标
  • NuGet Pack - 无法从远程源检索信息

    我正在尝试运行 nuget pack project csproj 但由于项目的目录结构 A B C 项目 它一直说 NuGet Protocol Core Types FatalProtocolException 无法从远程源 A B P
  • 使用 trie 的 Python 拼写检查器

    我正在尝试使用 trie 数据结构实现拼写检查器 我目前有以下大纲Node class Node def init self self next self word marker False def add item self string