V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
thedevil7
V2EX  ›  问与答

数据库新人, 请教前辈这样的数据量, 是否需要用到数据库?

  •  
  •   thedevil7 · 2012-11-09 11:18:58 +08:00 · 3501 次点击
    这是一个创建于 4157 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我想用 python 写一个拼写检查脚本, 需要收集正确的词汇以及对应的错误的词汇.

    正确的词汇可能有 1W 个以上, 但每一个正确的词汇对应的错误词汇可能有成千上万个.

    所以最后的数据就有可能有数百万个. 那么这样的数据量是否需要用到数据库呢?

    如果需要用到数据库, 应该用什么样类型的数据库?

    多谢各位指点.
    14 条回复    1970-01-01 08:00:00 +08:00
    clino
        1
    clino  
       2012-11-09 11:23:57 +08:00
    要看你要怎么使用这些数据了
    如果要用数据库,那你要想清楚如何用数据库来表达
    013231
        2
    013231  
       2012-11-09 11:29:30 +08:00
    thedevil7
        3
    thedevil7  
    OP
       2012-11-09 14:09:31 +08:00
    @clino
    因为没学过数据库, 我有一个比较直观的想法不知行不行得通.

    1.一个表:
    正确词汇 - 错误词汇(们).

    因为可能的错误词汇成百上千, 所以不知这样效率会不会不高.

    2.两个表:
    1. 正确词汇. 可能附带其他内容.
    2. 错误词汇 - 正确词汇(可能有多项).

    这样只要在错误词汇表里面找到了对应的项目就能得到正确词汇.


    @013231
    真巧, 我看的是下面这篇文章.
    http://blog.youxu.info/spell-correct.html
    clino
        4
    clino  
       2012-11-09 15:11:23 +08:00
    @thedevil7 同意楼上所说"拼寫檢查通常是用貝葉斯算法做的, 不是靠蠻力收集錯詞"
    你用记错词的办法比较生硬,不能鉴别没有碰到过的新的错词
    thedevil7
        5
    thedevil7  
    OP
       2012-11-09 15:32:01 +08:00
    @clino 我原本打算产生编辑距离为 1, 2 的错词, 看来这个方法比较笨, 请问如何做才是比较聪明的办法? 感谢指教.
    clino
        6
    clino  
       2012-11-09 16:06:17 +08:00
    @thedevil7 上面贴的那个阮一峰的blog讲得很清楚啊,连代码都有的
    thedevil7
        7
    thedevil7  
    OP
       2012-11-09 16:25:51 +08:00
    @clino 那个帖子就是我这个方法.......... 况且那个博文(至少代码)是抄的... 原文译文为 3l 中给出的地址, 其中有原文地址.
    clino
        8
    clino  
       2012-11-09 17:22:28 +08:00
    @thedevil7 你是说那篇blog里有记[错词]的做法?我怎么没看到?
    013231
        9
    013231  
       2012-11-09 18:46:40 +08:00
    @clino
    @thedevil7
    你們都沒仔細看代碼呀. 那個`edits1`和`edits2`函數就是用來生成距離為1和2的錯詞的.
    thedevil7
        10
    thedevil7  
    OP
       2012-11-09 19:01:24 +08:00
    @013231 我知道算法是这样的, 可是我觉得如果我要重复利用的话, 需要一个合适的数据结构. 所以我想到了数据库. 因为从没用过, 学过相关知识, 所以不知道这个想法是否合适.
    @clino


    我想问如何才能安排好这些数据, 还各位前辈请指点一下.
    013231
        11
    013231  
       2012-11-09 19:30:40 +08:00
    @thedevil7 實時生成就可以了. 頂多在內存中建個緩存.
    thedevil7
        12
    thedevil7  
    OP
       2012-11-09 19:32:46 +08:00
    @013231 可是这样的数据既然需要反复利用, 干嘛不存起来呢? 诚心求解惑.
    013231
        13
    013231  
       2012-11-09 20:10:02 +08:00   ❤️ 1
    @thedevil7 你計算過這樣一個數據庫會有多大嗎? 建立這樣的數據庫根本不現實.
    thedevil7
        14
    thedevil7  
    OP
       2012-11-09 20:22:58 +08:00
    @013231 原来是这样. 只知道其中的数据可能有上千万条, 不知道如何计算数据库的大小.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5485 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 08:28 · PVG 16:28 · LAX 01:28 · JFK 04:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.