美文网首页
339.collins字典解析2

339.collins字典解析2

作者: 科幻经典 | 来源:发表于2017-08-15 17:44 被阅读32次

通过分析,我们把字典分为两类比较好。一类是只提供记忆功能的星级卡片,仅仅包括collins5,4,3三个等级。第二类是包含所有等级的查询词库。

第一类用来学习和复习记忆基础词汇,第二类用来做阅读扩展支持。

第一类需要用到的是星级,词汇,声音和拼写。并不需要音标,因为已经有发音了。第二类尽可能资料齐全,但是也只是需要第一词义,但需要包含星级和词频信息。

对于每个学习者,都有自己的单词量和学习目标。或许一个人是2000单词量,正在学习三星词库,对不认识的五星和四星词库也需要学习。另外一个人是5800词汇量,正在学习二星词汇,对不认识的三星、四星和五星都需要学习。

那么首先通过单词量,设定学习级别,是二星还是三星。对于初中生来说,三星是需要拓展的,但二星暂时并没有必要。在他的水平高了之后再做打算。这个拓展的意思是,是否需要将阅读中的二星词汇加入生词本。

根据透析法,阅读中的大部分单词是不需要查的,只需要猜意思即可,也就是不影响阅读的情况下,两页查一个单词。这种方法的目的是,在阅读的乐趣中积累单词,而不是一直查单词干扰了阅读。

在新的模式下,我们可以点击不认识的单词,将它备注为不认识,然后不认识的单词达到一定数量后,系统自动查询单词词频。将词频最高的单词的意思显示出来,如果是属于正在学习的星级或者需要拓展的星级,就会自动加入生词本,否则只是显示中文。不同的星级用不同的颜色表示。

点击时执行播放单词读音,在生词量达到10个后,选择词频最高的两个显示意思,并根据情况加入生词本,其他的则只是显示中文,并不浪费时间和打断阅读乐趣,也不会增加主动记忆负担。需要主动记忆的最多只是两个单词而已。这10个单词会并排出现,显示星级和词频。当然,软件还会对本书进行扫描,如果发现某个词出现的频次很高,也会标志出来。所以根据星级,本书出现的频次,词频等,就可以做出要不要加入生词本的判断。

现在使用bs4,从词典转换的txt中以行为单位,提取信息,首先提取所有的词汇,然后再生成
五星,四星和三星词库。

  1. 词汇
    soup.font.string就是词汇,string是找到的第一个font标签中的内容。

  2. 星级
    soup.find_all('font')[1].string[1:]
    [1]表示是找到的第二个font标签,末尾加[1:]是因为星级前面有空格。


现在其他的内容可能会分为若干条。首先获取最接近词义的div。因为在词义上有3层嵌套的div,所以使用:
div = soup.div.div.div
这样就直接能选中最里层的div,然后进行细节的逐项分割。

先进行词条划分:
d = div.find_all('div', class_='collins_en_cn')
然后输入len(d),就可以看到词条有几项。

然后d[0]就是第一项,这个也是每个词都有的,在5、4、3星级词库中,我们只需要这一项即可。但现在还需要较完整保留词典的信息,对于词条多的词,我们保留前3条词条即可。

d[0]就是第一个词条。每个词条中都有两大部分,一个是词义的解释,一个是例句。
解释是d[0].div.div,例如是d[0].ol。解释中有5个部分,前3个span和第4个英文解释,最后1个语法信息。令d0 = d[0].div,d0.contents就是标签中的内容。

  1. 词义序号
    d0.contents[0].string就是1.序号

  2. 词性
    d0.contents[1].string就是VERB 动词 等词性

  3. 词义
    d0.contents[2].string就是词义, 离弃;遗弃;抛弃

6.英文解释

_str = ''
l = len(d0.contents)
for i in range(l):
    if i > 2:
        print('d0.contents[i].string =', d0.contents[i].string)
        print('_str =', _str)
        _str += d0.contents[i].string
        print('d0.contents[i].name =', d0.contents[i].name)
        if d0.contents[i].name == 'span':
            break

BUG:

d0.contents[i].string =  If you
_str =
d0.contents[i].name = None
d0.contents[i].string = abandon
_str =  If you
d0.contents[i].name = b
d0.contents[i].string =  a place, thing, or person, you leave the place, thing, or person permanently or for a long time, especially when you should not do so.
_str =  If you abandon
d0.contents[i].name = None
d0.contents[i].string = None
_str =  If you abandon a place, thing, or person, you leave the place, thing, or person permanently or for a long time, especially when you should not do so.
Traceback (most recent call last):
  File "<stdin>", line 5, in <module>
TypeError: Can't convert 'NoneType' object to str implicitly

相关文章

  • 339.collins字典解析2

    通过分析,我们把字典分为两类比较好。一类是只提供记忆功能的星级卡片,仅仅包括collins5,4,3三个等级。第二...

  • Java Json解析

    Json解析字典 解析字典中含有数组

  • python 字典相关操作

    1. python 在列表、字典、集合中筛选数据 列表:filter函数、列表解析 字典:字典解析 集合:集合解析...

  • MJExtension使用指导(转)

    1. MJExtension使用指导(最新)2. MJExtension[模型字典]包含[模型字典数组]解析数据的...

  • swfit json解析与闭包回调

    1.只包含一个模型类的字典解析 2.模型数组的字典解析 3. viewDidLoad回调函数 4.模型类

  • pyhton 解析式

    列表解析式 带条件判断的列表解析式, item满足被2整除,被3整除 集合解析式 字典解析式

  • Json与字典互转

    Json解析成字典 字典转Json

  • Python_7_列表解析式-生成器

    1. 解析式 2. 列表解析式2.1. 列表解析式进阶 3. 其他解析式3.1. 集合表达式3.2. 字典解析式 ...

  • python学习第三天

    可视化展示 绘制曲线图 绘制饼图 绘制散点图 字典解析和集合解析 字典解析和列表推导式很像 集合解析 python...

  • 9.解析式与生成器

    目录1.列表解析2.生成器表达式3.集合解析式4.字典解析式 1. 列表解析介绍 1.1 列表解析介绍 语法: ...

网友评论

      本文标题:339.collins字典解析2

      本文链接:https://www.haomeiwen.com/subject/sysvrxtx.html