精华内容
下载资源
问答
  • 讲讲语言模型和中文分词
    千次阅读
    2018-07-09 11:51:24

    一、语言模型

    无论什么做自然语言处理的工具,都是基于计算机程序实现的,而计算机承担了数学计算的职责,那么自然语言和数学之间的联系就是语言模型,只有理解语言模型才能理解各种工具的实现原理,本节让我们深究语言模型的世界 

     

    请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址

    什么是数学模型

    数学模型是运用数理逻辑方法和数学语言建构的科学或工程模型。说白了,就是用数学的方式来解释事实。举个简单的例子:你有一只铅笔,又捡了一只,一共是两只,数学模型就是1+1=2。举个复杂的例子:你在路上每周能捡到3只铅笔,数学模型就是P(X)=3/7,这个数学模型可以帮你预测明天捡到铅笔的可能性。当然解释实事的数学模型不是唯一的,比如每周捡三只铅笔的数学模型还可能是P(qt=sj|qt-1=si,qt-2=sk,...),s=0,1,也就是有两个状态的马尔可夫模型,意思就是明天是否捡到铅笔取决于前几天有没有捡到铅笔

     

    什么是数学建模

    数学建模就是通过计算得到的结果来解释实际问题,并接受实际的检验,来建立数学模型的全过程。

     

    什么是语言模型

    语言模型是根据语言客观事实而进行的语言抽象数学建模。说白了,就是找到一个数学模型,让它来解释自然语言的事实。

     

    业界认可的语言模型

    业界目前比较认可而且有效的语言模型是n元语法模型(n-gram model),它本质上是马尔可夫模型,简单来描述就是:一句话中下一个词的出现和最近n个词有关(包括它自身)。详细解释一下:

    如果这里的n=1时,那么最新一个词只和它自己有关,也就是它是独立的,和前面的词没关系,这叫做一元文法

    如果这里的n=2时,那么最新一个词和它前面一个词有关,比如前面的词是“我”,那么最新的这个词是“是”的概率比较高,这叫做二元文法,也叫作一阶马尔科夫链

    依次类推,工程上n=3用的是最多的,因为n越大约束信息越多,n越小可靠性更高

    n元语法模型实际上是一个概率模型,也就是出现一个词的概率是多少,或者一个句子长这个样子的概率是多少。

    这就又回到了之前文章里提到的自然语言处理研究的两大方向:基于规则、基于统计。n元语法模型显然是基于统计的方向。

     

    概率是如何统计的

    说到基于统计,那么就要说概率是如何估计的了,通常都是使用最大似然估计,怎么样理解“最大似然估计”,最大似然就是最最最最最相似的,那么和谁相似,和历史相似,历史是什么样的?10个词里出现过2次,所以是2/10=1/5,所以经常听说过的“最大似然估计”就是用历史出现的频率来估计概率的方法。这么说就懂了吧?

    请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址

    语言模型都有哪些困难

    1. 千变万化的自然语言导致的0概率问题

    基于统计的自然语言处理需要基于大量语料库进行,而自然语言千变万化,可以理解所有词汇的笛卡尔积,数量大到无法想象,有限的语料库是难以穷举语言现象的,因此n元语法模型会出现某一句话出现的概率为0的情况,比如我这篇博客在我写出来之前概率就是0,因为我是原创。那么这个0概率的问题如何解决呢?这就是业界不断在研究的数据平滑技术,也就是通过各种数学方式来让每一句话的概率都大于0。具体方法不列举,都是玩数学的,比较简单,无非就是加个数或者减个数或者做个插值平滑一下,效果上应用在不同特点的数据上各有千秋。平滑的方法确实有效,各种自然语言工具中都实现了,直接用就好了。

     

    2. 特定领域的特定词概率偏大问题

    每一种领域都会有一些词汇比正常概率偏大,比如计算机领域会经常出现“性能”、“程序”等词汇,这个解决办法可以通过缓存一些刚刚出现过的词汇来提高后面出现的概率来解决。当然这里面是有很多技巧的,我们并不是认为所有出现过的词后面概率都较大,而是会考虑这些词出现的频率和规律(如:词距)来预测。

     

    3. 单一语言模型总会有弊端

    还是因为语料库的不足,我们会融合多种语料库,但因为不同语料库之间的差异,导致我们用单一语言模型往往不够准确,因此,有一种方法可以缓和这种不准确性,那就是把多种语言模型混到一起来计算,这其实是一种折中,这种方法low且有效。

    还有一种方法就是用多种语言模型来分别计算,最后选择熵最大的一种,这其实也是一种折中,用在哪种地方就让哪种模型生效。

     

    神经网络语言模型

    21世纪以来,统计学习领域无论什么都要和深度学习搭个边,毕竟计算机计算能力提升了很多,无论多深都不怕。神经网络语言模型可以看做是一种特殊的模型平滑方式,本质上还是在计算概率,只不过通过深层的学习来得到更正确的概率。

     

    语言模型的应用

    这几乎就是自然语言处理的应用了,有:中文分词、机器翻译、拼写纠错、语音识别、音子转换、自动文摘、问答系统、OCR等


    二、浅谈中文分词


    中文是世界语言界的一朵奇葩,它天生把词连在一起,让计算机望而却步,一句#他说的确实在理#让计算机在#的确#、#实在#、#确实#里面挣扎,但是统计自然语言处理却让计算机有了智能 


    中文分词是怎么走到今天的

    话说上个世纪,中文自动分词还处于初级阶段,每句话都要到汉语词表中查找,有没有这个词?有没有这个词?所以研究集中在:怎么查找最快、最全、最准、最狠......,所以就出现了正向最大匹配法、逆向最大匹配法、双向扫描法、助词遍历法......,用新世纪比较流行的一个词来形容就是:你太low了!

    中文自动分词最难的两个问题:1)歧义消除;2)未登陆词识别。说句公道话,没有上个世纪那么low的奠定基础,也就没有这个世纪研究重点提升到这两个高级的问题

    ps:未登录词就是新词,词表里没有的词

    本世纪计算机软硬件发展迅猛,计算量存储量都不再是问题,因此基于统计学习的自动分词技术成为主流,所以就出现了各种新分词方法,也更适用于新世纪文本特点

     

    从n元语法模型开始说起

    上节讲到了n元语法模型,在前n-1个词出现的条件下,下一个词出现的概率是有统计规律的,这个规律为中文自动分词提供了统计学基础,所以出现了这么几种统计分词方法:N-最短路径分词法、基于n元语法模型的分词法

    N-最短路径分词法其实就是一元语法模型,每个词成为一元,独立存在,出现的概率可以基于大量语料统计得出,比如“确实”这个词出现概率的0.001(当然这是假设,别当真),我们把一句话基于词表的各种切词结果都列出来,因为字字组合可能有很多种,所以有多个候选结果,这时我们利用每个词出现的概率相乘起来,得到的最终结果,谁最大谁就最有可能是正确的,这就是N-最短路径分词法。

    这里的N的意思是说我们计算概率的时候最多只考虑前N个词,因为一个句子可能很长很长,词离得远,相关性就没有那么强了

    这里的最短路径其实是传统最短路径的一种延伸,由加权延伸到了概率乘积

    而基于n元语法模型的分词法就是在N-最短路径分词法基础上把一元模型扩展成n元模型,也就是统计出的概率不再是一个词的概率,而是基于前面n个词的条件概率

     

    人家基于词,我来基于字

    由字构词的分词方法出现可以说是一项突破,发明者也因此得到了各项第一和很多奖项,那么这个著名的分词法是怎么做的呢?

    每个字在词语中都有一个构词位置:词首、词中、词尾、单独构词。根据一个字属于不同的构词位置,我们设计出来一系列特征,比如:前一个词、前两个词、前面词长度、前面词词首、前面词词尾、前面词词尾加上当前的字组成的词……

    我们基于大量语料库,利用平均感知机分类器对上面特征做打分,并训练权重系数,这样得出的模型就可以用来分词了,句子右边多出来一个字,用模型计算这些特征的加权得分,得分最高的就是正确的分词方法

    请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址

     

    分词方法纵有千万种,一定有适合你的那一个

    分词方法很多,效果上一定是有区别的,基于n元语法模型的方法的优势在于词表里已有的词的分词效果,基于字构词的方法的优势在于未登陆词的识别,因此各有千秋,你适合哪个就用哪个。

     

    异性相吸,优势互补

    既然两种分词各有优缺点,那么就把他们结合起来吧,来个插值法折中一下,用过的人都说好

     

    流行分词工具都是用的什么分词方法

    jieba中文分词

    官方描述:

    • 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG)
    • 采用了动态规划查找最大概率路径, 找出基于词频的最大切分 组合
    • 对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法

    前两句话是说它是基于词表的分词,最后一句是说它也用了由字构词,所以它结合了两种分词方法

     

    ik分词器

    基于词表的最短路径切词

     

    ltp云平台分词

    主要基于机器学习框架并部分结合词表的方法

     

    其他分词工具判断方法类似,网上对各种分词工具好坏的判断多数是功能上比较,个人建议通过原理来判断,如果结合了基于词表和由字构词并且充分利用统计学习的方法,这样的分词工具才是最好的


    更多相关内容
  • tesseract-ocr安装包和中文语言包,可以识别图片中的汉字的辅助工具!
  • QT动态语言切换、历史语言记录、QMessageBoxQDialogButtonBox的Ok按钮动态切换汉字
  • WPS语言中文

    热门讨论 2017-05-17 14:05:32
    犹豫工作关系,必须使用wps(用office打开文件字体重叠)。但wps中文版,广告太多,还会蹦出垃圾资讯。但WPS国际版就没有关系-fword-,因此要给wps添加语言包。
  • ArcGIS 10.6 Desktop 简体中文语言
  • inno setup中文语言

    2015-07-28 09:47:43
    inno setup 中文语言包,放在安装文件夹的languages文件夹下。 [Languages] Name: "chinese"; MessagesFile: "compiler:Languages\Chinese.isl
  • pycharm中文语言

    2017-11-30 19:15:54
    使英文版本的Pycharm转换为中文版的,解决新手英语基础稍微弱的小伙伴们
  • 作者深入剖析自动化数据抓取分析各个层面的问题,从网络数据技术到网络抓取文本挖掘的实用工具箱,重点阐释利用R语言进行自动化数据抓取分析,能为社会科学研究者与开发人员设计、开发、维护优化自动化...
  • xp中文语言包下载

    热门讨论 2013-11-02 03:00:24
    app936.fon app950.fon cga40woa.fon cga80woa.fon coure.fon cvgafix.fon cvgasys.fon ega40woa.fon ega80woa.fon SERIFE.FON smalle.fon sserife.fon svgafix.fon svgasys.fon vga936.fon vga950.fon
  • IE11 64位中文语言包补丁

    热门讨论 2016-01-31 00:55:33
    本补丁适用于64位Windows7系统IE升级到IE11但没有安装到中文语言包的用户,安装此补丁可以解决该问题。 Win8与Win10未测试过,需要的也可以下载试下,o(∩_∩)o
  • 课程目标: 学习完本门课程,您将对自然语言处理技术有更深入的了解,彻底掌握中文命名实体识别技术。 适用人群: 自然语言处理从业者、深度学习爱好者 课程简介: 命名实体识别作为自然语言处理的基础技术之一,在...
  • Windows XP 简体中文语言包32位

    热门讨论 2013-12-27 15:19:45
    Windows XP 简体中文语言包32位
  • 2020 年牛逼的 10 门编程语言

    万次阅读 多人点赞 2020-08-20 14:21:03
    随着时间的发展,C++ 进一步发展为具有直接的内存访问完整硬件控制的通用语言。正因为 C++ 提供了广泛的通用功能,就导致掌握起来有一定的难度。 C++ 可以在所有的平台上运行,并且可以有效地利用任何类型的...

    先看再点赞,给自己一点思考的时间,微信搜索【沉默王二】关注这个有颜值却假装靠才华苟且的程序员。
    本文 GitHub github.com/itwanger 已收录,里面还有我精心为你准备的一线大厂面试题。

    对于很多初学编程的人来说,尤其是马上要入学的大一新生来说,选择哪门子编程语言实在是个痛苦的事。选择对了,毕业后顺利找到工作,完美走向职场;选择错了,毕业后受伤的才华无处安放,大学算是虚度光阴了。

    前一段时间哈,我有个远房的亲戚,她家的小孩非要让我指导一下。然后就带了一本书来见我,看了一下封面,我惊呆了。

    《易语言从入门到精通》。这是哪门子编程语言,我第一次见到!不敢怠慢,也担心亲戚说我孤陋寡闻,偷偷地搜了一下。易语言的创始人是吴涛,国内为数不多的推崇中文编程语言的程序员大佬。

    郑重其事地说,我是个三观很正的人,绝没有半点虚情假意。但我实在不忍心看我这远房表弟误入歧途,毕竟易语言即便是入门了,甚至是精通了,将来也不一定能找到工作啊!

    当做兴趣爱好学编程固然好,值得称赞。我这表弟虽然学习不咋滴,年纪轻轻,初中毕业,但据亲戚反馈,酷爱编程,酷爱计算机(也不确定是不是酷爱打游戏)。易语言这本书也是他自己在网上买的。

    我有点担心地问他:“能看懂吗?”

    表弟不假思索,信誓旦旦地回答:“能啊!”

    我随手翻了翻这边书,发现书签已经夹在第 202 页,我天呐,真的有在看啊,看了将近一半了。

    必须得负责任啊,我就对亲戚和表弟说,“你看,要不咱换个编程语言吧,比如说 Java!”

    亲戚一脸惊愕,“你说哈?”

    我只好无奈地将脸迈向我这表弟,只听他娓娓道来:“J-A-V-A!”

    “哎呀,不错啊,真的私底下有研究!”我心中暗暗佩服起来了我这表弟。真看不出来,挺爱学的嘛。

    “别看这本易语言了,当做兴趣学编程没问题,可咱学习是为了啥,就是为了以后能找份工作,虽然我说得比较俗气。如果说确实对编程感兴趣的话,买点 Java 方面的书读一读。”我语重心长地建议。

    表弟深以为然地点点头。

    之所以说这件事,就是想告诉同学们,努力固然重要,但选择必须要对,一旦选择错了,那很多努力都是白费。

    那,这篇文章就是来给同学们提个醒,2020 年最牛逼的编程语言是什么?看完后你就知道该如何地去选择了。

    先来个简要的概括:

    • Java,服务器端最好的编程语言

    • C++,最通用的编程语言

    • C,迄今为止,最值得信任的编程语言

    • Python,AI(人工智能)、机器学习方向最佳的编程语言

    • JavaScript,客户端最常用的脚本语言

    • C#,微软最强有力的面向对象编程语言

    • Swift,IOS 端最高效的编程语言

    • GO(Golang),可扩展的编程语言,谷歌出品

    • PHP,世界上最好的编程语言,不,最好用的 Web 编程语言

    • Ruby,数据科学方面最可靠的编程语言

    为什么我会选择这 10 门编程语言?可不是我收了这些编程语言的钱,故意让它们上榜的,我是有足够多的理由的。

    首先来看一下 TIOBE 排行榜,非常非常权威的榜单,下面这 14 个是活得比较久的,可以看得出,除了 SQL 换成了 GO,其他 9 门编程语言都在,并且长期霸榜。

    活得比较久,意味着这门编程语言的生命力比较顽强,生态系统比较完备,它们属于丛林的王者——物竞天择,适者生存嘛。它们活得久,并且活得好,那就意味着还能活得更好更久,是这个道理吧?强者更强!

    同学们尽管放心,我是负责任的——主要是这些编程语言的作者或者团队是负责任的,尽管开源 PHP 的官方团队已经在 2019 年底彻底解散了,但 PHP 依然很坚挺,很牛逼。

    下面让我来详细地说道说道这 10 门编程语言。

    01、Java

    Java 其实是 C++ 的一个替代品,Sun 公司原本想开发一种比 C++ 更简单的面向对象编程语言,起初叫 Oak。结果没想到,随着时间的流逝,因为 Java 更容易学习,跨平台,就导致 Java 的普及程度远远地超过了 C++。

    说句不那么优雅的话,就好像狗血剧里小三上位的桥段一样。

    在 Java 虚拟机的帮助下,Java 可以无障碍的在 Linux、Windows、Mac-OS 等多种操作系统下自由地穿梭,这使得它在企业级开发中非常受欢迎。

    Java 可以做网站开发、做安卓开发、做桌面级应用开发(Eclipse、NetBeans 等等)、做游戏开发(我的世界)。

    来一发 Java 版的 Hello World 吧:

    public class HelloWorld {
     public static void main(String[] args) {
      System.out.println("Hello World");
     }
    }
    

    02、C++

    C++,从名字上就可以看得出来,它是 C 语言的亲儿子,是对 C 语言的扩展,旨在为 C 语言创造出面向对象的功能。

    随着时间的发展,C++ 进一步发展为具有最直接的内存访问和完整硬件控制的通用语言。正因为 C++ 提供了最广泛的通用功能,就导致掌握起来有一定的难度。

    C++ 可以在所有的平台上运行,并且可以有效地利用任何类型的硬件,这使得它可以在资源受到限制的平台上发挥最佳性能。

    C++ 可以做游戏开发(星际争霸、魔兽争霸),办公软件(微软 Office)、操作系统(Windows)、关系型数据库(MySQL)、3D 引擎(Microsoft DirectX)、嵌入式开发。

    来一发 C++ 版的 Hello World 吧:

    #include<iostream.h>
    using namespace std;
     
    void main() {
        cout<<"Hello World";
    }
    

    03、C

    C 语言诞生于 1960 年,作者团队对它只有一个要求:必须得通用,并且能够有效地利用系统资源。因为在那个年代,每一个字节的内存都是昂贵的。

    就像 C++ 那样,C 也可以直接访问内存并且控制硬件。C 和操作系统紧密相关,程序员必须亲自处理内存的分配细节,因此很难掌握。尽管 C 语言诞生的很早,但它仍然是目前最常用的编程语言之一。

    C 语言的设计影响了众多后来的编程语言,比如说 C++、Ruby、PHP、Python、Java、C# 等等。

    C 语言可以做嵌入式开发(单片机),基于嵌入式操作系统的应用软件、驱动程序,高性能的 Web 服务器(Nginx),常见的缓存数据库(Redis)、智能设备或者物联网设备中的操作系统(路由器、摄像头)等等。据说,反正能想到的,都可以用 C 做,就看会不会做。

    来一发 C 版的 Hello World 吧:

    #include<iostream.h>
    void main()
    {
        printf("Hello World");
    }
    

    04、Python

    Python 诞生于 1990 年,作者叫吉多·范罗苏姆(Guido van Rossum,Python 之父)。可以说,所有的编程人员都喜欢 Python,因为它的学习成本很低,但应用的等级很高,比如说当下非常有深度的人工智能、机器学习、数据分析。

    Python 的语法简洁而优雅,社区也非常活跃。但有一说一,Python 岗位对学历的要求很高

    来一发 Python 版的 Hello World 吧:

    print("Hello World")
    

    05、JavaScript

    JavaScript 是 Brendan Eich(只用了 10 天时间就设计出来了,牛逼)在第一次浏览器大战时为 Netscape(网景公司)开发的脚本语言。尽管一开始 JavaScript 的设计不够优良(毕竟时间短啊),但随着时间的推移,JavaScript 逐渐发展为一种高级的动态编程语言。

    与其说我爱 Javascript,不如说我恨它。它是 C 语言和 Self 语言一夜情的产物。十八世纪英国文学家约翰逊博士说得好:‘它的优秀之处并非原创,它的原创之处并不优秀。’

    以上 Brendan Eich 对 JavaScript 的评价,读完是不是感觉好气啊——竟然看不起自己的亲生儿子,哈哈。

    有大佬曾说,“JavaScript 是互联网的胶带。”这个称赞非常高。HTML 负责结构, CSS 负责展示, 而 JavaScript 负责逻辑,网页前端编程的三剑客形成了。

    ExtJS、prototype、JQuery 这些基于 JavaScript 的框架更是把 JavaScript 推向了巅峰。随着 Node.js 的出现,JavaScript 这种客户端的脚本语言竟然可以在服务器端立足了。

    现在非常火热的前端框架,Vue.js 就是用 JavaScript 编写的,可以这说,想从事前端开发工作的话,JavaScript 是必学的!

    来一发 JavaScript 版的 Hello World 吧:

    <script>
     alert('Hello World');
    </script>
    

    06、C#

    一看名字,就知道 C# 和 C/C++ 有着亲密的关系,微软把 C# 设计成具有面向对象的,像 C 一样的编程语言。

    最初,C# 被看作是 Java 的复制品,它们之间有着惊人的相似之处,比如说继承、接口,以及与 Java 几乎同样的语法,同样需要先编译后运行。随着时间的发展,以及微软为之付出的巨大努力, C# 沉淀了丰富的类库和框架,开发人员可以在此基础上快速地编写各种基于 .NET 平台的应用程序。

    随着 Unity3D 的出现,跨平台的 C# 终于可以大展拳脚了,在开发游戏方面的优势巨大,比如说编译速度快、类库充足。除此之外,要知道 C# 背后的大山是谁,微软啊!

    来一发 C# 版的 Hello World 吧:

    namespace HelloWorld
    {
        class Hello
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Hello World");
            }
        }
    }
    

    07、Swift

    关于 Swift,直接来看苹果官方给出的介绍吧:

    Swift 是一种强劲而直观的编程语言,它由 Apple 创造,可用来为 iOS、Mac、Apple TV 和 Apple Watch 开发 app。它旨在为开发者提供充分的自由。Swift 易用并且开源,只要有想法,谁都可以创造非凡。

    Swift 是一种快速而高效的语言,能够提供实时反馈,而且可以被无缝集成到现有的 Objective-C 代码中,因此,开发者能够编写安全而可靠的代码,并在节省时间的同时,创造出非常丰富的 app 体验。

    来一发 Swift 版的 Hello World 吧:

    print("Hello World")
    

    08、Go

    Go 的亲爹是 Google,又是一家互联网巨头,可以想象它未来的潜力。

    Go 语言的设计非常精致,用起来也非常简单,解决开发扩展方面的能力也比较出众。关键是学习起来也非常容易上手,这些优点促使 Go 语言的增长非常快。

    国外如 Google、AWS、Cloudflare、CoreOS 等,国内如七牛、阿里等都已经开始大规模使用 Golang 开发其云计算相关的产品。 可以说前途非常光明。

    来一发 Go 版的 Hello World 吧:

    package main
    import "fmt"
    func main() 
    {
         fmt.Println("Hello World")
    }
    

    09、PHP

    PHP 用来开发 Web 应用程序的历史已经超过 35 年了,可以说是老资历了。尽管最近流行度在下降,但瘦死的骆驼比马大。

    PHP 是最好的编程语言,这个梗是从哪里来的呢?显然不是吐槽大会!而是 PHP 的官方文档!

    PHP is the best language for web programming, but what about other languages?

    下图是 PHP 是最好的编程语言的确凿证据。

    2010 年前后,PHP 在 Web 开发中一直处于王者的地位,尤其是 WordPress 等内容管理平台的流行,再加上“扎男”的 Facebook(PHP 开发的)的烘托,更加巩固了 PHP 在业界的地位。

    我在 2013 年 底准备回洛阳的时候,还学习了三个月的 PHP。时隔多年,下面这本书还躺在我家的书架上积灰。

    好了,来一发 PHP 版的 Hello World 吧:

    <?php
    echo "Hello World";
    ?>
    

    10、Ruby

    Ruby 最初是一种面向对象的脚本编程语言,但是随着时间的流逝,它逐渐发展成为一种解释性的高级通用编程语言。它的学习曲线相当平坦,非常有助于提高开发人员的生产力。

    Ruby 的作者松本行弘曾说过一段非常经典的话:

    “ 人们特别是电脑工程师们,常常从机器着想。他们认为:‘这样做,机器就能运行的更快;这样做,机器运行效率更高;这样做,机器就会怎样怎样怎样。’实际上,我们需要从人的角度考虑问题,人们怎样编写程序或者怎样使用机器上应用程序。我们是主人,他们是仆人。 ”

    Ruby 正是基于这种理念产生的。网上有句话是这样说的,学习 Ruby on Rails 能让你看到 Web 框架顶端的景色。听说,GitHub 官网是通过 Ruby on Rails 开发的(不准确,不知道有没有同学可以确认下)。

    JavaEye 的创始人范凯曾说:

    在我们国内,Ruby 是个小众的编程语言,但在硅谷,Ruby 很火,被誉为云计算时代的 Web 编程语言。

    当然了,之所以把 Ruby 放在最后一位,同学们一定懂我的意思。


    最后,希望同学们能够从这 10 门编程语言中选择一门自己喜欢的,深入研究,无论是哪门语言,我相信,只要你精通了,就一定能够找到自己心仪的工作,如果你只是浅尝辄止,那就不好意思呵呵了。


    我是沉默王二,一枚有颜值却假装靠才华苟且的程序员。关注即可提升学习效率,别忘了三连啊,点赞、收藏、留言,我不挑,奥利给🌹

    注:如果文章有任何问题,欢迎毫不留情地指正。

    如果你觉得文章对你有些帮助,欢迎微信搜索「沉默王二」第一时间阅读,回复关键字「小白」可以免费获取我肝了 4 万+字的 《Java 小白从入门到放肆》2.0 版;本文 GitHub github.com/itwanger 已收录,欢迎 star。

    展开全文
  • Android studio 中文语言

    热门讨论 2015-03-04 22:30:04
    Android studio 中文语言包,对下载的文件包进行解压,用新的resources_en.jar替换安装目录下的lib/resources_en.jar
  • windows server 2012 R2 简体中文语言

    千次下载 热门讨论 2015-03-17 22:55:22
    windows server 2012 R2 简体中文语言
  • svn中文语言包安装(详细步骤)*

    万次阅读 多人点赞 2019-10-28 14:38:56
    标题svn中文语言包安装(详细步骤) 一. 查看自己的SVN 版本(这里省略也可以,同事1.9版本的直接在官网下载的语言包也能用,区别对待把,可以先直接在官网下载,不行再去找对应版本语言包) 1.打开SVN找到关于,最后一个...

    标题svn中文语言包安装(最详细步骤)

    一. 查看自己的SVN 版本(这里省略也可以,同事1.9版本的直接在官网下载的语言包也能用,区别对待把,可以先直接在官网下载,不行再去找对应版本语言包)

    打开svn 找到版本信息
    1.打开SVN找到关于,最后一个(英文的是 About)
    版本详情

    1. 我这里是1.12.2版本 如果跟我一样的,可以直接点击下载SVN1.12.2中文语言包
    2. 也可以复制链接网页直接打开 https://osdn.net/projects/tortoisesvn/storage/1.12.2/Language%20Packs/LanguagePack_1.12.2.28653-x64-zh_CN.msi/

    2. 其他版本下载

    1. 打开官网SVN官网 找到最下方Older
      Releases
      点击 OSDN.net files 查看历史版本
    2. 找到你对应的版本 点开 然后在新的页面 点开 Language Packs 在里面选择你对应的系统选择一个点击下载就可以了

    寻找历史版本

    找到对应的版本
    点开Language Packs
    在这里插入图片描述

    二 安装SVN中文语言包

    1. 找到你对应的TortoiseSVN 安装位置(一般默认在C:\Program Files\TortoiseSVN ;
      也有自己装到别处的,自己找),
    2. 找到之后点开语言 ( Languages ) 把下载好的语言包放到这里 运行(注意只能在此处安装,其他地方安装无效,有的电脑安装立即生效,我的就是,有的需要重启SVN)

    在这里插入图片描述
    在这里插入图片描述

    三 设置中文

    1. 打开SVN设置
      在这里插入图片描述
    2. .搞定
      在这里插入图片描述
      因为之前安装过2次 参考百度经验
      第一次写文章 啰嗦了,麻烦各位帮忙点点赞
    展开全文
  • VS2012中文语言

    热门讨论 2013-06-07 15:03:00
    VS2012,语言包 ,这是一个VS2012 的中文语言包,下在后直接运行 会自动安装的。
  • 汇编语言显示中文

    千次阅读 2020-05-23 23:58:02
    由于emum8088CPU支持ASCII字符集,不支持Unicode字符集,需要我们用点阵的形式显示汉字。 首先需要获得汉字的点阵表示形式,即16*16的表示,32个字节。 汉字在Unicode字符集中,由两个字节表示,前一个表示区号,后...

    由于emum8088CPU支持ASCII字符集,不支持Unicode字符集,需要我们用点阵的形式显示汉字。

    首先需要获得汉字的点阵表示形式,即16*16的表示,32个字节。

    汉字在Unicode字符集中,由两个字节表示,前一个表示区号,后一个表示偏移地址。

    字体库 放在了D盘目录下面:

    #include <stdio.h>
    int main(void)
    {
    FILE* fphzk = NULL;
    errno_t err;
    int i, j, k, offset;
    int flag;
    unsigned char buffer[32];
    unsigned char word[3] = “我”;
    unsigned char key[8] = {
    0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01
    };

    //fphzk = fopen("D:/hzk16k", "rb");
    err = fopen_s(&fphzk, "D:/hzk16k", "rb" );     //楷体显示的字符
    if (fphzk == NULL) {
        fprintf(stderr, "error hzk16\n");
        return 1;
    }
    offset = (94 * (unsigned int)(word[0] - 0xa0 - 1) + (word[1] - 0xa0 - 1)) * 32;
    fseek(fphzk, offset, SEEK_SET);
    fread(buffer, 1, 32, fphzk);
    for (k = 0; k < 32; k++) {
        printf("%02X ", buffer[k]);
    }
    for (k = 0; k < 16; k++) {
        for (j = 0; j < 2; j++) {
            for (i = 0; i < 8; i++) {
                flag = buffer[k * 2 + j] & key[i];
                printf("%s", flag ? "●" : "○");
            }
        }
        printf("\n");
    }
    fclose(fphzk);
    fphzk = NULL;
    return 0;
    

    }
    在这里插入图片描述

    如上图,获得了汉字 “我”的点阵表达形式。

    ”我的计算机工作正常“ 点阵表示:

    WORD1 DB 01H,00H,01H,00H,01H,20H,05H,10H,19H,00H,09H,70H,0FH,80H,38H,90H,0AH,0A0H,0CH,40H,38H,0C0H,0CBH,24H,18H,14H,08H,0CH,00H,04H,00H,00H
    WORD2 DB 00H,00H,00H,20H,08H,20H,08H,40H,10H,58H,2CH,0E8H,75H,08H,46H,88H,74H,48H,44H,48H,44H,08H,3CH,08H,24H,28H,00H,10H,00H,00H,00H,00h
    WORD3 DB 00H,40H,10H,40H,08H,40H,00H,40H,00H,40H,30H,7CH,0D3H,0C0H,10H,40H,10H,40H,14H,40H,18H,40H,10H,40H,00H,40H,00H,40H,00H,40H,00H,00H
    word4 db 08H,58H,0FH,60H,08H,90H,15H,00H,23H,0C0H,04H,40H,07H,40H,04H,40H,07H,0C0H,04H,7EH,7FH,0C0H,04H,40H,04H,40H,08H,40H,10H,40H,00H,00H
    word5 db 10H,00H,10H,00H,10H,00H,10H,70H,1CH,90H,70H,0A0H,10H,0A0H,18H,0A0H,34H,0A0H,51H,22H,91H,22H,12H,1EH,14H,00H,10H,00H,00H,00H,00H,00H
    word6 db 00H,00H,00H,00H,00H,00H,00H,0E0H,0FH,00H,01H,00H,01H,00H,01H,00H,01H,00H,01H,00H,01H,0FCH,7EH,00H,00H,00H,00H,00H,00H,00H,00H,00H
    word7 db 00H,40H,08H,40H,08H,80H,08H,9CH,11H,0E0H,31H,40H,52H,40H,94H,78H,10H,40H,10H,40H,10H,78H,10H,40H,10H,40H,00H,40H,00H,40H,00H,00H
    word8 db 00H,00H,00H,00H,00H,0F0H,0FH,00H,01H,00H,01H,00H,09H,30H,09H,0C0H,09H,00H,09H,00H,09H,00H,09H,0FCH,0FEH,00H,00H,00H,00H,00H,00H,00H
    word9 db 01H,20H,09H,40H,05H,00H,0FH,0F8H,70H,08H,4FH,0D0H,48H,80H,07H,00H,01H,0E0H,0FH,20H,09H,20H,09H,60H,09H,20H,01H,00H,01H,00H,00H,00H
      接下里就是那些汇编程序:

    DATAS SEGMENT
    ;字模数据,可用字模生成程序生成,替换掉此处即可,此处使用的是16*16的黑体字模,32byte/字
    TW DB 01H,00H,01H,00H,01H,20H,05H,10H,19H,00H,09H,70H,0FH,80H,38H,90H,0AH,0A0H,0CH,40H,38H,0C0H,0CBH,24H,18H,14H,08H,0CH,00H,04H,00H,00H
    DB 00H,00H,00H,20H,08H,20H,08H,40H,10H,58H,2CH,0E8H,75H,08H,46H,88H,74H,48H,44H,48H,44H,08H,3CH,08H,24H,28H,00H,10H,00H,00H,00H,00h
    DB 00H,40H,10H,40H,08H,40H,00H,40H,00H,40H,30H,7CH,0D3H,0C0H,10H,40H,10H,40H,14H,40H,18H,40H,10H,40H,00H,40H,00H,40H,00H,40H,00H,00H
    db 08H,58H,0FH,60H,08H,90H,15H,00H,23H,0C0H,04H,40H,07H,40H,04H,40H,07H,0C0H,04H,7EH,7FH,0C0H,04H,40H,04H,40H,08H,40H,10H,40H,00H,00H
    db 10H,00H,10H,00H,10H,00H,10H,70H,1CH,90H,70H,0A0H,10H,0A0H,18H,0A0H,34H,0A0H,51H,22H,91H,22H,12H,1EH,14H,00H,10H,00H,00H,00H,00H,00H
    db 00H,00H,00H,00H,00H,00H,00H,0E0H,0FH,00H,01H,00H,01H,00H,01H,00H,01H,00H,01H,00H,01H,0FCH,7EH,00H,00H,00H,00H,00H,00H,00H,00H,00H
    db 00H,40H,08H,40H,08H,80H,08H,9CH,11H,0E0H,31H,40H,52H,40H,94H,78H,10H,40H,10H,40H,10H,78H,10H,40H,10H,40H,00H,40H,00H,40H,00H,00H
    db 00H,00H,00H,00H,00H,0F0H,0FH,00H,01H,00H,01H,00H,09H,30H,09H,0C0H,09H,00H,09H,00H,09H,00H,09H,0FCH,0FEH,00H,00H,00H,00H,00H,00H,00H
    db 01H,20H,09H,40H,05H,00H,0FH,0F8H,70H,08H,4FH,0D0H,48H,80H,07H,00H,01H,0E0H,0FH,20H,09H,20H,09H,60H,09H,20H,01H,00H,01H,00H,00H,00H
    DATAS ENDS

    STACKS SEGMENT
    DW 10 DUP(?)
    STACKS ENDS

    CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
    START:
    MOV AX,DATAS
    MOV DS,AX ;设置数据段寄存器

    MOV AX,STACKS
    MOV SS,AX           ;设置栈段寄存器
    MOV SP,20           ;设置栈顶偏移地址
    
    MOV AH,0FH 
    INT 10H             ;读当前显示方式至AX中
    
    PUSH AX             ;当前显示方式入栈
    
    MOV AX,12H  
    INT 10H             ;设置显示方式为VGA彩色
    
    MOV DI,(30 * 80 + 10) * 2         ;DI控制显示位置,640*480分辨率,可显示80*60字节,第i行汉字写入时DI为80*16*i~80*16*i+78,相邻汉字DI差2
    CALL DISPLAY            ;调用显示过程
    
    MOV AH,01
    INT 21H             ;等待输入,暂停作用
    
    POP AX              ;AX出栈
    MOV AH,00H
    INT 10H             ;恢复原来显示方式
    
    MOV AX,4C00H            ;退出程序
    INT 21H
    

    ;MOVSW指令将DS:SI中数据按字传送至ES:DI

    DISPLAY:    
    ;输出 ‘我的计算机工作正常’--------------------
        MOV AX,0A000H           ;VGA写入起始段地址
        MOV ES,AX           ;设置传送目标段地址
        CLD             ;CLD指令使DF=0,正向传输字
        MOV CX,9            ;连续的字数,此处“我的计算机工作正常”共9字
        LEA SI,TW           ;需写入汉字字模的首地址
        DIS1:
            PUSH CX         ;多重循环,CX入栈
            PUSH SI
            PUSH DI
            MOV CX,16
            DISWORD1:
                MOVSW
                ADD DI,78   ;转到下一行字模写入位置,一个汉字16*16,故需写16行
            LOOP DISWORD1
            POP DI
            POP SI
            POP CX
            ADD SI,32       ;读取下一个汉字的字模数据,由于一个汉字占用32byte,故加上32
            ADD DI,2        ;开始写下一个汉字,默认写在上一个字右边
        LOOP DIS1
    RET
    ;-----------------------------
    

    在这里插入图片描述

    展开全文
  • Ubuntu安装中文语言

    千次阅读 2020-12-30 21:36:00
    即使自己在安装的时候选择了中文语言,新安装的Ubuntu的中文支持还是非常薄弱的,连个基本的中文输入法都没有~除非你用的是Ubuntu DVD版。正常的升级方法是,选择“System”->“系统管理”->“Language ...
  • R语言出现中文乱码

    千次阅读 2021-03-15 12:32:28
    R语言出现中文乱码 解决方法:点击File—Reopen with encoding-----UTF-8 #操作完成后,R语言中文乱码即可恢复正常。
  • 在屏幕上输出中文字符“长春大学”。 code segment assume cs:code, ds:code begin: ;----使文本显示模式扩展为全屏---- mov ax,12h INT 10H ;置图形模式 。。。。。。。。。。。。。 。。。。。。。。。。。。
  • 有些用户在安装win10系统之后,可能会发现默认语言是英文版的,但是对于不熟悉英文的用户们来说这就很困扰了,那么要怎么把系统语言设置成中文呢,方法不难,这就给大家带来Win10系统设置中文语言的详细步骤吧。...
  • Adobe Photoshop CS6 简体中文语言

    热门讨论 2012-05-05 17:32:28
    放到Locales文件夹下删掉其它语言
  • R语言—如何解决中文乱码

    万次阅读 2019-06-14 20:49:42
    R语言—如何解决中文乱码 可解决的问题: 一、R链接数据库乱码问题 二、R文件读写乱码问题 【问题一】解决方案: 数据库字符编码与R中不同,一般数据库编码可能为gbk格式,此时,需要转化数据库编码。以下代码在...
  • 自然语言处理中文词库(含词性)

    热门讨论 2012-05-19 16:48:36
    用于自然语言理解课程,分词,词性标注使用的词典
  • Adobe Flash CS6 简体中文语言

    热门讨论 2012-05-22 12:55:25
    解压放到文件跟目录,删掉其它语言,不然会有冲突!!
  • codelite中文语言

    热门讨论 2011-10-13 22:49:49
    codelite中文包 Windows、Linux平台通用,放在CodeLite\locale\zh_CN目录下,必要时手动建立locale\zh_CN目录。然后在Codelite里设置国际化。
  • 1. Setup locales dpkg-reconfigure locales ...中文输入法 apt-get install scim scim-chinese scim-pinyin 转载于:https://www.cnblogs.com/kungfupanda/archive/2010/11/30/1892167.html
  • tesseract-ocr的中文识别语言

    千次下载 热门讨论 2014-07-11 14:10:17
    tesseract-ocr的语言库识别库文件,下载解压后放到tesseract-ocr安装目录下的tessdata 目录,存放的是语言字库文件,在命令行界面中可能用到的参数所对应的文件. 这个安装程序默认包含了英文字库。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 738,620
精华内容 295,448
关键字:

和中文最像的语言