查看: 868|回复: 19
打印 上一主题 下一主题

[求助] 将词典数据转化为数据库

[复制链接]

该用户从未签到

7

主题

21

回帖

1060

积分

解元

Rank: 5Rank: 5

积分
1060
跳转到指定楼层
1
发表于 2020-3-15 18:33:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
前几天下载了红宝书app但特别难用,无聊把apk文件解压发现了它的数据库,感觉非常不错,于是有了这个念头,想写一个python脚本把词典转换为数据库。但是实际写的过程发现很多问题,词典mdx解压的数据html感觉有很多不规则,写起来很难,所以想问问有没有人有类似的经验。


红宝书内部数据库:

  • TA的每日心情
    无聊
    2023-2-17 11:35
  • 签到天数: 284 天

    [LV.8]以坛为家I

    20

    主题

    889

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10318

    QQ 章

    推荐
    发表于 2020-3-16 13:05:44 | 只看该作者
    处理前后比较

    2020-03-16_13-03.png (39.09 KB, 下载次数: 0)

    2020-03-16_13-03.png
  • TA的每日心情

    2021-10-23 19:58
  • 签到天数: 212 天

    [LV.7]常住居民III

    3

    主题

    461

    回帖

    1952

    积分

    解元

    Rank: 5Rank: 5

    积分
    1952
    2
    发表于 2020-3-15 18:48:38 | 只看该作者
    一般转出的数据库也是双列吧,这么细致太复杂了
  • TA的每日心情
    慵懒
    2021-9-28 14:33
  • 签到天数: 158 天

    [LV.7]常住居民III

    5

    主题

    907

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    17310

    QQ 章灌水大神章笑傲江湖章推广专家

    3
    发表于 2020-3-15 18:55:40 | 只看该作者
    难,除非一个词典写一个脚本
  • TA的每日心情
    慵懒
    2018-4-1 11:19
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    9

    主题

    32

    回帖

    400

    积分

    秀才

    Rank: 3Rank: 3

    积分
    400
    4
    发表于 2020-3-15 21:54:36 | 只看该作者
    wordnet直接有一个现成的数据库,另外可以买语料库的数据
    我自己利用wordnet数据做了一个数据库(filemaker做的),各个mdx抽取点数据,然后组合在一起。下面是目前最新的主页面。主要不会用bs4抽取mdx数据,理论上还是好弄数据库的


  • TA的每日心情
    慵懒
    2018-4-1 11:19
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    9

    主题

    32

    回帖

    400

    积分

    秀才

    Rank: 3Rank: 3

    积分
    400
    5
    发表于 2020-3-15 22:31:08 | 只看该作者
    akiritoa 发表于 2020-3-15 21:54
    wordnet直接有一个现成的数据库,另外可以买语料库的数据
    我自己利用wordnet数据做了一个数据库(filemaker ...

    mdx的东西,你应该是需要自己建立数据库,你看看能不能转成json,一般转成json就好建库了
  • TA的每日心情
    慵懒
    2020-5-3 16:00
  • 签到天数: 207 天

    [LV.7]常住居民III

    28

    主题

    690

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    12838
    6
    发表于 2020-3-16 01:10:12 | 只看该作者
    我觉得你如果是需要mdx版本的,可以给出数据,说不定论坛就有人帮你给做了。
  • TA的每日心情
    无聊
    2023-2-17 11:35
  • 签到天数: 284 天

    [LV.8]以坛为家I

    20

    主题

    889

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10318

    QQ 章

    7
    发表于 2020-3-16 13:01:05 | 只看该作者
    传上来、处理简单
  • TA的每日心情
    无聊
    2023-2-17 11:35
  • 签到天数: 284 天

    [LV.8]以坛为家I

    20

    主题

    889

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10318

    QQ 章

    9
    发表于 2020-3-16 13:08:56 | 只看该作者
    转为结构化、你怎样搞都行

    该用户从未签到

    7

    主题

    21

    回帖

    1060

    积分

    解元

    Rank: 5Rank: 5

    积分
    1060
    10
     楼主| 发表于 2020-3-16 16:39:15 | 只看该作者
    lwx228 发表于 2020-3-16 13:01
    传上来、处理简单

    我现在想做的就是论坛的牛津高阶英汉第9版,大佬会做?

    该用户从未签到

    7

    主题

    21

    回帖

    1060

    积分

    解元

    Rank: 5Rank: 5

    积分
    1060
    11
     楼主| 发表于 2020-3-16 16:42:05 | 只看该作者

    不是这样,我想做的是牛津高阶第9版,我看了下,有很多种不同的结构,比如多词性的单词,一个词性的单词,动词词性的单词会有变形,还有单词中有俗语等模块,模块中也有例句,不同单词的html的tag有时候还会变,我估计可能是他们防爬虫的一些措施
  • TA的每日心情
    无聊
    2023-2-17 11:35
  • 签到天数: 284 天

    [LV.8]以坛为家I

    20

    主题

    889

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10318

    QQ 章

    12
    发表于 2020-3-16 16:42:49 | 只看该作者
    链接?这样的N多了

    2020-03-16_16-42.png (40.98 KB, 下载次数: 0)

    2020-03-16_16-42.png
  • TA的每日心情
    无聊
    2023-2-17 11:35
  • 签到天数: 284 天

    [LV.8]以坛为家I

    20

    主题

    889

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10318

    QQ 章

    13
    发表于 2020-3-16 16:47:35 | 只看该作者
    那一种想念 发表于 2020-3-16 16:42
    不是这样,我想做的是牛津高阶第9版,我看了下,有很多种不同的结构,比如多词性的单词,一个词性的单词 ...

    在数据库增加词性列、这样就会体积增加
  • TA的每日心情
    擦汗
    2020-6-6 16:10
  • 签到天数: 164 天

    [LV.7]常住居民III

    12

    主题

    709

    回帖

    4591

    积分

    贡士

    Rank: 6Rank: 6

    积分
    4591
    14
    发表于 2020-3-23 17:56:46 | 只看该作者
    强烈支持, 做成细分内容的数据库简直太棒了, 功在当代的好事,
    anki那个查词插件好像有这个作用,只是对个别词典可以细分,比如朗文. 楼主可以参考下, 有源码的

    该用户从未签到

    7

    主题

    21

    回帖

    1060

    积分

    解元

    Rank: 5Rank: 5

    积分
    1060
    15
     楼主| 发表于 2020-3-23 19:18:32 | 只看该作者
    haoduodianying 发表于 2020-3-23 17:56
    强烈支持, 做成细分内容的数据库简直太棒了, 功在当代的好事,
    anki那个查词插件好像有这个作用,只是对个别 ...

    难的不是源码,python我也会,难的是词典的内容很多很乱,我做了一部分,基本都可以提取出来,但是还是没办法找到规律
  • TA的每日心情
    慵懒
    2018-4-1 11:19
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    9

    主题

    32

    回帖

    400

    积分

    秀才

    Rank: 3Rank: 3

    积分
    400
    16
    发表于 2020-4-4 10:57:00 | 只看该作者
    按比较难的词(play)做的一个json结构示意图

  • TA的每日心情
    无聊
    2023-2-17 11:35
  • 签到天数: 284 天

    [LV.8]以坛为家I

    20

    主题

    889

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10318

    QQ 章

    17
    发表于 2020-4-4 11:14:25 | 只看该作者
    akiritoa 发表于 2020-4-4 10:57
    按比较难的词(play)做的一个json结构示意图

    漂亮。

    我只会用excel+公式进行这样的扩展
  • TA的每日心情
    慵懒
    2018-4-1 11:19
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    9

    主题

    32

    回帖

    400

    积分

    秀才

    Rank: 3Rank: 3

    积分
    400
    18
    发表于 2020-4-4 18:03:34 | 只看该作者
    lwx228 发表于 2020-4-4 11:14
    漂亮。

    我只会用excel+公式进行这样的扩展

    我整理成json后一般用excel的query来做,毕竟不是科班,不太会处理json
  • TA的每日心情

    2019-9-23 23:38
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    238

    主题

    552

    回帖

    4万

    积分

    禁止发言

    积分
    47766
    19
    发表于 2020-4-5 00:57:05 | 只看该作者
    那一种想念 发表于 2020-3-16 16:42
    不是这样,我想做的是牛津高阶第9版,我看了下,有很多种不同的结构,比如多词性的单词,一个词性的单词 ...

    做这些东西最大的难度是因为找不到原作者定下来的标签使用规范,只能通过观察有限的词条的标签来做。最后的结果是难免有没有观察到的词条有你不知道的标签用法,所以做出来难免有BUG。
    一个尽量少出现BUG的方法是如果有的话尽量找到纸版的词典,除了多观察排版更要研究一般正文前面都有凡例之类的词典标记的说明。
    但即使这样做了仍旧可能有BUG。
  • TA的每日心情

    2019-9-23 23:38
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    238

    主题

    552

    回帖

    4万

    积分

    禁止发言

    积分
    47766
    20
    发表于 2020-4-5 01:03:55 | 只看该作者
    本帖最后由 lbhl 于 2020-4-5 01:05 编辑
    akiritoa 发表于 2020-4-4 18:03
    我整理成json后一般用excel的query来做,毕竟不是科班,不太会处理json

    json有现成解析器使用,真的太简单了。
    不要被所谓“科班“两个字吓到了。计算机应用(非系统)软件开发是典型的不需要科班就有可能胜任的,只要你有慎密严谨的逻辑思维,都能做。
    MDX这些相关的技术属于前端开发技术,说实话是属于前端中技术含量相当低或者说入门水平的技术活儿,因为太单纯就是静态网页的呈现,每个网页还都是一个模子里出来的,动态几乎没有最多加几个极其简单的显示隐藏切换的交互的按钮,任何一个实用价值的网站的前端开发难度都比MDX高几个档次。当然,词典软件的开发另当别论,难度还是非常之大的。