精华内容
下载资源
问答
  • snownlp 中文语法分析

    千次阅读 2017-02-15 18:32:44
    自然语言处理并不是一般地研究自然语言, 而在于研制能有效地实现自然语言通信的计算机系统, 特别是其中的软件系统。因而它是计算机科学的一部分。 ''' s = SnowNLP(text) s.keywords(3) # [u'语言', u'自然', u'...

    github地址:https://github.com/isnowfy/snownlp

    安装 :

     

    pip install snownlp

     

     

     

    方法:

     

     

    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
    
    from . import normal
    from . import seg
    from . import tag
    from . import sentiment
    from .sim import bm25
    from .summary import textrank
    from .summary import words_merge
    
    
    class SnowNLP(object):
    
        def __init__(self, doc):
            self.doc = doc
            self.bm25 = bm25.BM25(doc)
    
        @property
        def words(self):
            return seg.seg(self.doc)
    
        @property
        def sentences(self):
            return normal.get_sentences(self.doc)
    
        @property
        def han(self):
            return normal.zh2hans(self.doc)
    
        @property
        def pinyin(self):
            return normal.get_pinyin(self.doc)
    
        @property
        def sentiments(self):
            return sentiment.classify(self.doc)
    
        @property
        def tags(self):
            words = self.words
            tags = tag.tag(words)
            return zip(words, tags)
    
        @property
        def tf(self):
            return self.bm25.f
    
        @property
        def idf(self):
            return self.bm25.idf
    
        def sim(self, doc):
            return self.bm25.simall(doc)
    
        def summary(self, limit=5):
            doc = []
            sents = self.sentences
            for sent in sents:
                words = seg.seg(sent)
                words = normal.filter_stop(words)
                doc.append(words)
            rank = textrank.TextRank(doc)
            rank.solve()
            ret = []
            for index in rank.top_index(limit):
                ret.append(sents[index])
            return ret
    
        def keywords(self, limit=5, merge=False):
            doc = []
            sents = self.sentences
            for sent in sents:
                words = seg.seg(sent)
                words = normal.filter_stop(words)
                doc.append(words)
            rank = textrank.KeywordTextRank(doc)
            rank.solve()
            ret = []
            for w in rank.top_index(limit):
                ret.append(w)
            if merge:
                wm = words_merge.SimpleMerge(self.doc, ret)
                return wm.merge()
            return ret
    

     

     

     

    方法介绍:

     

     

    print  "1_____分词结果#######"+json.dumps(s.words, encoding="UTF-8", ensure_ascii=False)  # [u'这个', u'东西', u'真心',
    # u'很', u'赞']
    
    print   "2_____关键字#######"+json.dumps(s.tags, encoding="UTF-8", ensure_ascii=False)
    #print s.tags # [(u'这个', u'r'), (u'东西', u'n'),
    # (u'真心', u'd'), (u'很', u'd'),
    # (u'赞', u'Vg')]
    
    print  "3_____积极/消极#######"+str(s.sentiments) # 0.9769663402895832 positive的概率
    
    print  "4_____文本相似度#######"+str(s.sim("你好"))
    print  "5_____摘要#######"+json.dumps(s.summary(), encoding="UTF-8", ensure_ascii=False)
    print  "6_____关键词#######"+' '.join(s.keywords())
    
    
    print "7_____繁体转简体中文#######"+s.han
    print "8_____汉语拼音#######"+json.dumps(s.pinyin, encoding="UTF-8", ensure_ascii=False)

     

     

     

    官方文档

     

    SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode。

    from snownlp import SnowNLP
    
    s = SnowNLP(u'这个东西真心很赞')
    
    s.words         # [u'这个', u'东西', u'真心',
                    #  u'很', u'赞']
    
    s.tags          # [(u'这个', u'r'), (u'东西', u'n'),
                    #  (u'真心', u'd'), (u'很', u'd'),
                    #  (u'赞', u'Vg')]
    
    s.sentiments    # 0.9769663402895832 positive的概率
    
    s.pinyin        # [u'zhe', u'ge', u'dong', u'xi',
                    #  u'zhen', u'xin', u'hen', u'zan']
    
    s = SnowNLP(u'「繁體字」「繁體中文」的叫法在臺灣亦很常見。')
    
    s.han           # u'「繁体字」「繁体中文」的叫法
                    # 在台湾亦很常见。'
    
    text = u'''
    自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。
    它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
    自然语言处理是一门融语言学、计算机科学、数学于一体的科学。
    因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,
    所以它与语言学的研究有着密切的联系,但又有重要的区别。
    自然语言处理并不是一般地研究自然语言,
    而在于研制能有效地实现自然语言通信的计算机系统,
    特别是其中的软件系统。因而它是计算机科学的一部分。
    '''
    
    s = SnowNLP(text)
    
    s.keywords(3)   # [u'语言', u'自然', u'计算机']
    
    s.summary(3)    # [u'因而它是计算机科学的一部分',
                    #  u'自然语言处理是一门融语言学、计算机科学、
                    #    数学于一体的科学',
                    #  u'自然语言处理是计算机科学领域与人工智能
                    #    领域中的一个重要方向']
    s.sentences
    
    s = SnowNLP([[u'这篇', u'文章'],
                 [u'那篇', u'论文'],
                 [u'这个']])
    s.tf
    s.idf
    s.sim([u'文章'])# [0.3756070762985226, 0, 0]

    Features

    • 中文分词(Character-Based Generative Model
    • 词性标注(TnT 3-gram 隐马)
    • 情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)
    • 文本分类(Naive Bayes)
    • 转换成拼音(Trie树实现的最大匹配)
    • 繁体转简体(Trie树实现的最大匹配)
    • 提取文本关键词(TextRank算法)
    • 提取文本摘要(TextRank算法)
    • tf,idf
    • Tokenization(分割成句子)
    • 文本相似(BM25
    • 支持python3(感谢erning

    Get It now

    $ pip install snownlp
    

    关于训练

    现在提供训练的包括分词,词性标注,情感分析,而且都提供了我用来训练的原始文件 以分词为例 分词在snownlp/seg目录下

    from snownlp import seg
    seg.train('data.txt')
    seg.save('seg.marshal')
    #from snownlp import tag
    #tag.train('199801.txt')
    #tag.save('tag.marshal')
    #from snownlp import sentiment
    #sentiment.train('neg.txt', 'pos.txt')
    #sentiment.save('sentiment.marshal')

    这样训练好的文件就存储为seg.marshal了,之后修改snownlp/seg/__init__.py里的data_path指向刚训练好的文件即可

     

     

     

    展开全文
  • Lemon语法分析器.docx

    2020-08-18 17:14:03
    sqlite的lemon语法解析器中文帮助文档。修正了翻译过程中的部分错误和不准确的地方。lemon语法解析器的代码是没有版权的,真正意义上的开源软件,且性能比bison快一些。
  • CUBRID的语法分析和检测

    千次阅读 2010-11-25 18:09:00
    CUBRID的语法分析和检测

    作者:王东

     

    就像是我们使用编译器编译c, cpp文件一样, 对查询语句的编译过程也分为了如下几部分:

    l  词法分析;

    l  语法分析;

    l  语义分析和检测;

    l  查询重写;

    l  生成查询计划;

    l  挑选和优化查询计划;

     

    这里主要是针对 前三步 进行说明。

     

    当我们输入一个SQL语句时, CUBRID的查询编译器会按照类似代码编译器的方式进行工作。

    1.         首先进行词法分析,词法分析的目标是将SQL语句进行扫描并分割成为一系列记号(Token),在CUBRID,是使用Flex生成的文件进行词法分析的。Flex(fast lexical analyser generator)是一个自动的词法分析器生成器(参考附1)。在CUBRID中,有一个描述SQL词法的.l 文件,该文件描述了SQL语句中用的词汇。通过使用Flex,并输入.l 文件,将生成对应的可以用的编译的.c文件。词法分析的结果产生了各种记号(Token), 例如:关键字,标识符,字符串等等;

    2.         接下来进行语法分析。语法分析是将词法分析产生的记号(Token)按照语法要求生成语法树(Syntax Tree)CUBRID 中采用bison来进行语法分析(参考附录2)。类似于编译器中的表达式一样,不同的SQL语句,将被看作为不同表达式(Expression)CUBRID中有一个描述语法的.y文件,该文件中包含表达式树是如何组织起来的代码。通过bison,并输入.y文件,生成对应可以用于编译的.c.h文件。这样SQL就被组织成语法树的结构了。

    3.         接下来就是对语法树进行语义检测(Semantic analysis and check)。因为语法分析中只是完成了对表达式语法层面的分析,并没有对真正这条语句的内容是否合法进行检测。 CUBRID 里面的Semantic check, 是对生成的语法树进行遍历和检查。由于树的节点不同,对每个节点的遍历算法也是不同的。语义检测的结果是对不满足输入的SQL语句进行过滤(提示报错),对语法树进行适当的扩充和删减,便与接下来的生成查询计划等工作。

     

    接下来就进行查询重写,生成查询计划其他了操作。这里暂且不提。

    下面就这三部分给出CUBRID中实现的三个例子。

     

    例子1  CUBRID词法分析

    .l 文件是由正则表达式和c语法组成的。

    //定义段代码

    %{

    //定义include文件,宏,辅助函数,flex会跳过对这些的处理。

    #include "csql_grammar.h"

    #include "parse_tree.h"

    #define CSQL_MAXNAME 256

    static int parser_yyinput_single_line(char* buff, int max_size);

     

    extern int yyline;

    //……

    %}

    // 词法规则段代码

    %%

    [sS][eE][lL][eE][cC][tT]    { begin_token(yytext);   return SELECT; }

    ([a-zA-Z_#]|(/xa1[/xa2-/xee/xf3-/xfe])|([/xa2-/xfe][/xa1-/xfe])|(/x8e[/xa1-/xfe]))([a-zA-Z_#0-9]|(/xa1[/xa2-/xfe])|([/xa2-/xfe][/xa1-/xfe])|(/x8e[/xa1-/xfe]))*

    { begin_token(yytext);

                         if (strlen(yytext) >= 254)

                             yytext[254] = 0;

                         csql_yylval.cptr = pt_makename(yytext);

                         return IdName;

                      }

    %%

    通过编辑.l文件,我们可以定义我们感兴趣的token

    生成的c代码,如下:

    case 338:

    YY_RULE_SETUP

    #line 537 "../../src/parser/csql_lexer.l"

    { begin_token(yytext);   return SELECT; }

        YY_BREAK

     

     

    例子2 CUBRID语法分析

    .y 文件定义语法树表达方式, 其中包含了Token, rule type, rule的组织方式. 例子中,select 语句的节点中就包含很多内容。

     

    /* Token define */

    /*{{{*/

    %token SELECT

    %token IdName

    /* define rule type (node) */

    /*{{{*/

    %type <node> stmt_

    %type <node> create_stmt

    %type <node> select_stmt

     

    stmt_

        : create_stmt

           { $$ = $1; }

        | select_stmt

           { $$ = $1; }

        ;

     

    select_stmt

        : SELECT                     /* $1 */

           {{                       /* $2 发现是select语句,就创建select节点*/

               PT_NODE *node = parser_new_node (this_parser, PT_SELECT);

               

           DBG_PRINT}}

       

        select_list                  /* $5 */

           {{                       /* $6 创建select 选项的列表节点*/

               PT_NODE *node = parser_top_select_stmt_node ();

               if (node)

                 {

                   node->info.query.q.select.list = $5;

                 }

           DBG_PRINT}}

        opt_select_param_list       /* $7 */

        FROM                         /* $8 */

       

        opt_where_clause             /* $11 where语句对应的节点*/

       

        opt_groupby_clause           /* $14 group语句对应的节点*/

        opt_having_clause            /* $16 having语句对应的节点*/

       

           {{

               if (node)

                 {

                   node->info.query.into_list = $7;    /* param_list */

                   node->info.query.q.select.where = $11;

                   node->info.query.q.select.group_by = $14;

                   node->info.query.q.select.having = $16;

                 

                 }

               $$ = node;

    DBG_PRINT}}

        ;

    }}

     

    opt_where_clause

        : /* empty */

           {{

               $$ = NULL;

           DBG_PRINT}}

        | WHERE search_condition 

           {{

               parser_restore_ic ();

               parser_restore_sysc ();

               parser_restore_prc ();

               parser_restore_cbrc ();

               $$ = $2;

           DBG_PRINT}}

        ;

     

    看到这里大家应该明白了,这种类似递归的方式传递构造语法树的过程。最终构建的是一个以select节点为根节点的语法树。其中包含了q.select.list,wheregroup_by,having 等节点。

     

     

    例子3 CUBRID语义检测

    语法检测阶段拿到的就是一个语法树的指针。在CUBRID中这个语法树就是一个PT_NODE。该结构是包含了许多类型的节点,例如创建类型,select类型等等。PT_NODE 的类型和info 是匹配的。例如:如果Type = PT_CREATE_ENTITY, Info 则是PT_CREATE_ENITITY_INFO结构体。

    其中PT_NODE类型的节点用于记录节点的类型,PT_XXX_INFO的节点是用于存储信息,里面可以包含数据,也可以再包含PT_NODE节点。

    这样整个语法树就递归起来。每个节点本身是PT_NODE, 每个节点的Info 里面可以包含PT_NODE

    最终整个语法树的叶子节点必然是一个PT_NODE, 它的Info中不包含任何PT_NODEPT_NODE节点。

    PT_NODE 在内存中的布局就类似如下:

     

     

    简单的语义检测 可以直接操作这个语法树,例如CUBRIDpartition table by Hash, 其中partition的个数不能超过1024个。

     

    复杂的语言检测有时候需要遍历语法树,可以采用递归的深度优先算法进行遍历。

    CUBRID的遍历语法树的算法的主要逻辑是:

    1 刚进入节点时:处理 进入前回调函数:

    2 根据PT_NODE 调用自己的节点对应的 遍历函数;

        通常遍历函数,就是依次遍历该节点包含的子节点,由于节点不同,每个节点的子节点个数都不一样。

        根据需要遍历Next节点等等;

        3 离开节点时: 处理 离开前回调函数

     

    例如:检测遍历PT_NODE中提到的table都是必须数据库中存在的。可以遍历语法树,关注type=PT_SPEC的节点即可。

     

    到此为止,相信大家已经明白CUBRID语法分析和检测的过程了。如果感兴趣的,请查看我们的开源项目CUBRID源代码(参考1).

     

     

    附录:

    1:什么是Flex?

    Flex是一个生成扫描器的工具,能够识别文本中的词法模式。Flex读入给定的输入文件,该文件为需要生成的扫描器的描述。此描述叫做 规则,由正则表达式和 C代码对组成。当运行可执行文件的时候,它分析输入文件,为每一个正则表达式寻找匹配。当发现一个匹配时,它执行与此正则表达式相关的C代码。Flex 不是GNU工程,但是GNUFlex 写了手册。

     

    2: 什么是bison?

    GNU bison 是属于 GNU 项目的一个语法分析器生成器。Bison 把一个关于“向前查看 从左到右 最右”(LALR) 上下文无关文法的描述转化成可以分析该文法的 C C++ 程序。它也可以为二义文法生成 “通用的 从左到右 最右” (GLR)语法分析器。

    Bison 基本上与 Yacc 兼容,并且在 Yacc 之上进行了改进。 此软件的源代码是可自由获得的,在 GPL 下发布。

     

    Flex Bison 常常结合一起使用。

     

    参考:

    1.         CUBRID 官方站点: http://www.cubrid.org

    2.         Flex 介绍: http://en.wikipedia.org/wiki/Flex_lexical_analyser

    3.         Yacc 介绍: http://zh.wikipedia.org/zh-cn/Yacc

    4.         GUN 项目里bison主页: http://www.gnu.org/software/bison/

    5.         Bison中文手册: http://blog.csdn.net/sirouni2003/archive/2005/06/22/400672.aspx

    6.         FlexBison入门: http://code.google.com/p/msys-cn/wiki/ChapterFour

     

    展开全文
  • 编译原理-第三章:语法分析-1概述上下文无关文法文法的二义性 概述 教师:张淑艳(郑州大学软件学院) 整理:陈政材 本章主要讲的是编译器的第二阶段,语法分析语法分析中最重要的是文法,主要讨论的是上下文...

    编译原理-第三章:语法分析-1

    概述

    本章主要讲的是编译器的第二阶段,语法分析。语法分析中最重要的是文法,主要讨论的是上下文无关无法。

    上下文无关文法

    词法分析器和语法分析器之间的关系
    在这里插入图片描述

    在这里插入图片描述
    例子:
    在这里插入图片描述
    在这里插入图片描述

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

    在这里插入图片描述
    以下是两个推导过程:

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

    在这里插入图片描述
    简单点理解,推导就是将非终结符替换成终结符,规约就是反过来。

    在这里插入图片描述

    以中文为例吧,一个句型被定义为 主语 谓语 宾语。那么、我 是 学生 就是一个符合该句型的句子。好多个句子(我是学生,我是帅哥,我是假面骑士)组合起来的就是语言

    在这里插入图片描述
    在这里插入图片描述
    让我们看另一个例子:

    在这里插入图片描述

    故此有两个结论:
    在这里插入图片描述

    文法的二义性

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

    在这里插入图片描述

    如何消除二义性:
    以层次的角度来看待表达式(优先级和结合性)
    在这里插入图片描述

    展开全文
  • 它经常和自由软件Bison语法分析器生成器 一起使用。Flex 最初由 Vern Paxson 于 1987 年用C语言写成。语法分析生成器 JavaCCJavaCC(Java Compiler Compiler) 是一个用JAVA开发的最受欢迎的语法分...

    一、语法词法生成器

    Flex 语法扫描器生成器

    flex (fast lexical analyser generator) 是Lex的另一个替代品。它经常和自由软件Bison语法分析器生成器 一起使用。Flex 最初由 Vern Paxson 于 1987 年用C语言写成。

    语法分析生成器 JavaCC

    JavaCC(Java Compiler Compiler) 是一个用JAVA开发的最受欢迎的语法分析生成器。这个分析生成器工具可以读取上下文无关且有着特殊意义的语法并把它转换成可以识别且匹配该语法的JAVA程序。它还提供JJTree等工具来...

    语法分析器生成工具 YACC

    这是一个经典的生成语法分析器的工具,大学的《编译原理》课程里介绍过。

    词法分析工具 ANTLR

    ANTLR(ANother Tool for Language Recognition)它是Java开发的词法分析工具,它可以接受词文法语言描述,并能产生识别这些语言的语句的程序。作为翻译程序的一部分,你可以使用简单的操 作符和动作来参数化你的文法...

    解析器生成器 Bison

    GNU bison是一个自由软件,用于自动生成语法分析器程序,实际上可用于所有常见的操作系统。Bison把LALR形式的上下文无关文法描述转换为可做语法分析的C或C++程序。在新近版本中,Bison增加了对GLR语法分析算法的支...

    词法分析器生成工具 Lex

    这是一个经典的生成词法分析器的工具

    语法分析器生成工具 Berkeley Yacc

    Berkeley Yacc (byacc) 是一个高质量的 yacc 变种,其目的是为了避免依赖某个特定的编译器。

    语法分析生成器 JFlex

    JFlex是一个Java的词法/语法分析生成器。

    JavaScript解析器 Jison

    JavaScript解析器,Coffee就是使用Jison解析的。Jison 将一个上下文无关语法作为输入,输出对应的JavaScript代码,类似Yacc。

    词法/语法分析框架 chrysanthemum

    chrysanthemum (中文名“菊花”)是一个由C++写成的小巧灵活、高度可伸缩、模块化、高性能的词法/语法分析框架。 chrysanthemum 是一个纯模板库,包含头文件即可使用,且无任何第三方依赖。 chrysanthemum 不同于...

    语法分析器生成工具 BYACC/J

    BYACC/J 是扩展和兼容自 Berkeley v 1.8 YACC 的Java的语法分析器生成工具。Standard YACC takes a YACC source file, and generates one or more C files from it, which if compiled properly, will produce a...

    编译器生成工具 SableCC

    SableCC是一个用来生成编译器和分析器的面向对象的框架。这个框架是基于两个基本的设计决策:首先是利用面向对象技术自动构建精确的典型的抽象语法树。第二,这个框架使用经过扩展的Visitor访问者模式来生成tree-...

    词法分析器生成工具 Quex

    生成词法分析器的工具,支持多种文件编码(ASCII, UTF8, UTF16, RUSCII, ...),能够生成 Lex/Flex 风格的表述。

    语法解析器生成器 Styx

    Styx 是一个语法扫描器和解析器的生成器,主要为了解决传统的 lex/yacc 的一个不足。 It has unique features like automatic derivation of depth grammar, production of the derivation tree including it's ...

    词法分析工具 ANTLR Ruby

    ANTLR Ruby 是 Java 项目 ANTLR 的 Ruby 移植版本。更多ANTLR Ruby信息

    解析器生成器 LLnextgen

    LLnextgen 部分实现了 LLgen 扩展-LL(1) 解析器生成器,是 Amsterdam Compiler Kit 的一部分。使用类 EBNF 的语法描述以及使用 C 作为输入的联合语义行为,并生成 C 代码。生成的代码是严格的 ANSI C,可使用各种...

    JavaCC Maven Plugin

    JavaCC Maven Plugin 是 Maven 用来执行 JavaCC 语法分析处理的插件。

    DSL语法解析器生成器 dropincc.java

    dropincc.java 是 一个简单、好用的语法解析器生成器; 专为java语言环境下,实施DSL方案而设计; 特点:使用纯java语法(Fluent Interface)制定用户的词法、语法规则;jdk1.6 compiler API动态编译为字节码;自动...

    语法解析生成器 YYAST

    YYAST 是一个开发库,通过添加抽象语法树 AST 生成器来完成 Lex 和 Yacc 的功能。其生成的 AST 可轻松被编译器解析。

    Python 语法解析程序 pyC11

    pyC11 是一个 Python 些的用来解析 C 程序语法的解析程序,遵循 ISO/IEC 9899:2011 标准,使用 pyPEG 编写,支持 Python 2.7 and 3.x.

    词法分析器生成器 JLex

    JLex 是一个词法分析器生成器,用Java编写,用于 Java 程序。

    语法扫描器生成器 GPLEX

    GPLEX 是一个语法扫描器生成器,提供了词法扫描,使用 C# 2.0 或者更高版本编写。输入语言类似原先的 LEX 规范语言,允许 21 位的 Unicode 。

    词法分析和语法分析算法小工具 alpaca

    alpaca是alpaca-llama工具的一部分,主要应用在词法分析算法上面,将描述词法的正则表达式集转换成为相应的DFA,然后采用DOT格式输出。

    CUP 解析器生成器 JavaCUP

    JavaCUP 是 Java 语言实现的 CUP 解析器生成器。 示例代码: // Simple Example Scanner Class // scanner.java import java_cup.runtime.*; import java.io.*; //import sym; public class scanner implements...

    ruby2ruby

    ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。

    Java 的解析器代码生成器 AustenX

    AustenX 是一个 Java 的解析器代码生成器,基于解析表达式语法框架构建解释器。

    词法生成工具 Alex

    Alex 是一个用 Haskell 编写的词法生成工具,类似 C/C++ 的 lex 和 flex。

    Objective-C词法分析工具 Parsekit

    Parsekit是一个Mac OS X的框架,基于Objective-C提供类似ANTLR的功能.可以对Objective-C的语法进行词法分析. 以下软件已经使用Parsekit开发: Base: Mac SQLite 工具 TaskPaper for iPhone: 简单的TO-DO应用 Worqsh...

    展开全文
  • 在windows操作系统下只要双击运行软件根目录下的lexparser-gui.bat文件(linux下为lexparser-gui.sh文件) 点击“Load File”导入需要解析文件也可以直接在上面大的输入框中输入要解析内容, 在“Language...
  • 编译原理的作业,写个PASCAL简单语法的编译器,主要就是词法分析器和句法分析器。时间紧,任务重,从第一次上机到验收作业就一周时间。那题目还不在我的课本上,是在旧版的中文版上,反正我手头没那本书,得向同学借...
  • Pecker Scanner首先是基于语法分析,剥离token、注释、字符串、变量、语言结构,再进行php语法检测,提取恶意代码的扫描工具,来解决漏报问题。同时支持服务器云判断,尽量避免误报问题。比如 exec ($cfe,$res) 在...
  • MATLAB R2018b for Mac(数学分析软件)附matlab激活密钥 matlab r2018b mac 破解版是一款强大的数学分析软件,MATLAB R2018b集成数学计算,可视化和语言,为技术计算,可视化和编程提供灵活的工作环境,您可以使用...
  • spss数据分析软件

    千次阅读 2019-09-07 10:59:05
    笔记里相关spss的,筛选到三篇:在线spss分析软件、问卷调查、问卷分析利器:多元对应分析,前两篇自己整理的,最后一篇copy的介绍及使用,也是我回顾起spss的源泉,安利给大家: 问卷分析利器:多元对应分析 。 ...
  • HTTP网页URL链接的语法格式最详细的分析与介绍

    万次阅读 多人点赞 2018-09-27 16:00:30
    URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息 URL,全称是UniformResourceLocator, 中文叫统一资源定位符,是互联网上用来标识某一处资源的地址。以下面这个URL为例,介绍下普通URL的各部分组成: ...
  • 论文介绍论文名称:基于Transformer增强架构的中文语法纠错论文作者:王辰成,杨麟儿,王莹莹,杜永萍,杨尔弘发表于:第十八届中国计算语言学大会(CCL 2019)-ONE-简介语法...
  • 中文语法纠错论文解读(一)

    万次阅读 2018-10-28 20:33:45
    1. 中文语法纠错的动机 学汉语的人越来越多,帮助学生学习,缓解老师压力。 2. 处理的任务 语病识别(识别句子是否有错误)、语病分类(识别具体的错误类型)、语病定位(识别错误的位置)、语病修正...
  • Nmap扫描软件分析

    千次阅读 2017-12-27 00:46:44
    Nmap扫描软件分析[摘要] Nmap英文全称NetWork Mapper,中文为“网络映射器”,是一款开源的网络探测和安全审核的工具,它的设计目标是快速地扫描大型的网络与主机。Nmap最早是Linux下的网络扫描和嗅探工具包,后来...
  • (2)黑盒测试:又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或...
  • 7.6.1 SPSS软件概述 1 SPSS版本与安装 2 SPSS界面 3 SPSS特点 4 SPSS数据 7.6.2 SPSS与方差分析 1 单因素方差分析 2 双因素方差分析 7.6.3 SPSS与回归分析 SPSS回归分析过程 牙膏价格问题的回归分析
  • 搜索语法

    千次阅读 2009-04-12 17:18:00
    每个搜索引擎都有自己的高级搜索语法,通过高级搜索语法你可以方便快捷的查找你想要搜索的内容。 目录 一、 Google谷歌搜索高级语法 1. 减除无关资料 (-) 2. 英文短语搜索 (””) 3. 指定网域 4. 查找特定文件 5...
  • 软件静态分析以及工具Klocwork介绍

    千次阅读 2018-09-11 14:55:51
    软件静态分析以及工具Klocwork介绍 1. 软件静态分析 软件静态分析无需执行程序代码,就能发现代码的质量和安全问题,这种技术能够把缺陷的发现和解决时间向前推移至编码阶段。从而显著降低缺陷解决的成本,提高...
  • 中文句法分析及LTP使用

    千次阅读 2019-10-17 16:56:54
    一、中文句法分析内容概述 二、基于Python的LTP句法分析 1、LTP基础 2、pyltp安装 3、pyltp实现句法分析 三、基于C++的LTP句法分析 1、LTP源码和模型 2、LTP的C++源码编译及测试 3、在Linux下使用动态库生成...
  • Smali语法详解

    万次阅读 多人点赞 2015-10-08 17:48:36
    每个smali文件都由若干条语句组成,所有的语句都遵循着一套语法规则。在smali 文件的头3 行描述了当前类的一些信息,格式如下: [java] view plaincopy .class [ 修饰关键字] .super .source  ...
  • 作者介绍 欧阳辰,超过15年的软件开发和设计经验,目前就职于小米公司,负责小米广告平台的架构研发。曾为微软公司工作10年,担任高级软件开发主管。...在大数据盛行之时,各种大数据分析软件如雨后
  • SQL语法 Access

    千次阅读 2016-06-14 11:58:12
    SQL语法 Access ASP专栏 2009-08-21 09:45 阅读1651 评论0 字号: 大大 中中 小小 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句 一、 简单查询  简单的Transact-SQL查询只包括选择列表、...
  • RTF 语法2

    千次阅读 2013-04-04 16:30:40
    摘要:本文对RTF文件格式进行分析研究,对RTF文件结构及特性进行了阐述,并分别列举了几个实用性的例子进行详细分析,最终通过VB程序代码实现了一个RTF书写器(不具有所见即所得特性)。本文对软件开发人员及RTF文
  • 高级搜索语法

    2009-12-28 14:23:00
    # 高级搜索语法 * 把搜索范围限定在网页标题中——intitle 网页标题通常是对网页内容提纲挈领式的归纳。把查询内容范围限定在网页标题中,有时能获得良好的效果。使用的方式,是把查询内容中,特别关键的部分,用...
  • Makefile语法学习

    万次阅读 2012-04-14 15:49:17
    转自陈皓 (CSDN) 概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都 ...为你做了这个工作,但我觉得要作一个好的和 professional的程序员...特别在Unix下的软件编译,你
  • 高级搜索语法

    2014-12-01 01:12:45
     精确匹配——双引号和书名号 如果输入的查询词很长,百度在经过分析后,给出的搜索结果中的查询词,可能是拆分的。如果您对这种情况不满意,可以尝试让百度不拆分查询词。给查询词加上双引号,就可以达到这种效果...
  • 语法提示原则: <!--StartFragment-->1、忽略空白 2、注释: <!-- --> 3、指令: <? ?><br />4、特殊字符: < > ' " & 替代: < > ' " & 5、二进制数据: <![CDATA [...]...
  • 问:软件测试的原则? 答:https://blog.csdn.net/weixin_30363263/article/details/102986878 问:你在测试中发现了一个 bug ,但是开发经理认为这不是一个 bug ,你应该怎样解决。 1、将问题提交到缺陷...
  • SVG文档语法结构

    万次阅读 2011-04-25 23:18:00
    SVG 语法结构说明 文档说明 版本 日期 作者 说明 1.0 2006.1.29 很少想起你 第 1 页 共 23 页 SVG 语法结构说明 SVG语法结构 一、SVG文档结构...
  • 安全技术大系 0day安全:软件漏洞分析技术(第2版) 王清主编ISBN978-7-121-13396-1 2011年6月出版定价:85.00元16开780页内 容 简 介本书分为5篇33章,系统、全面地介绍了Windows平台缓冲区溢出漏洞的分析、检测...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,742
精华内容 20,296
关键字:

中文语法分析软件