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

2012-11-09 11:18:58 +08:00
 thedevil7
我想用 python 写一个拼写检查脚本, 需要收集正确的词汇以及对应的错误的词汇.

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

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

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

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

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

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

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

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


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


我想问如何才能安排好这些数据, 还各位前辈请指点一下.
013231
2012-11-09 19:30:40 +08:00
@thedevil7 實時生成就可以了. 頂多在內存中建個緩存.
thedevil7
2012-11-09 19:32:46 +08:00
@013231 可是这样的数据既然需要反复利用, 干嘛不存起来呢? 诚心求解惑.
013231
2012-11-09 20:10:02 +08:00
@thedevil7 你計算過這樣一個數據庫會有多大嗎? 建立這樣的數據庫根本不現實.
thedevil7
2012-11-09 20:22:58 +08:00
@013231 原来是这样. 只知道其中的数据可能有上千万条, 不知道如何计算数据库的大小.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/52164

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX