精华内容
下载资源
问答
  • ERP H2数据字典

    2020-12-07 14:07:35
    H2标准版数据字典,详细表名、字段及每个字段对应中文解释。适合刚使用海H2对海ERP数据库结果不了解的维护人员或二次开发人员。
  • 现代汉字1.0

    2012-12-29 09:08:08
    现代汉字,用现代人的思维解释汉字! 只要用来学习汉字!!
  • 印地语词典

    千次阅读 2007-05-15 11:03:00
    很棒的印地语-英语在线词典:http://dsal.uchicago.edu/dictionaries/platts/说他棒,最主要是有拉丁转译,并且是unicode的,而且解释还是比较详细滴。另外,那个网站站还有很多其他语言的辞典哦。这里截图如下:...
    很棒的印地语-英语在线词典:http://dsal.uchicago.edu/dictionaries/platts/
    说他棒,最主要是有拉丁转译,并且是unicode的,而且解释还是比较详细滴。另外,那个网站站还有很多其他语言的辞典哦。
    这里截图如下:







    如果要用英语-印地语,可以用stardict的词典shabdanjali(unicode),如图:


    可以在这里下载。
    展开全文
  • 电子词典C语言实现

    千次阅读 2017-08-10 20:26:56
    电子词典
    1. 电子词典的构成:
      #兜圈子
      Trans:go around in circles@circle@take a joy-ride@beat about the bush.
      搜索字条用#开始占一行,翻译以Trans:开始占一行
    2. 电子词典搜索实现思路
      • 打开电子词典读入内存中
      • 输入查询单词输出对应结果
      • 释放内存
    3. 循序实现
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    
    #define MAX 111111 //最大记录数
    
    struct dict
    {
        char *key;//词条(搜索的内容)
        char *content;//词条对应的翻译
    };
    
    //打开字典文件,并读取文件内容,创建一个dict数组,key指向词条,content指向翻译
    int open_dict(struct dict **p, const char *dict_filename)
    {
        FILE *pfile = fopen(dict_filename, "r");
        if (pfile == NULL)
            return 0;//打开文件失败,函数返回
    
        *p = (struct dict *)malloc(sizeof(struct dict) * MAX);//固定分配MAX大小内存
        memset(*p, 0, sizeof(struct dict) * MAX);//将分配内存初始化为0
        struct dict *pD = *p;//pD指向数组p的首地址
    
        char buf[1024] = { 0 };
        size_t len = 0;
        int i = 0;//计数器
        while (!feof(pfile))//循环读取文件,直到文件末尾
        {
            memset(buf, 0, sizeof(buf));
            fgets(buf, sizeof(buf), pfile);//读取文件一行
            len = strlen(buf);//得到读取到字符串长度
            if (len > 0)
            {
                pD[i].key = (char *)malloc(len);//根据字符串长度分配内存
                memset(pD[i].key, 0, len);
                strcpy(pD[i].key, &buf[1]);//将读取到的内容拷贝到key中
            }
    
            memset(buf, 0, sizeof(buf));
            fgets(buf, sizeof(buf), pfile);
            len = strlen(buf);
            if (len > 0)
            {
                pD[i].content = (char *)malloc(len);
                memset(pD[i].content, 0, len);
                strcpy(pD[i].content, &buf[6]);
            }
    
            i++;//计数器加1
        }
        fclose(pfile);//关闭字典文件
    
        return i;//返回读取到的字典词条数
    }
    
    //根据关键字key,在字典中查找内容
    int search_dict(const struct dict *p, int size, const char *key, char *content)
    {
        int i = 0;
        for (i = 0; i < size; i++)//遍历字典
        {
            if ((p[i].key == NULL) || (p[i].content == NULL))
                continue;
    
            if (strncmp(p[i].key, key, strlen(key)) == 0)
            {
                strcpy(content, p[i].content);
                return 1;//找到符合条件记录,返回1
            }
        }
        return 0;//没有找到符合条件记录,返回0
    }
    
    //释放内存
    void free_dict(struct dict *p, int size)
    {
        int i = 0;
        for (i = 0; i < size; i++)//循环释放key与content成员内存
        {
            if (p[i].key)
                free(p[i].key);
            if (p[i].content)
                free(p[i].content);
        }
        free(p);//释放p内存
    }
    
    
    int main(int argc, char *args[])
    {
        if (argc < 2)
        {
            printf("usage: %s dict-filename\n", args[0]);
            return 0;//参数不足,程序退出
        }
    
        long start_ms = 0;//记录函数执行的开始时间
        long end_ms = 0;//记录函数执行的结束时间
        struct dict *p = NULL;
        start_ms = clock();//记录函数执行的开始时间,单位:毫秒
        int size = open_dict(&p, args[1]);//根据命令行第一个参数做为字典文件名,打开字典文件
        if (size == 0)
            return 0;//打开字典文件失败,程序退出
        end_ms = clock();//得到系统当前时间,单位:毫秒
        printf("open_dict used %ld ms\n", end_ms - start_ms);//打印函数执行时间,单位:毫秒
    
        char key[1024];
        char content[1024];
        while (1)
        {
            memset(key, 0, sizeof(key));
            memset(content, 0, sizeof(content));
            scanf("%s", key);//从键盘得到用户输入
            if (strncmp(key, "command=exit", 12) == 0)
                break;//退出循环
            start_ms = clock();
            if (search_dict(p, size, key, content))//根据用户输入,在字典中检索
            {
                printf("%s", content);
            } else
            {
                printf("not found\n");
            }
            end_ms = clock();
            printf("search_dict used %ld ms\n", end_ms - start_ms);//打印函数执行时间,单位:毫秒
        }
    
        start_ms = clock();
        free_dict(p, size);
        end_ms = clock();
        printf("free_dict used %ld ms\n", end_ms - start_ms);//打印函数执行时间,单位:毫秒
        return 0;
    }
    
    1. 链表实现
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    
    struct dict
    {
        char *key;
        char *content;
        struct dict *next;//指向链表下一个节点的指针
    };
    
    //打开字典文件,并读取文件内容
    int open_dict(struct dict **p, const char *dict_filename)//open dict.txt,and read dict
    {
        FILE *pfile = fopen(dict_filename, "r");//只读方式打开文件
        if (pfile == NULL)
            return 0;//打开文件失败,函数返回
    
        char buf[2048] = { 0 };
        size_t len = 0;
        int i = 0;//计数器,记录读到到的词条总数
    
        *p = (struct dict *)malloc(sizeof(struct dict));//分配链表首节点内存
        memset(*p, 0, sizeof(struct dict));
    
        struct dict *pD = *p;//pD指向链表首地址
        while (!feof(pfile))//循环读取文件,直到文件末尾
        {
            memset(buf, 0, sizeof(buf));
            fgets(buf, sizeof(buf), pfile);//读取文件一行
            len = strlen(buf);//得到读取到字符串长度
            if (len > 0)
            {
                pD->key = (char *)malloc(len);//根据字符串长度分配内存
                memset(pD->key, 0, len);
                strcpy(pD->key, &buf[1]);//将读取到的内容拷贝到key中
            }
    
            memset(buf, 0, sizeof(buf));
            fgets(buf, sizeof(buf), pfile);
            len = strlen(buf);
            if (len > 0)
            {
                pD->content = (char *)malloc(len);
                memset(pD->content, 0, len);
                strcpy(pD->content, &buf[6]);
            }
            pD->next = (struct dict *)malloc(sizeof(struct dict));//为链表的下一个节点分配内存
            memset(pD->next, 0, sizeof(struct dict));
    
            pD = pD->next;//将pD指向下一个节点位置
            i++;
        }
        fclose(pfile);//关闭字典文件
        return i;//返回读取到的字典词条数
    }
    
    //根据关键字key,在字典中查找内容
    int search_dict(const struct dict *p, int size, const char *key, char *content)
    {
        const struct dict *pD = p;
        while (pD)//遍历字典
        {
            if ((pD->key) && (pD->content))
            {
                if (strncmp(pD->key, key, strlen(key)) == 0)
                {
                    strcpy(content, pD->content);
                    return 1;//找到符合条件记录,返回1
                }
            }
            pD = pD->next;//指向链表下一个节点位置
        }
        return 0;//没有找到符合条件记录,返回0
    }
    
    //释放链表内存
    void free_dict(struct dict *p, int size)
    {
        struct dict *pD = p;
        while (pD)
        {
            if (pD->key)//删除链表节点中key成员内存
                free(pD->key);
            if (pD->content)//删除链表节点中content成员内存
                free(pD->content);
    
            struct dict *tmp = pD->next;//保存链表下一个节点的地址
            free(pD);//删除链表当前节点
            pD = tmp;//p指向下一个节点的位置
        }
    }
    
    
    int main(int argc, char *args[])
    {
        if (argc < 2)
        {
            printf("usage: %s dict-filename\n", args[0]);
            return 0;//参数不足,程序退出
        }
        long start_ms = 0;//记录函数执行的开始时间
        long end_ms = 0;//记录函数执行的结束时间
    
        start_ms = clock();
        struct dict *p = NULL;
        int size = open_dict(&p, args[1]);//根据命令行第一个参数做为字典文件名,打开字典文件
        if (size == 0)
            return 0;//打开字典文件失败,程序退出
    
        end_ms = clock();
        printf("open_dict used %ld ms\n", end_ms - start_ms);//打印函数执行时间,单位:毫秒
    
        char key[502];
        char content[1024];
        while (1)
        {
            memset(key, 0, sizeof(key));
            memset(content, 0, sizeof(content));
            scanf("%s", key);//从键盘得到用户输入
            if (strncmp(key, "command=exit", 12) == 0)
                break;
            start_ms = clock();
            if (search_dict(p, size, key, content))//根据用户输入,在字典中检索
            {
                printf("%s", content);
            } else
            {
                printf("not found\n");
            }
            end_ms = clock();
            printf("search_dict used %ld ms\n", end_ms - start_ms);//打印函数执行时间,单位:毫秒
        };
    
        start_ms = clock();
        free_dict(p, size);//释放链表内存
        end_ms = clock();
        printf("free_dict used %ld ms\n", end_ms - start_ms);//打印函数执行时间,单位:毫秒
        return 0;
    }
    
    展开全文
  • 使出浑身解数,搞了2天实在没招了,抱着最后一点点希望,给stanford发了邮件,没想到Stanford老师的效率这么高,24小时之内就回复我了,发件人名字竟然是John Bauer(应该是原创开发者之一),解释的非常详细,第一...

    Stanford Corenlp是斯坦福大学的自然语言处理工具,其中中文分词是基于条件随机场CRF (Conditional Random Field) ,不是基于字典的直接匹配。最近调用Stanford Word Segmenter进行中文分词时,发现一些tokens切割不符合我们的预期,比如“大数据”被切分为“大 / 数据”,“信息安全”切分为“信息 / 安全”, “草泥马”被切分为草 / 泥马。我们希望将某些特定的词作为一个token来处理,因此想通过增加自定义词典(扩展词典)来实现。

    一.网络上已有的资源

    为了解决Stanford Corenlp中文分词自定义词典问题,前后耗费了大概有2- 3天的时间,几乎查找了内外网所有相关的资源,为了避免后面的童鞋再走弯路,下面归纳分析网络上关于此问题的资源:

    1. Stanford Corenlp + IKAnalyzer

    https://www.cnblogs.com/whuqin/p/6149742.html (还有一系列雷同文章)
    这个方法看起来好像有些可行,模仿ChineseSegmenterAnnotator实现IKSegmentAnnotator,比较了这两个类,主要区别在于这两个方法
    IKSegmentAnnotator

    private List<String> splitWords(String str) throws Exception{...}
    

    ChineseSegmenterAnnotator

    private void splitCharacters(CoreMap annotation) {...}
    

    我认为该方法就是把stanford的分词器(基于CRF)换成了IKAnalyzer的分词器IKSegmenter(基于词典匹配),代码不全,也没有任何注释,还要研究IKAnalyzer指定扩展词典和删除词典。对于仅应用分词而非研究分词的人来说,很难搞清楚,反正我是没运行成功,如果有小伙伴明白这种处理方法,请多多指教。

    2. 引入自定义词典

    https://blog.csdn.net/dushenzhi/article/details/8734173
    下面把这段代码我能看懂的部分进行解释

    java -mx1g -cp seg.jar edu.stanford.nlp.ie.crf.CRFClassifier
     //-mx1g 指定运行内存
    //-cp 或者-classpath也可以,指定jar包路径
    /* seg.jar分词jar包,在stanford-segmenter-2018-10-16文件夹下面,我下载下来的分词jar包命名是 stanford-segmenter-3.9.2.jar*/
         -sighanCorporaDict data
         -loadClassifier data/ctb.gz
         -testFile preprocess-$1.txt  //测试文件,即要分词的文本
         -inputEncoding UTF-8    //urf-8编码
         -sighanPostProcessing true
         -serDictionary data/dict-chris6.ser.gz,data/cedict.txt,data/ntusd.txt  
         //分词词典为原词典data/dict-chris6.ser.gz和自定义的词典data/cedict.txt,data/ntusd.txt(自定义词典可以有多个)
         -keepAllWhitespaces false >$1_seged.txt
         //分词结果输出到文件$1_seged.txt
    

    下面来运行这段代码
    测试文本,preprocess-$1.txt中的内容:大数据时代,信息安全尤为重要
    采用原始词典的分词结果为:大 / 数据 / 时代,信息 / 安全 / 尤为 / 重要
    自定义词典,cedict.txt的内容:
    大数据
    信息安全
    在这里插入图片描述分词结果
    在这里插入图片描述
    再来测试一个文本:昨天我看见一只草泥马
    用原始词典分词
    在这里插入图片描述
    增加自定义词典:草泥马
    分词结果
    在这里插入图片描述
    两个测试结果均不符合扩展词典中定义的分词规则,暂时认为这种方法自定义词典不起作用,如果有小伙伴测试到起作用的样本,告诉我哦

    3. 一大波僵尸操作

    https://blog.csdn.net/a313827758/article/details/87977576
    这一波操作反正我是看的稀里糊涂

    segment.serDictionary = edu/stanford/nlp/models/segmenter/chinese/dict-chris6.ser.gz,yourDictionaryFile
    

    配置词典属性在stanford-chinese-corenlp-2018-10-05-models/StanfordCoreNLP-chinese.properties中修改,用notepad++打开修改后直接保存就可以,但是这里没有交代清楚yourDictionaryFile怎么生成 (后面我会提到)
    网上能找到的该问题解决方案大概也就分这3类,能力有限,非专业研究分词,如果有错误请及时指出。

    二、Stanford Corenlp官网给出的方法

    https://nlp.stanford.edu/software/segmenter-faq.html
    以前这个链接只有第一个问题关于retrain the Chinese Segmenter。今天再打开竟然多了第二个问题,how i can add words to the dictionary,如何往词典中加词,这不就是增加语料、增加自定义词典嘛。激动的是,我昨天才刚刚给stanford发了邮件,沟通关于自定义词典的事情,今天官网就更新了,我就默认是我的功劳吧,小有成就感,官方的效率好高

    1. 翻译和解释

    问题1:怎么重新训练中文分词器
    <1>准备语料
    在这里插入图片描述
    语料数据集按照如图所示的格式,每个句子占一行,词与词之间用空格隔开
    <2>转化为Penn trees(不知道咋翻译,google译为:宾夕法尼亚树)格式
    其中一种方法是利用这个工具 Treebanks tool,这个工具不在segmenter的下载文件中,在corenlp-full中,下面给出路径
    stanford-corenlp-full-2018-10-05\stanford-corenlp-3.9.2.jar\edu\stanford\nlp\trees\Treebanks.class
    执行这行命令转化格式

    java edu.stanford.nlp.trees.Treebanks -words ctb7.mrg
    

    但是我没找到ctb7.mrg这个文件
    <3>还可以包含一些命名实体识别的词,如姓名、地点、公司名等,每行一个词
    在这里插入图片描述
    用这个命令把这些词转化成词典格式

    java edu.stanford.nlp.wordseg.ChineseDictionary -inputDicts names.txt,places.txt,words.txt,... -output dict.ser.gz
    

    edu.stanford.nlp.wordseg.ChineseDictionary在stanford-segmenter-2018-10-16/stanford-segmenter-3.9.2.jar里面,names.txt,places.txt,words.txt里面放的是你想增加的词,可以有多个txt文件,dict.ser.gz为输出结果
    下面是我的代码

    在这里插入图片描述mywords.txt中的内容
    大数据
    信息安全
    网络安全
    dict.ser.gz中的内容(咱也看不懂是啥^^)
    在这里插入图片描述
    这里有个想法,可以把生成的dict.ser.gz放在一.3 yourDictionaryFile的位置,但是我尝试过好像对分词结果没什么影响。 有兴趣的小伙伴可以再尝试
    <4>如果要在原来词典dict-chris6.ser.gz的基础上增加词典,用下面这个命令

     java -mx15g edu.stanford.nlp.ie.crf.CRFClassifier -prop ctb.prop -serDictionary dict-chris6.ser.gz -sighanCorporaDict data -trainFile train.txt -serializeTo newmodel.ser.gz > newmodel.log 2> newmodel.err
    

    edu.stanford.nlp.ie.crf.CRFClassifier在stanford-segmenter-2018-10-16/stanford-segmenter-3.9.2.jar里面,下面是我执行的命令
    在这里插入图片描述生成newmodel.err, newmodel.log和newmodel.ser.gz,新生成的newmodel.ser.gz比原来的词典dict-chris6.ser.gz小的多,说明新词典中只包含新加入的词(train.txt中的词),而不是把新词和原始词典结合在一起
    在这里插入图片描述
    到这里为止第一个问题的答案解释完了,好奇心驱使我用新词典替换掉原始词典,嗯。。。报错了
    在这里插入图片描述
    问题在于ArrayList不能转化为Set,又掉坑里了,分别打开新旧词典一查到底
    原始词典的文件头HashSet:
    在这里插入图片描述
    新生成的词典文件头ArrayList
    在这里插入图片描述
    我也不知道为啥,全部操作都是按照官方的命令,也没有错误!!!

    三. 官方权威回复

    使出浑身解数,搞了2天实在没招了,抱着最后一点点希望,给stanford发了邮件,没想到Stanford老师的效率这么高,24小时之内就回复我了,发件人名字竟然是John Bauer(应该是原创开发者之一),解释的非常详细,第一次这么近距离跟大佬对话,激动!!!我还找了Stanford John Bauer的照片^^

    1.Email round 1

    我:为什么新生成的词典与原始词典格式不同(HashSet vs. ArrayList)
    这个问题没有正面回答
    我:官网说新词典是基于原始词典训练生成的,为什么size小那么多
    Answer The command you gave it will only train on the given sentences. You need a complete training corpus with a large number of training sentences to retrain the segmenter. Unfortunately, we cannot share our existing corpus because of licensing restrictions.

    The dict file is a dictionary composed of a bunch of the words in the training file. I suppose you could manually expand it (see edu.stanford.nlp.wordseg.ChineseDictionary), add a few words, and re-serialized it. Unfortunately, there isn’t a ton of support right now for doing that.
    我:如何生成新词典,生成后在哪里替换旧词典
    Answer 在这里插入图片描述----------------------------------------------------------------------------------------------------------------------------------
    我按照邮件中给出的方法操作

    生成新词典(新词+原始词典结合在一起)
    在这里插入图片描述
    运行segDemo,替换旧词典
    在这里插入图片描述结果
    在这里插入图片描述
    竟然结果还不对,真是期望越大,失望越大,啊啊啊==

    Round 2

    再次邮件骚扰
    为什么分词结果不符合自定义的词典呢?
    直接贴邮件回复,老师也太nice了,各种生动的例子,看到草泥马我乐了好半天,估计老师是google直接翻译的吧,哈哈哈
    在这里插入图片描述结论分词器只是参照自定义的语料,并非是强制的分词边界,毕竟Stanford segmenter是基于CRF,不是词典强制分词,这也就能解释有些新词works,有些却无效。
    ---------------------------------------------------------------End -----------------------------------------------------------------
    全程边执行命令,边截图,边码字,眼睛要瞎了,先写到这里,很多细节都没提到,比如涉及到的所有.txt都要用utf-8 noBOM编码,用notepad++修改编码为utf-8。细节后面再补充,如果各位小伙伴操作有什么问题直接留言

    展开全文
  • GoldenDict和主流英语词典产品

    万次阅读 2017-03-01 02:51:21
    但相对的,college edition等级的辞典解释单字向来言简意赅,不避难字,使用之前要有心理准备。 再往上,就是一群二、三千页的大型辞典,这群辞典都极有各自的特色,主要的几本如下:Shorter Oxford English ...

    GoldenDict和主流英语词典产品

    一直想要找一款实用简洁的桌面词典软件,终于,我看到了GoldenDict。有了好的开源词典软件,当然要继续看看英语词典产品。把今天学习的内容做个备注:

    目录

    主页面

    简介

    一些体验:

    • 开源,全平台: Win, Linux, Mac
    • 支持词库格式多,mdx、dsl、bgl……
    • 支持词头浏览、词头搜索、全文搜索

    Github: goldendict

    下载

    GoldenDict Builds:WindowsLinuxMac
    词典下载:https://pan.baidu.com/s/1mijsine 提取码 d82y

    english.

    ├─En-En_Longman_DOCE5
    │ En-En-Longman_DOCE5.ann
    │ En-En-Longman_DOCE5.bmp
    │ En-En-Longman_DOCE5.dsl.dz
    │ En-En-Longman_DOCE5.dsl.files.zip
    │ En-En-Longman_DOCE5_Extras.ann
    │ En-En-Longman_DOCE5_Extras.bmp
    │ En-En-Longman_DOCE5_Extras.dsl.dz

    ├─En-En_Longman_Pronunciation3
    │ En-En-Longman_Pronunciation.ann
    │ En-En-Longman_Pronunciation.bmp
    │ En-En-Longman_Pronunciation.dsl.dz
    │ En-En-Longman_Pronunciation.dsl.dz.files.zip
    │ En-En-Longman_Pronunciation_abrv.dsl.dz

    ├─En-En_Macmillan_English_Dictionary
    │ En-En_Macmillan English Dictionary.ann
    │ En-En_Macmillan English Dictionary.bmp
    │ En-En_Macmillan English Dictionary.dsl.dz
    │ En-En_Macmillan English Dictionary.dsl.dz.files.zip
    │ En-En_Macmillan English Dictionary_abrv.dsl
    │ En-En_Macmillan English Thesaurus.ann
    │ En-En_Macmillan English Thesaurus.bmp
    │ En-En_Macmillan English Thesaurus.dsl.dz
    │ En-En_Macmillan English Thesaurus_abrv.dsl

    ├─En-En_OALD8
    │ En-En_Oxford Advanced Learners Dictionary.ann
    │ En-En_Oxford Advanced Learners Dictionary.bmp
    │ En-En_Oxford Advanced Learners Dictionary.dsl.dz
    │ En-En_Oxford Advanced Learners Dictionary.dsl.dz.files.zip

    └─En-zh_CN_OALD4
     Oxford_Advanced_Learner_English-Chinese_Dictionary-4th.bgl

    使用

    词典安装

    编辑 -> 词典 -> 词典来源 -> 文件 -> 添加 (下载的词典文件路径)
    添加词典
    词典识别成功后,在词典tab页,能看到安装好的词典,通过拖拽完成词典优先顺序的设置:
    词典管理

    设置

    编辑 -> 词典 -> 词典来源 -> 构词法规则库 勾选“英语”解决屏幕取词问题。

    主界面说明

    • 查找面板、词典面板以及历史面板,均采用listWidget实现,对应了条目的定位功能。
    • 单词主页面,采用tabWidget,可以同时进行多个查询。在单词主页,右键 -> 审查元素,甚至可以修改词典文件!!
    • 词典栏,采用一系列action,与词典对应,可以快速的筛选需要显示的词典。

    词典概念

    学习型词典 vs 母语型词典
    学习型词典,或者叫学习词典、学习者词典、ESL 词典、Learner’s Dictionary 等,是专为英语学习者、非英语国家学生编纂的词典,另有高阶、中阶、初阶之分。汉语是我们的母语,商务印书馆出版有《现代汉语学习词典》《商务馆学汉语词典》,是为学习汉语的外国学习者编纂的。
    母语型词典,或者叫母语词典、原版词典、non-ESL 词典等,类似于汉语中的《新华字典》《现代汉语词典》《现代汉语规范词典》乃至《汉语大词典》。

    ESL: English as a Second Language, the teaching of English to people who are living in an English-speaking country but whose first language is not English 作为第二语言的英语教学
    EFL: “English as a Foreign Language, the teaching of English to people whose first language is not English, and who do not live in an English-speaking country 作为外语的英语教学,非母语的英语教学

    词典品牌与产品:

    • 牛津用典:越来越复杂,学习->研究

      • OALD: The Oxford Advanced Learner’s Dictionary (OALD9) 牛津高阶英汉双解词典
      • COED: Concise Oxford English Dictionary, Eleventh Edition (COED11)
      • NOED:The New Oxford English Dictionary
      • SOED: Shorter Oxford English Dictionary, 5th Edition (SOED5)
      • OED: The Oxford English Dictionary(20 Volume Set) 简称OED,是英语词典界的圣经.
    • 韦氏词典:Webster’s dictionaries

      • MW: Merriam-Webster’s Collegiate Dictionary, 11th Edition(MW11)
      • MWALED: Merriam-Webster Advanced Learner’s English Dictionary
    • 柯林斯系列

      • CED: Collins English Dictionary 柯林斯英语大词典
      • CCALD: Collins COBUILD Advanced Learner’s Dictionary (COBUILD8)柯林斯高级英语学习词典
    • 其他(朗文,剑桥,麦克米伦):

      • LDOCE: Longman Dictionary of Contemporary English (LDOCE6) 朗文当代高级英语辞典(英英·英汉双解)
      • CALD: Cambridge Advanced Learner’s Dictionary :: 剑桥高阶英汉双解词典
      • MED: Macmillan English Dictionary for Advanced Learners :: 麦克米伦高阶英汉双解词典
    母语型
    [OED] Oxford English Dictionary
    [SOED] Shorter Oxford English Dictionary
    [ODE] Oxford Dictionary of English
    [CED] Collins English Dictionary
    [TCD] The Chambers Dictionary
    [COED] Concise Oxford English Dictionary
    [MWUD] Merriam-Webster Unabridged Dictionary
    [RHUD] Random House Webster’s Unabridged Dictionary
    [WBD] World Book Dictionary
    [AHD] The American Heritage Dictionary of the English Language
    [NOAD] New Oxford American Dictionary
    [WNWCD] Webster’s New World College Dictionary
    [RHCD] Random House Kernerman Webster’s College Dictionary
    [MWCD] Merriam-Webster’s Collegiate Dictionary

    词典产品选择:

    不少人要我介绍「一本辞典」让他们可以学习英文。但是从我过去的文章里不难看出,只靠「一本辞典」要学好英文根本是缘木求鱼,用英文来讲就是mission impossible。

    这样的一篇文章我很早就想写,只是不断涌入的发问者各种背景皆有。有走过求学阶段,再加自己努力过一阵子的上班族;有理工科系的大学生,有高中生,也有大学英文、外文科系的学生,更有准备出国的准留学生。

    言归正传,我自己不用英汉辞典,所以只会介绍别人使用英英辞典。先不管学习者的需求是听、说,还是读、写,必须回归一个基本动作加强练习,经过长时间的磨练才会有成果累积,这基本动作是阅读而且是「精读」。其他听、说、写,甚至「翻译」,我都视之为阅读的延伸。前面许多文章我已经提过类似的看法,现在又这么讲也不算是什么新观念了。

    初学使用英英辞典者,请从学习型辞典开始,这类型辞典有五本,我简单列个个人的喜好顺序:
    1. LDOCE4v2(Longman Dictionary of Comtemporary English 4.2 《朗文英语当代大词典》)
    2. MED2(McMillan English Dictionary 2 《麦克米兰英语词典》)
    3. Collins Cobuild 5(柯林斯辞典 5)
    4. CALD2(Cambridge Advanced Learner Dictionary 2 《剑桥高阶学习字典》)
    5. OALD7(Oxford Advanced Learner Dictionary 7 《牛津高阶英语词典》)

    这喜好顺序是经验之谈,从我自己阅读、查询这样的循环里不断体会得到的。前面写过关于个别辞典的探讨多少有更深入的评析,有兴趣多了解者可以再回去查询以前的文章。

    不管学习者程度深浅,学习型辞典一般而言足可应付八到九成的查询需求,因此学习者的重点最该放在这一群辞典上。一个建议的「基本」收藏量,五本中最少要有三本。未必依照我的喜好顺序,学习者自己觉得好用最重要。假如英英辞典的使用遇到了适应上的困难,可以试着从Collins Cobuild 5这本开始。
    学习型辞典再往上看,我大概会列出美国的College Edition等级的辞典,属于这一类型的辞典有四本,分别是:MW11, American Heritage College Dictionary, Fourth Edition (AHCD4) , Random House Webster ’s College Dictionary (RHCD), Webster’s New World College Dictionary, Fourth Edition (WNWCD4)。除了美国这四本之外,我要再列入英国的Collins English Dictionary (CED)。

    如果要排我的喜好顺序,大致如下:
    1. MW11(M-W 11th Collegiate 《韦氏学院字典》)
    2. CED(Collins English Dictionary 《柯林斯英语辞典》)
    3. AHCD4(American Heritage College Dictionary, Fourth Edition 美国传统大学词典 4)
    4. WNWCD4(Webster’s New World College Dictionary, Fourth Edition (Book with CD-ROM) 韦氏新世界大学辞典)
    5. RHCD(Random House Webster’s College Dictionary 兰登书屋韦氏大学词典)

    MW11与CED之间的优先顺序有时候很难说,我让MW11排在第一多少有平衡英美两国辞典的用意。 CED近年动作积极,从七版到八版,再到九版都在一、二年之间发生的。如果有什么要批评,就是CED的光碟做得太差劲,功能阳春到让人难以忍受。像我这样一切以光碟表现为主要参考依据,我愿意再另外推荐Concise Oxford English Dictionary, Eleventh Edition (COED11) ,内容有中上的丰富程度,光碟则表现非凡。

    属于上面这个等级的辞典,我的建议基本收藏量是二到三本,这类型的辞典在应付较不常见的单字。几年前媒体报导禽流感时,常看到avian influenza的写法,当中的avian学习型辞典全部查不到,只有求救于这类型辞典才找得到。但相对的,college edition等级的辞典解释单字向来言简意赅,不避难字,使用之前要有心理准备。

    再往上,就是一群二、三千页的大型辞典,这群辞典都极有各自的特色,主要的几本如下:Shorter Oxford English Dictionary, 5th Edition (SOED5), Webster’s Third New International Dictionary ( W3), Random House Webster’s Unabridged Dictionary (RHD), American Heritage Dictionary of the English Language, 4th edition (AHD4), The New Oxford American Dictionary, second edition。到了这一类型的辞典,坦白说「普通」的学习者可能不容易碰到,我也不打算排列我的喜好顺序。再上去,大概就剩辞典天王OED,这应该不用介绍了吧。

    以上仅就「阅读」之需求开列辞典选用清单,我打的如意算盘是,这些辞典都有光碟,光碟里就有好几套thesaurus辞典,这里我将 Longman Language Activator也归属于thesaurus一类。 Thesaurus在写作上就有很大的用处,这是使用光碟辞典一举多得的优势。

    George Chen


    总结

    初级解决方案:GoldenDict+CN-OALD4+LDOCE5+OALD8+MED

    180617 根据个人筛选,形成这个词典排序,刚好和别人的推荐完全吻合(MW11是母语型,排在最后)
    这里写图片描述


    参考资料

    展开全文
  • C小项目——电子词典

    千次阅读 多人点赞 2016-03-13 12:24:10
    C语言项目——查字典 宗旨:技术的学习是有限的,分享的精神的无限的。 ...Trans:解释1@解释2@…解释n 每个新单词由“#”开头,解释之间使用“@”隔开。一个词可能有多个解释解释均存储在一行
  • C++词典

    千次阅读 2013-12-20 19:54:12
    虚函数表   对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证...
  • 电子词典 C语言实现

    千次阅读 2018-04-21 17:26:53
    电子词典做一个简单的电子词典。在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入...
  • poj 2804 词典

    千次阅读 2012-07-17 17:00:22
    其次考虑到对字典进行排序,但是由于字典有原词和解释两个字符串,看到网上有人说可以使用map 使用#include和map,string>可以使得原词和解释两个字符串关联起来 但其实使用普通的结构体 再使用排序+二分即可了...
  • Java实现带发音的简易电子词典

    千次阅读 多人点赞 2017-06-28 21:10:41
    Java实现带发音的简易电子词典(以下所有内容均属作者原创,使用请注明出处!)最近我们在做Java的综合实训,我的题目比较简单,是做一个带有发音功能的简易电子词典。...显示栏显示查询单词在词典中的所有解释
  • 英文快是一款快速词典与英文阅读的辅助工具。普通的词典只能对单个单词查词典,效率很低,而英文快能对整篇文章查词典,生词再多,一次操作就可以全部查出,让你无需再为查词典而烦恼。并且它能给文章中的所有...
  • wxWidgets+wxSmith版电子词典

    千次阅读 2014-06-03 09:39:02
     【项目3拓展1(选做)】使这个词典,读入一篇文章,输出对其中的所词的解释。例如,对aboutcpp.txt,输出如下左图结果所示(也可以看到其中待改进的地方)。  【项目3拓展2(选做)】试用wxwidgets做一个窗口版的...
  • 手机词典MDict

    千次阅读 2008-11-19 19:56:00
    到网上搜到了金山词霸的词典库,词比较全,但是只有中文解释,顺便还下了几个其它的词典库。  MDict官方免费下载: http://www.octopus-studio.com/ ,上面也有些词典文件,如果不满意,也可以到 Google 上去...
  • (如果感兴趣的朋友可以用pyinstaller工具将py源码转换成exe格式,直接执行,比较方便,在此用解释器执行):     附源码地址:   http://download.csdn.net/detail/qianghaohao/9597916
  • 【LeetCode】(动态规划ி)典型 文章目录【LeetCode】(动态规划ி)典型青蛙跳台阶问题★不同路径★★礼物的最大价值★★完全平方数★★组合总和IV★★零钱兑换★★分发糖果★★★最长上升子序列(LIS)...
  • 取词时,将光标移动到某个单词上,如终端窗口中的“share”,双击选定该单词,该单词的解释窗口就出现了。 2.单词发声 Ubuntu星际译王支持单词朗读功能。如要在Ubuntu星际译王中能正常听到单词的发音,在...
  • C++实践参考——OOP版电子词典

    千次阅读 2015-06-02 09:05:31
    (2)(选做)使用这个词典,读入一篇文章,输出对其中的所词的解释。例如,对aboutcpp.txt,输出如下左图结果所示(也可以看到其中待改进的地方)。 [参考解答] #include #include #include #include using ...
  • 简单快译通英汉词典设计源码

    千次阅读 2013-09-11 20:37:51
    快译通英汉词典设计源码 ...Trans:解释1@解释2@…解释n  每个新单词由“#”开头,解释之间使用“@”隔开。一个词可能有多个解释解释均存储在一行里,行首固定以“Trans:”开头。下面是一个典型的例子: #ab
  • Java实现 LeetCode 720 词典中最长的单词(字典树)

    万次阅读 多人点赞 2020-04-09 15:54:43
    720. 词典中最长的单词 给出一个字符串数组words组成的一本英语词典。从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案...解释: 单词"world"可由"w...
  • Windows 词典软件

    千次阅读 2010-04-11 22:32:00
    使用感想:非常实用,词典覆盖面很广,在连接互联网的情况下进行词汇查询,可以通过在线词典库获取比较详实的词汇解释,并且可以借助在线翻译引擎进行多语言全文/词汇翻译(简体中文,繁体中文,英语,汉语,德语,...
  • 英汉词典(C语言实现)

    千次阅读 2011-05-10 13:44:33
    /*题目:某英汉词典包含N个记录,每个记录有两个字段:一个是英文单词,另一个是中文解释。各个记录按英文单词的词典顺序排列,各英文单词并不重复。输入英文单词和中文解释(用空格隔开),若此单词已存在,则把这...
  • django 词典 json

    千次阅读 2013-12-26 13:48:58
    具体的解释: 页面A.html包含了一个ajax提交,就是上面所贴出来的代码,传递了两个参数一个user name ,一个password,然后传递给/search/去处理(需要django去配路由),然后后端的django python文件处理后得到...
  • 有道词典工具(命令行+GUI)

    千次阅读 2017-07-06 18:27:02
    本软件运行后会请求一个查询单词,支持英文和中文查询,软件首先会在本地数据库中进行搜索本单词的解释,如果本地数据库中有本单词的解释,则直接使用这个解释。如果本地数据库中无该单词的解释,本软件会从网络获取...
  • 720. 词典中最长的单词

    千次阅读 2019-06-08 22:41:46
    给出一个字符串数组words组成的一本英语词典。从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小...解释: 单词"world"可由"w", "wo",...
  • 利用在线词典批量查询英语单词

    千次阅读 2011-01-02 00:27:00
    进来遇到很多英语生词,工具书上给的解释错误百出,而很多在线词典不但可以给出某个单词的解释,而且有大量的示例,因此猜想利用在线词典批量查询这些单词。怎么实现呢?首要问题是如何自动获取某个单词的解释。搜索...
  • Linux开发之在线词典

    千次阅读 2018-09-16 15:21:33
    所以我们将单词与相关解释信息放到一个文件中,查询单词时,到这个文件中匹配信息即可。 代码实现(代码量较大,只展示部分) 共用头文件 common.h #ifndef __COMMON_H__ #define __COMMON_H__ #include #include #...
  • Ubuntu 安装词典stardict

    千次阅读 2012-06-06 15:34:38
    取词时,将光标移动到某个单词上,如终端窗口中的“share”,双击选定该单词,该单词的解释窗口就出现了。 2.单词发声 Ubuntu星际译王支持单词朗读功能。如要在Ubuntu星际译王中能正常听到单词的发音,在...
  • Python爬虫之二:自制简易词典

    千次阅读 2017-12-16 21:47:22
    ​ 我寻找一个好的词典的标准是:解释到位、数据抓取方便。 ​ 几个候选词典有:百度翻译、金山词霸、有道翻译、谷歌翻译。 ​ 最终选定金山词霸作为词源,原因: 大学时就使用金山词霸; url比较简单...
  • C语言之简单英语词典实现

    千次阅读 2018-10-10 15:43:31
    要求:从文件中查找对应英文单词并给出中文解释,文件中的单词和中文解释需用'\t'(键盘Tab键)隔开,每行一个单词加解释。 代码: #include &lt;stdio.h&gt;  int find_dic(char (*list)[20], int high,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,615
精华内容 10,646
关键字:

典的解释