精华内容
下载资源
问答
  • 常见的语言处理程序有哪些
    千次阅读
    2021-09-02 08:57:33

    原文

    该作者也是翻译的外文,英文原文链接

    引言

    自然语言处理(NLP)是一种艺术与科学的结合,旨在从文本数据中提取信息。在它的帮助下,我们从文本中提炼出适用于计算机算法的信息。从自动翻译、文本分类到情绪分析,自然语言处理成为所有数据科学家的必备技能之一。

    常见的10个NLP任务如下:

    1. 词干提取
    2. 词形还原
    3. 词向量化
    4. 词性标注
    5. 命名实体消岐
    6. 命名实体识别
    7. 情感分析
    8. 文本语义相似分析
    9. 语种辨识
    10. 文本总结

    以下将详细展开:

    1.词干提取

    什么是词干提取?词干提取是将词语去除变化或衍生形式,转换为词干或原型形式的过程。词干提取的目标是将相关词语还原为同样的词干,哪怕词干并非词典的词目。例如,英文中:

    1. beautiful和beautifully的词干同为beauti
    2. Good,better和best 的词干分别为good,better和best。

    相关论文:Martin Porter的波特词干算法原文

    相关算法:Porter2词干算法的Python实现

    程序实现:Porter2算法做词干提取的代码:

    #!pip install stemming
    from stemming.porter2 import stem
    stem("casually")
    

    2. 词形还原

    什么是词形还原? 词形还原是将一组词语还原为词源或词典的词目形式的过程。还原过程考虑到了POS问题,即词语在句中的语义,词语对相邻语句的语义等。例如,英语中:

    1. beautiful和beautifully被分别还原为beautiful和beautifully。
    2. good, better和best被分别还原为good, good和good

    相关论文1: 这篇文章详细讨论了词形还原的不同方法。想要了解传统词形还原的工作原理必读。

    相关论文2: 这篇论文非常出色,讨论了运用深度学习对变化丰富的语种做词形还原时会遇到的问题。

    数据集: 这里是Treebank-3数据集的链接,你可以使用它创建一个自己的词形还原工具。

    程序实现:下面给出了在spacy上的英语词形还原代码

    #!pip install spacy
    #python -m spacy download en
    import spacy
    nlp=spacy.load("en")
    doc="good better best"
    for token in nlp(doc):
        print(token,token.lemma_)
    

    3. 词向量化

    什么是词向量化?词向量化是用一组实数构成的向量代表自然语言的叫法。这种技术非常实用,因为电脑无法处理自然语言。词向量化可以捕捉到自然语言和实数间的本质关系。通过词向量化,一个词语或者一段短语可以用一个定维的向量表示,例如向量的长度可以为100。

    例如:Man这个词语可以用一个五维向量表示。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-brz0VdBI-1630544238308)(https://github.com/smilelight/images/raw/master/%E5%B8%B8%E8%A7%8110%E7%A7%8D%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86%E6%8A%80%E6%9C%AF/word-vector.png)]

    这里的每个数字代表了词语在某个特定方向上的量级。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kNpXM4ch-1630544238311)(https://github.com/smilelight/images/raw/master/%E5%B8%B8%E8%A7%8110%E7%A7%8D%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86%E6%8A%80%E6%9C%AF/Word-Vectors.png)]

    相关博文:这篇文章详细解释了词向量化

    相关论文:这篇论文解释了词向量化的细节。深入理解词向量化必读。

    相关工具:这是个基于浏览器的词向量可视化工具。

    预训练词向量:这里有一份facebook的预训练词向量列表,包含294种语言。

    这里可以下载google news的预训练词向量。

    #!pip install gensim
    from gensim.models.keyedvectors import KeyedVectors
    word_vectors=KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin',binary=True)
    word_vectors['human']
    

    程序实现:这段代码可以用gensim训练你自己的词向量

    sentence=[['first','sentence'],['second','sentence']]
    model = gensim.models.Word2Vec(sentence, min_count=1,size=300,workers=4)
    

    4.词性标注

    什么事词性标注?简单来说,词性标注是对句子中的词语标注为名字、动词、形容词、副词等的过程。例如,对句子“Ashok killed the snake with a stick”,词性标注会识别:

    • Ashok 代词
    • killed 动词
    • the 限定词
    • snake 名词
    • with 连词
    • a 限定词
    • stick 名词
    • . 标点

    论文1:choi aptly的这篇《The Last Gist to theState-of-the-Art 》介绍了一种叫动态特征归纳的新方法。这是目前词性标注最先进的方法。

    论文2:这篇文章介绍了通过隐马尔科夫模型做无监督词性标注学习的方法。

    程序实现:这段代码可以在spacy上做词性标注

    #!pip install spacy
    #!python -m spacy download en 
    nlp=spacy.load('en')
    sentence="Ashok killed the snake with a stick"
    for token in nlp(sentence):
       print(token,token.pos_)
    

    5. 命名实体消歧

    什么是命名实体消岐?命名实体消岐是对句子中的提到的实体识别的过程。例如,对句子“Apple earned a revenue of 200 Billion USD in 2016”,命名实体消岐会推断出句子中的Apple是苹果公司而不是指一种水果。一般来说,命名实体要求有一个实体知识库,能够将句子中提到的实体和知识库联系起来。

    论文1:Huang的这篇论文运用了基于深度神经网络和知识库的深层语义关联模型,在命名实体消岐上达到了领先水平。

    论文2:Ganea and Hofmann的这篇文章运用了局部神经关注模型和词向量化,没有人为设置特征。

    6. 命名实体识别

    体识别是识别一个句子中有特定意义的实体并将其区分为人名,机构名,日期,地名,时间等类别的任务。例如,一个NER会将一个这样的句子:

    “Ram of Apple Inc. travelled to Sydney on 5th October 2017”

    返回如下的结果:

    Ram
    of
    Apple ORG
    Inc. ORG
    travelled
    to
    Sydney GPE
    on
    5th DATE
    October DATE
    2017 DATE

    这里,ORG代表机构组织名,GPE代表地名。

    然而,当NER被用在不同于该NER被训练的数据领域时,即使是最先进的NER也往往表现不佳。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IGZYUxW2-1630544238314)(https://github.com/smilelight/images/raw/master/%E5%B8%B8%E8%A7%8110%E7%A7%8D%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86%E6%8A%80%E6%9C%AF/ner.png)]

    论文:这篇优秀的论文使用双向LSTM(长短期记忆网络)神经网络结合监督学习和非监督学习方法,在4种语言领域实现了命名实体识别的最新成果。

    程序实现:以下使用spacy执行命名实体识别。

    import spacy
    nlp=spacy.load('en')sentence="Ram of Apple Inc. travelled to Sydney on 5th October 2017"
    for token in nlp(sentence):
       print(token, token.ent_type_)
    

    7. 情感分析

    什么是情感分析?情感分析是一种广泛的主观分析,它使用自然语言处理技术来识别客户评论的语义情感,语句表达的情绪正负面以及通过语音分析或书面文字判断其表达的情感等等。例如:

    “我不喜欢巧克力冰淇淋”—是对该冰淇淋的负面评价。

    “我并不讨厌巧克力冰激凌”—可以被认为是一种中性的评价。

    从使用LSTMs和Word嵌入来计算一个句子中的正负词数开始,有很多方法都可以用来进行情感分析。

    博文1:本文重点对电影推文进行情感分析。

    博文2:本文重点对印度金奈洪水期间的推文进行情感分析。

    论文1:本文采用朴素贝叶斯的监督学习方法对IMDB评论进行分类。

    论文2:本文利用LDA的无监督学习方法来识别用户生成评论的观点和情感。本文在解决注释评论短缺的问题上表现突出。

    资料库:这是一个很好的包含相关研究论文和各种语言情感分析程序实现的资料库。

    数据集1:多域情感数据集版本2.0

    数据集2:Twitter情感分析数据集

    竞赛:一个非常好的比赛,你可以检查你的模型在烂番茄电影评论的情感分析任务中的表现。

    8. 语义文本相似度

    什么是语义文本相似度分析?语义文本相似度分析是对两段文本的意义和本质之间的相似度进行分析的过程。注意,相似性与相关性是不同的。

    例如:

    汽车和公共汽车是相似的,但是汽车和燃料是相关的。

    论文1:本文详细介绍了文本相似度测量的不同方法。是一篇可以一站式了解目前所有方法的必读文章。

    论文2:本文介绍了用CNN神经网络去比对两个短文本。

    论文3:本文利用Tree-LSTMs方法得到了文本的语义相关和语义分类的最新成果。

    9. 语言识别

    什么是语言识别?语言识别指的是将不同语言的文本区分出来。其利用语言的统计和语法属性来执行此任务。语言识别也可以被认为是文本分类的特殊情况。

    博文:在这篇由fastText撰写的博文中介绍了一种新的工具,其可以在1MB的内存使用情况下识别170种语言。

    论文1:本文讨论了285种语言的7种语言识别方法。

    论文2:本文描述了如何使用深度神经网络来实现自动语言识别的最新成果。

    10. 文本摘要

    什么是文本摘要?文本摘要是通过识别文本的重点并使用这些要点创建摘要来缩短文本的过程。文本摘要的目的是在不改变文本含义的前提下最大限度地缩短文本。

    论文1:本文描述了基于神经注意模型的抽象语句梗概方法。

    论文2:本文描述了使用序列到序列的RNN在文本摘要中达到的最新结果。

    资料库:Google Brain团队的这个资料库拥有使用为文本摘要定制的序列到序列模型的代码。该模型在Gigaword数据集上进行训练。

    应用程序:Reddit的autotldr机器人使用文本摘要来梗概从文章到帖子的各种评论。这个功能在Reddit用户中非常有名。

    程序实现:以下是如何用gensim包快速实现文本摘要。

    from gensim.summarization import summarize
    sentence = "Automatic summarization is the process of shortening a text document with software, in order to create a summary with the major points of the original document. Technologies that can make a coherent summary take into account variables such as length, writing style and syntax.Automatic data summarization is part of machine learning and data mining. The main idea of summarization is to find a subset of data which contains the information of the entire set. Such techniques are widely used in industry today. Search engines are an example; others include summarization of documents, image collections and videos. Document summarization tries to create a representative summary or abstract of the entire document, by finding the most informative sentences, while in image summarization the system finds the most representative and important (i.e. salient) images. For surveillance videos, one might want to extract the important events from the uneventful context.There are two general approaches to automatic summarization: extraction and abstraction. Extractive methods work by selecting a subset of existing words, phrases, or sentences in the original text to form the summary. In contrast, abstractive methods build an internal semantic representation and then use natural language generation techniques to create a summary that is closer to what a human might express. Such a summary might include verbal innovations. Research to date has focused primarily on extractive methods, which are appropriate for image collection summarization and video summarization."
    summarize(sentence)
    

    结束语

    以上所有是最流行的NLP任务以及相关的博客、研究论文、资料库、应用等资源。

    更多相关内容
  • 常见的脚本语言(有哪些)

    千次阅读 2021-06-10 02:26:50
    常见的脚本语言脚本言语:脚本言语又被称为扩建的言语,或者动态言语,是一种编程言语,用bai来操控软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解说或编译。言语分类:Shell脚本:此类脚本用于...

    常见的脚本语言

    脚本言语:脚本言语又被称为扩建的言语,或者动态言语,是一种编程言语,用bai来操控软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解说或编译。

    言语分类:

    Shell脚本:此类脚本用于自动化工作操控,即发动和操控体系程序的行为。大多的脚本言语解说器也一起是命令行界面,如Unixshell和MS-DOSCOMMAND.COM。其他如AppleScript,可以为体系添加脚本环境,但没有命令行界面。详细分类有:

    4NT

    AppleScript

    ARexx(AmigaRexx)

    bash

    csh

    DCL

    JCL

    ksh

    Cmd.exebatch(Windows,OS/2)

    Command.combatch(DOS)

    REXX

    tcsh

    sh

    Winbatch

    WindowsPowerShell

    WindowsScriptHost

    zsh

    GUI脚本:GUI出现带来一种专业的操控核算机的脚本言语。它在用户和图形界面,菜单,按钮等之间互动。它常常用来自动化重复性动作,或设置一个标准状态。理论上它可以用来操控运转于根据GUI的核算机上的所有应用程序,但实际上这些言语是否被支持还要看应用程序和操作体系本身。当通过键盘进行互动时,这些言语也被称为宏言语。0e8a2bd1e069f49bc9722dbf3c738798.png

    详细分类有:

    AutoHotkey

    AutoIt

    Expect

    应用程序定制:许多大型的应用程序都包含根据用户需求而定制的惯用脚本言语。同样地,许多电脑游戏体系运用一种自定义脚本言语来体现NPC(non-playercharacter,non-playablecharacter,non-playerclass)和游戏环境的预编程动作。此类言语通常是为一个独自的应用程序所规划,虽然它们形似一些通用言语(如QuakeC,modeledafterC),但它们有自定义的功用。详细分类:

    ActionCodeScript

    ActionScript

    AutoLISP

    BlobbieScript

    EmacsLisp

    GameMakerLanguage

    HyperTalk

    IPTSCRAE

    IRCscript

    Lingo

    MayaEmbeddedLanguage

    mIRCscript

    NWscript

    QuakeC

    UnrealScript

    VisualBasicforApplications

    VBScript

    ZZT-oop

    web编程脚本:应用程序定制的脚本言语中有一种重要的类别,用于供给WEB页面的自定义功用。它专业处理互联网通讯,运用网页浏览器作为用户界面。当然,大多现代WEB编程言语都比较强大可以做一些通用编程。详细分类:

    ColdFusion(ApplicationServer)

    Lasso

    Miva

    SMX

    IPTSCRAE-一些网络开发团队用于创立论坛的东西

    文本处理言语:处理根据文本的记载是脚本言语最早的用处之一。如Unix’sawk最早是规划来协助体系办理员处理调用UNIX根据文本的配置和LOG文件。PERL最早是用来发生报告的,现在它现已成了全面老练的言语。

    详细分类:

    Awk

    Perl

    sed

    XSLT

    通用动态言语:一些言语,比如Perl,从一门脚本言语开展成了更通用的编程言语。由于“解说执行,内存办理,动态”等特性,它们仍被称为脚本言语。但它们现已用于应用程序编写,用户也不把它们看作脚本言语。

    APL

    Dao

    Dylan

    Groovy

    Lua

    MUMPS(M)

    newLISP

    Nuva

    Perl

    PHP

    Python

    Ruby

    Scheme

    Smalltalk

    SuperCard

    Tcl(Toolcommandlanguage)

    程序言语:少量的言语被规划通过嵌入应用程序来替代应用程序定制的脚本言语。开发者(如运用C等其它体系言语)包入使脚本言语可以操控应用程序的hook。这些言语和应用程序定制的脚本言语是同种用处,但优点在于可以在应用程序之间传递一些技能。

    详细分类:

    Ch(C/C++interpreter)

    Dao

    ECMAScript亦称DMDScript,JavaScript,JScript

    GameMonkeyScript

    Guile

    ICI

    Lua

    RBScript(REALbasicScript)

    Squirrel

    Tcl

    Z-Script

    JavaScript直到现在仍然是网页浏览器内的首要编程言语,它的ECMAScript标准化确保了它成为盛行的通用嵌入性言语。Tcl作为一种扩展性言语而创立,但更多地被用作通用性言语,就如同Python,Perl,Ruby一样。Q言语是在VBScript的基础上开展起来,专用于按键精灵系列产品,成为一门更接近“汉语”习惯的脚本言语。

    BeanShell(scriptingforJava)

    CobolScript

    Escapade(serversidescripting)

    Euphoria

    F-Script

    Ferite

    Groovy

    Gui4Cli

    Io

    KiXtart

    Mondrian

    ObjectREXX

    Pike

    Pliant

    REBOL

    ScriptBasic

    ShorthandLanguage

    Simkin

    Sleep

    StepTalk

    VisualDialogScript62a1ebe697dbfbdb50451f9684d133e1.png

    常见的脚本语言有哪些

    脚本语言有很多种,像是我们常见的Cmd指令也能够算是一种脚本,你说的脚本语言应该是Web应用程序的脚本。

    这类的常见的有JavaScript、VBScript、Perl、PHP、Python、Ruby。

    脚本语言的特点是语法简略,一般以文本方式保存,而且不需要编译成方针程序,在调用的时分直接解说。这能够作为是脚本语言的判别标准,比如说JavaScript,你只需要用记事本新建一个Html文件,在里面加上一段脚本就能够了,在浏览器打开Html文件时自然会调用JS脚本。

    总之你能用记事本写出程序,不需要编译环境生成方针程序的基本上就是脚本语言。

    展开全文
  • 满意答案hata19782017.04.20采纳率:52%等级:13已帮助:9858人...为了使电子计算机进行各种工作,就需要一套用以编写计算机程序的数字、字符和语法规划,由这些字符和语法规则组成计算机各种指令(或各种语句)...

    满意答案

    dcebd7a0de6265b6ccae5ead692f1eab.png

    hata1978

    2017.04.20

    dcebd7a0de6265b6ccae5ead692f1eab.png

    采纳率:52%    等级:13

    已帮助:9858人

    计算机语言(Computer Language)指用于人与计算机之间通讯的语言。计算机语言是人与计算机之间传递信息的媒介。计算机系统最大特征是指令通过一种语言传达给机器。为了使电子计算机进行各种工作,就需要有一套用以编写计算机程序的数字、字符和语法规划,由这些字符和语法规则组成计算机各种指令(或各种语句)。这些就是计算机能接受的语言。

    一、计算机高级语言特点

    高级语言是从人类的逻辑思维角度出发的计算机语言,抽象程度大大提高,需要经过编译成特定机器上的目标代码才能执行,一条高级语言的语句往往需要若干条机器指令来完成。高级语言独立于机器的特性是靠编译器为不同机器生成不同的目标代码(或机器指令)来实现的。

    二、计算机高级语言分类

    分类方法:程序的执行方式

    类别:编译型语言和解释型语言

    1.编译型语言:

    使用专门的编译器针对特点平台将高级语言一次性翻译成可被该平台硬件执行的机器码,并包装秤该平台可识别的可执行程序的格式,该过程叫编译Compile,可执行程序可以脱离开发环境,在特定平台独立运行。

    有些程序编译结束后,还可能需要对其他目标代码进行连接,将多个目标代码模块组成最终的可执行程序。

    优点:可以脱离开发环境独立运行,执行效率比较高;

    缺点:可执行程序不能跨平台;

    2.解释型语言:

    使用解释器对源代码逐行解释成特定平台的机器码并执行,相当于把编译型语言中的编译和解释过程混合在一起同时完成。

    缺点:每次执行该语言的程序都需要进行一次编译,效率低,不能脱离解释器独立运行;

    优点:可实现跨平台执行;

    三、计算机常见语种

    常见语言

    1.C语言

    C语言是Dennis Ritchie在七十年代创建的,它功能更强大且与ALGOL保持更连续的继承性,而ALGOL则是COBOL和FORTRAN的结构化继承者。C语言被设计成一个比它的前辈更精巧、更简单的版本,它适于编写系统级的程序,比如操作系统。在此之前,操作系统是使用汇编语言编写的,而且不可移植。C语言是第一个使得系统级代码移植成为可能的编程语言。

    优点:有益于编写小而快的程序。很容易与汇编语言结合。具有很高的标准化,因此其他平台上的各版本非常相似。

    缺点:不容易支持面向对象技术。语法有时会非常难以理解,并造成滥用。

    移植性:C语言的核心以及ANSI函数调用都具有移植性,但仅限于流程控制、内存管理和简单的文件处理。其他的东西都跟平台有关。比如说,为Windows和Mac开发可移植的程序,用户界面部分就需要用到与系统相关的函数调用。这一般意味着你必须写两次用户界面代码,不过还好有一些库可以减轻工作量。

    2.C++

    C++语言是具有面向对象特性的C语言的继承者。面向对象编程,或称OOP是结构化编程的下一步。OO程序由对象组成,其中的对象是数据和函数离散集合。有许多可用的对象库存在,这使得编程简单得只需要将一些程序“建筑材料”堆在一起(至少理论上是这样)。比如说,有很多的GUI和数据库的库实现为对象的集合。

    优点:组织大型程序时比C语言好得多。很好的支持面向对象机制。通用数据结构,如链表和可增长的阵列组成的库减轻了由于处理低层细节的负担。

    缺点:非常大而复杂。与C语言一样存在语法滥用问题。比C慢。大多数编译器没有把整个语言正确的实现。

    移植性:比C语言好多了,但依然不是很乐观。因为它具有与C语言相同的缺点,大多数可移植性用户界面库都使用C++对象实现。

    3.汇编语言

    汇编是第一个计算机语言。汇编语言实际上是你计算机处理器实际运行的指令的命令形式表示法。这意味着你将与处理器的底层打交道,比如寄存器和堆栈。如果要找的是类英语且有相关的自我说明的语言,这不是你想要的。 特别注意:语言的名字叫“汇编”。把汇编语言翻译成真实的机器码的工具叫“汇编程序”。把这门语言叫做“汇编程序”这种用词不当相当普遍,因此,请从这门语言的正确称呼作为起点出发。

    优点:最小、最快的语言。汇编高手能编写出比任何其他语言能实现的快得多的程序。你将是利用处理器最新功能的第一人,因为你能直接使用它们。

    缺点:难学、语法晦涩、坚持效率,造成大量额外代码—不适于心脏虚弱者。

    移植性:接近零。因为这门语言是为一种单独的处理器设计的,根本没移植性可言。如果使用了某个特殊处理器的扩展功能,你的代码甚至无法移植到其他同类型的处理器上(比如,AMD的3DNow指令是无法移植到其它奔腾系列的处理器上的)。

    4.Pascal语言

    Pascal语言是由NicolasWirth在七十年代早期设计的,因为他对于FORTRAN和COBOL没有强制训练学生的结构化编程感到很失望,“空心粉式代码”变成了规范,而当时的语言又不反对它。Pascal被设计来强行使用结构化编程。最初的Pascal被严格设计成教学之用,最终,大量的拥护者促使它闯入了商业编程中。当Borland发布IBMPC上的TurboPascal时,Pascal辉煌一时。集成的编辑器,闪电般的编译器加上低廉的价格使之变得不可抵抗,Pascal编程了为MS-DOS编写小程序的首选语言。然而时日不久,C编译器变得更快,并具有优秀的内置编辑器和调试器。Pascal在1990年Windows开始流行时走到了尽头,Borland放弃了Pascal而把目光转向了为Windows编写程序的C++。TurboPascal很快被人遗忘。

    基本上,Pascal比C简单。虽然语法类似,它缺乏很多C有的简洁操作符。这既是好事又是坏事。虽然很难写出难以理解的“聪明”代码,它同时也使得一些低级操作,如位操作变得困难起来。

    优点:易学、平台相关的运行(Dephi)非常好。

    缺点:“世界潮流”面向对象的Pascal继承者(Modula、Oberon)尚未成功。语言标准不被编译器开发者认同。

    .移植性:很差。语言的功能由于平台的转变而转变,没有移植性工具包来处理平台相关的功能。

    5.VisualBasic

    优点:整洁的编辑环境。易学、即时编译导致简单、迅速的原型。大量可用的插件。虽然有第三方的DirectX插件,DirectX7已准备提供VisualBasic的支持。

    缺点:程序很大,而且运行时需要几个巨大的运行时动态连接库。虽然表单型和对话框型的程序很容易完成,要编写好的图形程序却比较难。调用Windows的API程序非常笨拙,因为VB的数据结构没能很好的映射到C中。有OO功能,但却不是完全的面向对象。

    移植性:非常差。因为VisualBasic是微软的产品,你自然就被局限在他们实现它的平台上。

    6.Java

    Java是由Sun最初设计用于嵌入程序的可移植性“小C++”。在网页上运行小程序的想法着实吸引了不少人的目光,于是,这门语言迅速崛起。事实证明,Java不仅仅适于在网页上内嵌动画—它是一门极好的完全的软件编程的小语言。“虚拟机”机制、垃圾回收以及没有指针等使它很容易实现不易崩溃且不会泄漏资源的可靠程序。

    虽然不是C++的正式续篇,Java从C++中借用了大量的语法。它丢弃了很多C++的复杂功能,从而形成一门紧凑而易学的语言。不像C++,Java强制面向对象编程,要在Java里写非面向对象的程序就像要在Pascal里写“空心粉式代码”一样困难。

    优点:二进制码可移植到其他平台。程序可以在网页中运行。内含的类库非常标准且极其健壮。自动分配合垃圾回收避免程序中资源泄漏。网上数量巨大的代码例程。

    缺点:使用一个“虚拟机”来运行可移植的字节码而非本地机器码,程序将比真正编译器慢。有很多技术(例如“即时”编译器)很大的提高了Java的速度,不过速度永远比不过机器码方案。早期的功能,如AWT没经过慎重考虑,虽然被正式废除,但为了保持向后兼容不得不保留。越高级的技术,造成处理低级的机器功能越困难,Sun为这门语言增加新的“受祝福”功能的速度实在太慢。

    移植性:最好的,但仍未达到它本应达到的水平。低级代码具有非常高的可移植性,但是,很多UI及新功能在某些平台上不稳定。

    7.创作工具

    多数创作工具有点像VisualBasic,只是它们工作在更高的层次上。大多数工具使用一些拖拉式的流程图来模拟流程控制。很多内置解释的程序语言,但是这些语言都无法像上面所说的单独的语言那样健壮。

    优点:快速原型—如果你的游戏符合工具制作的主旨,你或许能使你的游戏跑得比使用其他语言快。在很多情况下,你可以创造一个不需要任何代码的简单游戏。使用插件程序,如Shockware及IconAuthor播放器,你可以在网页上发布很多创作工具生成的程序。

    缺点:专利权,至于将增加什么功能,你将受到工具制造者的支配。你必须考虑这些工具是否能满足你游戏的需要,因为有很多事情是那些创作工具无法完成的。某些工具会产生臃肿得可怕的程序。

    移植性:因为创作工具是具有专利权的,你的移植性以他们提供的功能息息相关。有些系统,如Director可以在几种平台上创作和运行,有些工具则在某一平台上创作,在多种平台上运行,还有的是仅能在单一平台上创作和运行。[5]

    8.C#

    C#是一种精确、简单、类型安全、面向对象的语言。其是.Net的代表性语言。什么是.Net呢?按照微软总裁兼首席执行官Steve Ballmer把它定义为:.Net代表一个集合,一个环境,它可以作为平台支持下一代Internet的可编程结构。

    C#的特点:

    1.完全面向对象。

    2.支持分布式。

    3.自动管理内存机制。

    4.安全性和可移植性。

    5.指针的受限使用。

    6.多线程。和Java类似,C#可以由一个主进程分出多个执行小系统的多线程。

    C#是在Java流行起来后所诞生的一种新的程序开发语言。

    30分享举报

    展开全文
  • 语言处理程序

    万次阅读 热门讨论 2014-04-28 21:47:20
    什么是语言处理程序?     它是一类系统软件的总称。还是不懂?那好吧,我们把它给拆了? 拆完后=“语言”+“处理”+“程序”   首先,是什么类型的语言呢?是编程语言;处理即操作。程序 就不用说了吧。...
     

    什么是语言处理程序?

     

            它是一类系统软件的总称。还是不懂?那好吧,我们把它给拆了?    拆完后=“语言”+“处理”+“程序

           首先,是什么类型的语言呢?是编程语言;处理即操作。程序 就不用说了吧。这里其实是给大家买了一个关子。简单的说语言处理程序就是:用来对编程语言进行处理的一类程序。

           那么为什么要对编程语言进行操作呢?这不得不说到编程语言的发展了。


    一、编程语言的发展

      


            机器语言:一开始,人类和计算机打交道用的是机器指令(机器语言),我们都知道机器指令太“简单”了,简单到只剩下“0”和“1”。

             汇编语言:为了符合人类的编程思维习惯,我们开始用一些简单的,常识符号来当作指令进行编程,即汇编语言,汇编语言包含:指令语句,伪指令语句,和宏指令语句。

             指令和伪指令的区别:指令进过解释后可以直接变成机器指令,而伪指令即为指令语句的执行提供服务,例如分配内存空间等操作。宏指令即批处理指令。

             高级语言:为了是编程变得简单,符合人们的理解习惯,接着发展到了第三个大阶段,高级语言阶段,这时候的编程语言层出不穷,c,c++java等被我们熟知了。

             高级语言极大的方便了编程,但是机器还是比较“简单”的,它识别不了复杂的人类社会,所以高级语言和机器之间的沟通这个时候需要有人来解决——语言处理程序。

    语言处理程序的主要目的就是将汇编语言和高级编程语言翻译成机器语言,让机器识别,达到运行的目的。


    二、语言处理程序 

    现在有三种语言处理程序:汇编程序、解释程序、编译程序。 


    汇编程序

    将汇编语言编写的源程序翻译成机器指令程序。


    汇编程序的工作内容:转换指令,处理伪指令。


    步骤:两次扫描

    第一次:定义符号的值,创建一个符号表ST

    第二次:产生目标程序 


    编译程序(编译器)

    将源程序编译成目标语言程序

    工作原理如下:

         


    以上的工作流程按照逻辑划分可以分成两个部分:编译前端和编译后端。


    前端

    从词法分析——》中间代码生成

    与机器无关部分

    与编程语言有关

    后端

    中间代码优化——》目标代码生成,优化

    与机器有关

    与编程语言无关 


    这样划分的好处:对于机器来说,底层机器不同,机器语言不同,那么要生成的目标代码就会不同;


    针对上层,不同的编程语言转换成中间代码的语法,词法,语义检查不同,把编译器分割成前端和后端,就可以灵活应对对上层编程语言和底层机器的需求。针对不同语言设计有不同的前端,针对不同机器设计不同后端,根据需要组合使用。


    编译步骤

          如图:词法分析,语法分析,语义检查……这么一步一步走到目标代码生成。在图的两侧可以看到有“符号表管理”和“出错处理”。这两个表示从编译开始就一直存在的。


    符号表中记录了源程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成,个人感觉这就好比一个“转换字典”,是源程序和目标代码之间的一个对照表。


    出错处理:源程序在编译中出现错误是再正常不过的一件事情,在编译中出现错误,就会进入到编译器自动进行的“出错处理”机制中,进行修复策略。       


             中间代码:是一种简单的且含义明确的记号系统,前边讲过,它属于编译前端,与机器无关。

          常用的是与汇编语言非常相似的三地址码,采用四元式实现;

             中间代码优化在此阶段完成

             原则:等价变化规则

          表示形式

    后缀式,树式——适用解释器

    三元式

    四元式——适用于编译器


    目标代码生成 


    目标代码属于编译后端,生成与具体的机器有关。一般包含:绝对指令代码,可重定位指令代码,指令代码

    目标代码形式:汇编语言形式,机器指令形式 

    需要考虑的两个因素:寄存器的分配,计算次序的选择。 


    解释程序(解释器)


    一种:直接解释执行源程序

    另一种:将源程序翻译成某种中间代码,再执行

       


    区别:B,C不同是中间代码级别不同,C 更接近于机器语言


    三、编译程序 VS 解释程序


    同:在解释程序中同样存在词法,语法,语义检查——与编译程序基本相同

    异:与编译程序的区别——不产生目标程序,运行的时候需要源程序和解释程序参与。


    从如下三个方面进行讨论

    1、效率

    编译效率高

    时间:解释程序反复扫描源程序

    空间:解释运行源程序需要更多的内存

    编译程序进行目标代码生成并优化在时间和空间上都比解释程序耗费多,但是更大的好处在一次编译多次运行,所以整体在效率上提高了。


    2、灵活性

    解释器可以随时更改


    3、可移植性

     对解释器进行重新编译,就可以运行在不同环境中


    
    展开全文
  • NLP是人工智能的一个子领域,作为AI产品经理,我们至少要...NLP,中文叫自然语言处理,简单来说,是一门让计算机理解、分析以及生成自然语言的学科,大概的研究过程是:研制出可以表示语言能力的模型——提出各种...
  • 自然语言处理动手学Bert文本分类

    千人学习 2020-05-30 09:41:43
    Bert作为目前自然语言处理领域最流行的技术之一,文本分类作为自然语言处理领域最常见的任务之一,Pytorch作为目前最流程的深度学习框架之一,三者结合在一起将会产生什么样的花火,本套课程基于Pytorch最新1.4版本...
  • 自然语言处理(NLP)的一般处理流程

    千次阅读 多人点赞 2019-08-20 19:36:10
    文章目录1. 什么是NLP2. NLP主要研究方向3. NLP的发展4. NLP任务的一般步骤5. 我的NLP启蒙读本6.... 1. 什么是NLP 自然语言处理 (Natural Language Processing) 是人工...**为了建设和完善语言模型,自然语言处理建立计...
  • 常见程序设计语言

    千次阅读 2018-11-11 21:36:47
    ALOGOL:严格的文档规则(使用BNF描述),是一个分程序结构的语言。每个分程序由BEGIN…END括起来,说明其范围及名字作用域。分程序结构的主要优点是可以非常有效地使用存储器。COBOL:面向事务处理的高级语言,将...
  • 整个过程一般可以概括为四部分,语料预处理->特征工程->模型训练->指标评价 第一部分:语料预处理 ...常见的数据清洗方式:人工去重、对齐、删除和标注等,或者规则提取内容、正则表达式匹配、根.
  • 程序设计语言语言程序处理程序基础 第一节.编译过程 第二节.文法定义 第三节.有限自动机与正规式 第四节.表达式 第五节.函数调用——传值与传址 第六节.程序设计语言的种类、特点及适用范围 第七章.程序...
  • 课程目标 学习完本门课程,您将对自然语言处理技术更深入的了解, 掌握基于深度学习情感分析方法;课程基于PyTorch主流框架实现,其中涉及深度学习主流框架LSTM模型以及自然语言处理的词向量;彻底掌握中文情感分析...
  • 计算机高级语言包括哪些?

    万次阅读 2021-06-28 05:55:40
    计算机高级语言包括:vb、vc、foxpro、...应用程序源代码一边由相应语言的解释器翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这...
  • 自然语言处理发展的四大阶段

    万次阅读 多人点赞 2022-05-10 10:53:01
    基于规则的方法   早在19世纪50年代,当计算机科学和人工智能刚刚兴起的时候,自然语言处理的研究领域就出现了用语言学家制定的规则来书写程序,从而完成语言理解和机器翻译等任务。那时候的程序包含很多条件语句...
  • 自然语言处理(NLP)是指用计算机来处理、理解以及运用人类语言,实现人机交流的目的。核心任务;重点应用领域;分析层面;NLP分析流程;以及语音识别、机器翻译简介
  • NLP(自然语言处理技术)

    千次阅读 2022-02-11 08:08:02
    一、需求:给一个excel存储的立场语字典,用自然语言处理技术(NLP)...简单来说,自然语言处理(NLP)就是开发能够理解人类语言的应用程序或服务。处理自然语言的关键是要让计算机“理解”自然语言,所以自然语言处理...
  • 导读:自然语言处理(Natural Language Processing,NLP)技术是与自然语言的计算机处理有关的所有技术的统称,其目的是使计算机能够理解和接受人类用自然语言输入的指...
  • - 自然语言处理 - 计算机视觉 - 机器人 - 通用智能 人工智能三大阶段 阶段 1——机器学习:智能系统使用一系列算法从经验中进行学习。 阶段 2——机器智能:机器使用的一系列从经验中进行学习的高级算法,...
  • 什么是自然语言处理? 自然语言处理(NLP)是指机器理解并解释人类写作、说话方式的能力。 NLP的目标是让计算机/机器在理解语言上像人类一样智能。最终目标是弥补人类交流(自然语言)和计算机理解(机器语言)之间...
  • 自然语言处理十大应用

    千次阅读 2020-07-16 12:56:14
    因为仅仅在短短几年的时间里,自然语言处理已经发展成为一种无人能想象的强大而影响力的东西。 为了了解自然语言处理的力量及其对我们生活的影响,我们需要看看它的应用。因此,我列出了自然语言处理的十大应用。 ...
  • 常见的十几种编程语言介绍

    千次阅读 2022-04-12 11:16:43
    作为一名小白,在刚接触编程的时候,常常不了解这些编程语言具体什么用途,或者说不知道应该学习哪种语言能实现自己想要从事的IT领域方向,于是,结合自身学习经验以及资料查找,我整理了一些常见的编程语言的介绍...
  • 自然语言处理 特征提取

    万次阅读 多人点赞 2019-04-10 14:44:02
    1. 基本文本处理技能 1.1 分词   在语言中,语义的基本单元是单词。在英语句子中已天然就已经分割成单词(空白符和标点符号隔开),而在汉语中字和字紧紧的连在一起。所以我们需要进行分词。分词很多种算法:...
  • 从零开始自然语言处理

    千人学习 2019-08-07 14:38:22
    并结合京东电商评论分类、豆瓣电影摘要提取、今日头条舆情挖掘、饿了么情感分析等过个案例,帮助大家熟悉自然语言处理工程师在工作中会接触到的常见应用的实施的基本实施流程,从0-1入门变成自然语言处理研发工程师...
  • 人工智能之自然语言处理技术总结与展望

    万次阅读 多人点赞 2022-02-20 20:44:48
    1. 背景 2. 预训练语言模型 3. Prompt Learning 4. 数据增强 5. 总结
  • 计算机执行用高级语言编写的程序主要两种途径解释和编译编译专.doc计算机执行用高级语言编写的程序主要两种途径:解释和编译 编译:专指由高级语言转换为低级语言编译和解释的区别: 是否产生目标程序 编译程序...
  • 自然语言处理(NLP)入门

    万次阅读 多人点赞 2017-11-21 20:32:26
    简单来说,自然语言处理(NLP)就是开发能够理解人类语言的应用程序或服务。这里讨论一些自然语言处理(NLP)的实际应用例子,如语音识别、语音翻译、理解完整的句子、理解匹配词的同义词,以及生成语法正确完整句子和...
  • 自然语言处理——文本分类概述

    万次阅读 多人点赞 2018-11-05 19:50:59
    内容提要分类概述分类流程数据采集爬虫技术页面处理文本预处理英文处理中文处理停用词去除文本表示特征选择 分类概述   分类(Classification)是指自动对数据进行标注。人们在日常生活中通过经验划分类别。但是要...
  • NLP,中文叫自然语言处理,简单来说,是一门让计算机理解、分析以及生成自然语言的学科,大概的研究过程是:研制出可以表示语言能力的模型——提出各种方法来不断提高语言模型的能力——根据语言模型来设计各种应用...
  • HanLP《自然语言处理入门》笔记--1.新手上路

    千次阅读 多人点赞 2020-02-04 21:33:11
    **自然语言处理**(Natural Language Processing,NLP)是一门融合了计算机科学、人工智能及语言学的交叉学科,它们的关系如下图所示。这门学科研究的是如何通过机器学习等技术,让计算机学会处理人类语言,乃至实现...
  • java语言有哪些优点

    千次阅读 2022-01-23 23:08:49
    本章介绍了java语言的优点,旨在帮助大家找到好工作!!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,633,336
精华内容 653,334
热门标签
关键字:

常见的语言处理程序有哪些