`
BucketLi
  • 浏览: 190094 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
5a76a659-f8e6-3bf3-b39a-8ae8f7a0f9d9
Percolator与分布...
浏览量:5551
社区版块
存档分类
最新评论

中文语义分析遐想

 
阅读更多
之前遐想的中文语义分析

1.中文短句结构简述
   主语:指明说的是什么人或什么事
   谓语:指明主语”是什么”或”怎么样”
   宾语:跟在动词后,表示动作,行为涉及到的人或事物.
   定语:名词前面连带成分,用来修饰,名词表示人或者事物性质,状态,数量,所属.
   状语:动词前面连带成分,表示动作的状态,方式,时间,处所或程度.
   补语:动词或者形容词后面的连带成分,表示动作的情况,结果,程度,趋向,时间,处所,数量,形状等.
   独立成分:不与其他成分产生结构关系,但意义上是全局必需,表示对事物的推测,估计,补充,感叹等语气.
   复指成分,用两个或者两个以上短语指同一个事物,作为同一个句子成分.
Ex:
[修饰全句的状语]+(定)主+[状]谓<动补>+(定)宾+<宾补>
[每当有外地人来],(好客的)天津人[总是][眉飞色舞地]谈<起了>(天津的)小吃<有多么地道>

2.分析目标
  我们只分析一句话有用没用,而不去分析这句话对目标对象是好是坏.比如一个评价,它从语义上来看对这个商品来说是相当差的评价,但是经过我们分析那么可能会被判定有实用性的评价,相反一条评价对于商品来说是一条极好的评价,也可能会被我们判定实用性差的评价.

3.总体步骤
  整句话用常见中文句子分隔符”,””.””!”分割,形成分句map<sentence, score>, key表示分句,score表示分句分数评定.
  检测sentence map短句相似性(暂时进行简单的短句字符重复匹配).80%以上句子相似判定 整条数据为 0(满分255)实用性.
  逐个分句进行分析.按照中文句子正常成分分析,按如下模式(或者更加多的模式)切割,填充到Map<classify,term>,classify表示词语的性质(主(subject),谓(predicate),宾(object),定(attribute),补(complement)),term表示词汇本身. 每个classify在整个分句的评分中有一定比重.
[修饰全句的状语]+(定)主+[状]谓<动补>+(定)宾+<宾补>
   逐一对termMap中的term进行鉴定. 5种词汇评价方式不一样:
    (1)主语主要判定与业务实体的关联性(比如评价主要按购买的物品,买家,卖家的关联性优先级高到低评定)
    (2)谓语主要判定对业务实体进行动作的关联性(比如评价主要按使用,观察等优先级由高到底评定).
    (3)定语和状语主要给谓语或者宾语分数进行放大作用
    (4)宾语主要判定与业务实体的关联性(比如评价主要按购买的物品以及物品相关的配件, 卖家用户信息,买家用户信息的关联性优先级高到低评定)
  将所有classify term的分数按比重相加(谓词和宾语需要乘上状语和定语的放大系数),成为一个短句的分数.填充到sentence map.
  所有sentence map中短句分数相加. 即为整个句子的评分.

4.判定核心原理
   顺序遍历每种句式,将原始文本的词汇在每种句式上的位置进行标识.也就是进行初步的词汇判定.
   其中一种句式如下
       [修饰全句的状语]+(定)主+[状]谓<动补>+(定)宾+<宾补>
   对[主,谓,宾,定,补]每种类型建立词库.上诉已经产生几种句式的词汇类型映射. 然后逐一验证每个句式类型映射的词是否在对应类型的词库中.
   最终选取匹配度最高的句式作为词汇映射结果.

5.整体结构
(1)SplitorTask:使用中文分词器进行切分.
输入 原始文本,
输出 CompleteSentence(List<PartSentence(part_sentence ,score)>,score),原始score为0

(2)SentenceDupCheckTask:对分句进行排重.
输入 CompleteSentence(List<PartSentence(part_sentence ,score)>,score)
输出 CompleteSentence(List<PartSentence(part_sentence ,score)>,score)

(3)TermAanalyerTask:进行分词 classify.
输入 CompleteSentence(List<PartSentence(part_sentence ,score)>,score)
输出 CompleteSentence(map< PartSentence,DetailTerm(term,classify,score)>,score)

(4)TermEvaluateTask:进行term的评分.
输入 CompleteSentence(map< PartSentence,DetailTerm(term,classify,score)>,score)
对象(score为0),
输出 CompleteSentence(map< PartSentence,DetailTerm(term,classify,score)>,score)
DetailTerm对象(已评分)

(5)SentenceEvaluateTask:进行综合评定
输入 CompleteSentence(map< PartSentence,DetailTerm(term,classify,score)>,score)
DetailTerm对象(已评分)
输出  CompleteSentence(map< PartSentence,DetailTerm(term,classify,score)>,score)
CompleteSentence对象(已评分)

  
分享到:
评论

相关推荐

    编译原理语法分析语义分析

    编译原理语法分析语义分析 语法分析(Syntax analysis或Parsing)和语法分析程序(Parser) 语法分析是编译过程的一个逻辑阶段。语法分析的任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,...

    使用c/c++实现语义分析器

    这次编译原理实验要求实现语义分析,但最近空闲时间比较少,只能快速过一遍基础知识硬着头皮写了。但由于之前我设计文法大多只是为了测试使用,所以文法很不规范,这直接导致了语义子程序十分难实现,所以要想实现一...

    实验三_编译原理语义分析_语义分析_sectionnef_

    实现了编译原理语义分析的相关内容,利用java语言编写

    语义分析程序的设计与实现

    语义分析程序的设计与实现 仅供参考。 语义分析 编译原理 北邮 大三 实验要求:编写语义分析程序,实现对算术表达式的类型检查和求值。要求所分析算术表达式由如下的文法产生。 实验要求:用自底向上的语法制导...

    语义分析(自定的语义规则)代码python实现

    语义分析(自定的语义规则)代码python实现。 说明: 1. mktable(previous):创建一张新的符号表,并返回指向新表的指针。参数previous指向先前创建的符号,放在新符号表的表头。 2. enter(table, name, type, offset...

    编译原理语义分析java实现 语义分析 歧义分析

    编译原理语义分析java实现 语义分析 歧义分析

    北邮编译原理语义分析程序

    大三上的编译原理语义分析程序,发了代码和相关文档说明 程序有注释

    编译原理语义分析实验报告.doc

    编译原理语义分析实验报告.doc

    Pascal语义分析器

    紧接我之前提交的Pascal词法和语法分析器,这里是实现了赋值、if-语句、for-语句的Pascal语法制导的翻译的语义分析器。

    信息内容安全实验二分词与语义分析.zip

    2、了解文本内容分析的原理与文本语义分析的方法; 3、掌握使用百度AI进行分词与语义分析。 结合百度AI语言处理基础技术https://ai.baidu.com/docs#/NLP-API/top文档,自选开发语言与开发SDK。完成词法分析,文章...

    pl0语法分析 词法分析 语义分析

    pl0语法分析 词法分析 语义分析 词法分析 语义分析

    编译原理实验语义分析源代码C语言实现

    编译原理实验 语义分析 源代码 C语言实现

    语义分析 语法分析 词法分析源代码

    编译原理 实验 课程设计语义分析 语法分析 词法分析源代码极为一体的源文件

    编译原理语义分析实验报告

    编译原理语义分析实验报告 如果需要配套的源代码可以在我上传的资源中找

    java语言编写词法、语法、语义分析器

    用java语言编写的词法分析器、语法分析器和语义分析器,已经内置了静态的基本语言,通过文件读入代码,上传供各位学习交流使用。

    编译原理语义分析程序

    完成语义分析 .. 非终结符号 D 实现定义两种类型int, real 变量的声明; .. 非终结符号 S 实现变量之间的*,+,: =(赋值运算) .. 两个关键字 int 和real .. 变量之间的*,+,/,: =(赋值) 运算只能使用声明过的变量...

    语义分析实验(java版)

    通过上机实习,加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法。 采用递归下降语法制导翻译法,对算术表达式、赋值语句进行语义分析并生成四元式序列。

    编译原理实验四-语义分析

    参照C语言版本,用Java写的语义分析程序,采用递归下降分析法,对算术表达式、赋值语句进行语义分析并生成四元式序列。在实验三递归下降分析法的基础上改的。 用Eclipse做的,有运行结果截图。

    编译原理中用javacc实现MiniC的词法分析、语法分析、语义分析

    用Javacc实现MiniC的词法分析、语法分析、语义分析。在词法分析部分根据单词的构词规则分类,输出&lt;单词种别,单词自身值&gt;二元式;在语法分析部分利用Javacc实现LL(1)文法,判断源语言是否符合MiniC的语法,如果不...

    学习TINY语言编译器中的语义分析器

    通过本次实验,进一步加深对语义分析的理解,学习编译器的语义分析器的编程方法。 二、实验任务: 仔细阅读并测试TINY语言编译器的语义分析器,特别是数据类型检查与推断方法与符号表建立方法。 三、实验内容: (1...

Global site tag (gtag.js) - Google Analytics