查看: 622|回复: 6
打印 上一主题 下一主题

[求助] 如何把每个字条的短语、习语等提取出来

[复制链接]
  • TA的每日心情
    难过
    2020-5-22 17:29
  • 签到天数: 44 天

    [LV.5]常住居民I

    36

    主题

    326

    回帖

    6893

    积分

    会元

    Rank: 7Rank: 7Rank: 7

    积分
    6893
    跳转到指定楼层
    1
    发表于 2019-5-8 10:09:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 caihui10 于 2019-5-9 08:53 编辑

    发现在字典里输入任何短语、习语,只要21世纪大英汉有,都能显示出来,大大提升了查字典的效率,但缺乏例句。陆老的大英汉例句丰富,但只能到该词条下去看,很是不便!很想学习下这个技术,把这部分提取出来方便查阅。在论坛里找了几个工具,像https://www.pdawiki.com/forum/fo ... =12972&extra=page=1,说只要输入空格,就可以提取,试过了好像不行。https://www.pdawiki.com/forum/fo ... =18986&extra=page=1,按正则该如何填写代码?比如想把大英汉的短语、习语部分提取出来该怎么弄?比如:想把 aback这个单词下的 <span class="phmk">■</span phmk> <span class="phrase">be taken aback </span phrase>:<br>.<span class="table"><span class="num">1.</span num>吃一惊;被弄糊涂:</span table>提取出来该怎么弄?论坛上看到还有很多方法,恳请大侠赐教!

    预览图.jpg (69 KB, 下载次数: 2)

    预览图.jpg

    预览图2.jpg (53.27 KB, 下载次数: 2)

    预览图2.jpg
  • TA的每日心情
    开心
    2019-8-21 08:44
  • 签到天数: 163 天

    [LV.7]常住居民III

    17

    主题

    393

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    14980
    推荐
    发表于 2019-5-12 09:31:22 | 只看该作者
    本帖最后由 mikeee 于 2019-5-12 09:33 编辑

    我不是已经说了怎么提取短语习语了,在给出具体python码吧
    1. from pyquery import PyQuery as pq
    2. html = '<span class="phmk">■</span phmk> <span class="phrase">be taken aback </span phrase>:<br>.<span class="table"><span class="num">1.</span num>吃一惊;被弄糊涂:</span table>'
    3. res = [pq(elm).text() for elm in pq(html)('.phmk,.phrase,.table')]
    4. print(res)
    5. # 结果: ['■', 'be taken aback', '1.吃一惊;被弄糊涂:']
    复制代码
    提出短语习语后再重构字典,也不是太难的事,不过不会点编程单靠 vscode 的话要走很多很多弯路。
  • TA的每日心情
    开心
    2019-8-21 08:44
  • 签到天数: 163 天

    [LV.7]常住居民III

    17

    主题

    393

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    14980
    推荐
    发表于 2019-5-11 13:24:04 | 只看该作者
    本帖最后由 mikeee 于 2019-5-11 13:33 编辑

    先给答案:用 css选择器 .phmk,.phrase,.table

    验证方法。 先将以下代码(楼主给出的mdict/html码)存为html文件,例如 phrases-idioms.html
    1. <span class="phmk">■</span phmk> <span class="phrase">be taken aback </span phrase>:<br>.<span class="table"><span class="num">1.</span num>吃一惊;被弄糊涂:</span table>
    复制代码


    再用Chrome打开 phrases-idioms.html (一般双击 phrases-idioms.html即可。也可用其他浏览器,基本思想一样)。再调出 devtools (Chrome里右键选 Inspect或ctl-shift-I)。在devtools选定 Elements标签。在Elements标签按 ctrl-f,在跳出的搜索栏里键入 .phmk,.phrase,.table

    结果大致如下图



    可以看到 css选择器 .phmk,.phrase,.table 找到网页里的三个元素。

    至于如何提出对应的三个元素有许多办法,python里可用 pyquery, node/js里可用 cheerio/jquery,其他编程语言也都应该有包可用。

    python的话可直接用 readmdict 直接从 mdx 文件逐个读出每个词头的内容再用 pyquery + css选择器 进行处理, 内存足迹极小。顺便提一句,正则要处理这种东西也并非不可能但怕是会力不从心,不信可以试试
  • TA的每日心情
    难过
    2020-5-22 17:29
  • 签到天数: 44 天

    [LV.5]常住居民I

    36

    主题

    326

    回帖

    6893

    积分

    会元

    Rank: 7Rank: 7Rank: 7

    积分
    6893
    3
     楼主| 发表于 2019-5-11 23:30:42 | 只看该作者
    查看元素,我知道操作,关键是不会提取,我按drough发的教程安装了vscode,但运行总是说路径不对,我也不知道是哪里错了。哎,折腾这玩意都无心学习了。你看能不能提供教程,就像21世纪大英汉那样,什么短语都能查,只要它里面有。我昨天发了个RMB求购的帖子被人扔进了回收站,我也不想浪费太多时间在这上面,就想花点钱买技术。越简单越好,因我没任何计算机基础知识!
  • TA的每日心情
    难过
    2020-5-22 17:29
  • 签到天数: 44 天

    [LV.5]常住居民I

    36

    主题

    326

    回帖

    6893

    积分

    会元

    Rank: 7Rank: 7Rank: 7

    积分
    6893
    5
     楼主| 发表于 2019-5-15 21:12:44 | 只看该作者
    mikeee 发表于 2019-5-11 13:24
    先给答案:用 css选择器 .phmk,.phrase,.table

    验证方法。 先将以下代码(楼主给出的mdict/html码)存为ht ...

    还是不会提取,谢谢你的耐心帮助,没有编程基础真是看不明白。
  • TA的每日心情
    开心
    2019-6-23 00:02
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    43

    主题

    391

    回帖

    5万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    54723
    6
    发表于 2019-5-15 22:22:33 | 只看该作者
    caihui10 发表于 2019-5-15 21:12
    还是不会提取,谢谢你的耐心帮助,没有编程基础真是看不明白。

    哈哈哈,你得自己稍微学习一点,要不然你想自己修改词典真的很难。不要没有信心,我也是去年年底才开始学习计算机技术的,现在已经可以自己修改和制作词典了。
  • TA的每日心情
    开心
    2019-6-23 00:02
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    43

    主题

    391

    回帖

    5万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    54723
    7
    发表于 2019-5-15 22:23:25 | 只看该作者
    要么你就重金悬赏,说清楚你要什么效果,我来给你按你的需求做。