瞎扯 · 语义分析与理解

前言  

        最近不知道哪来的想法,突然拿到一个句子就开始分析它的结构和语义。然后连可行性什么的都没有考虑就开始研究需要定义哪些东西。。。再然后在思考的时候还感觉有点心得。

        只是,现在想想,好像没有什么实质性的内容。主要还是自己一开始就没有考虑好就开始着手研究,然后就像瞎扯一样做出了一点现在在我看来没有什么意义的东西。我实现不了,也不知道能否实现。如果有哪位大侠能够把它程序话,那想必也是极好的。只是我就没有那个能力了。

        鉴于我水平太差,只能把想法贴上来,后续的研究可能也不会进行了。如果我真的有能力把它程序话的话,我会坚持把这个想法形成一个体系。现在,就只是叹息了。。。

        废话好多。接下来就把我胡思乱想的内容贴上来,总共有三部分内容,每部分在做的时候想法也有些不同,因此对语句的语义解析程度也不同。大虾们看到下面的瞎扯(应该不会看到滴)请勿喷。。。

        Warning:下方纯属瞎扯,慎入。

Part 1

        从几个例子开始:

1.    今天       你             订阅   ...报纸   了吗?

       时间      主语                 事情 / 问题

      @today    自己      是不是订阅...了?/有没有订阅...? 

         @today ,@ask(@myself 有没有@do(订阅...))?

 

本例子属于咨询、提问类。

 

2.    你          觉得             他说的      是对      的吗?

      主语       表看法                    看法类问题

     @myself    看法/观点     问题主语    是不是对的 ?         

     @myself , @comment(@say(他), @state(对)) ? 

 

本例子属于看法、观点类。

 

3.   大四了 ,                                  旅行          还是         实习   ?   

       时间            主语缺省                 

   @time(大四)    默认为@myself   @do(旅行)   还是/or   @do(实习) ?  

            @time(大四) , @myself @do(旅行) 还是/or @do(实习) ?

 

本例子属于选择类。

 

  • 注:上面的例子的表示形式还不够规范!比如有必要定义@say(),@comment(),@ask()吗?还是将它们设计为一个大类里面的一个子类(继承),还是有更加规范统一的定义?需要好好考虑一下。

 

 

Part 2

        考虑到一般的事件都涉及到“时间”,“地点”,“人物”,“事情”,在语义分析上,一个事件能表达一个完整的语义。因此,我们至少需要设计以下几个函数/类/方法(系统预定义):

 

  • @time()     ------->  @now() ; @today()
  • @people()  ------->  @myself() ; @speaker()
  • @place()    ------->  @here() ; @everywhere()
  • @do()        ------->  @doNothing() ; @nowDoing()
  • @reason()  ------->  @noReason()
  • ......

        此外,还应该预定义一些常量:

  • UNKNOWN -------未知,适用于上面各种类型
  • ......

        还应该有一些常用的介词、否定词、疑问词、谓语动词等:

  • 还是/or
  • 是不是/is or not
  • 有没有/do @people() ... have?
  • 不是/not
  • 没有/do not have
  • 却、但是/but
  • 是/is
  • 有/has、have
  • 还、仍然/still
  • ......

        除此之外,还应该有什么?远不止现在所想到的。

 

Part 3

        再举几个例子分析一下:



        下面的例子说明了有必要定义@consensus()、@comment()来表达一类观点、判断。

 

1.               当局集团                          当年          是           吃卢布奶       长大的

                   主语                               时间      表判断                    

        @abstractPeople(当局集团)     @time(当年)        @do(吃卢布奶)--->@do(长大)  

  @consensus(@time(当年), @abstractPeople(当局集团) , @do(长大, @reason(@do(吃卢布奶))))

 

·         

    •  在@consensus()方法中,一般不包含表示判断的谓语动词,如:是/不是/有/没有
    •  @consensus()和@comment()方法的不同之处在于,@comment()表示自己需要就某个问题给出评论、观点,而  @consensus()则表示语句块中的主语的观点。

 

2.    如何     看待   台湾媒体    因    柯震东     被捕     事件   认为    中国法制     还    停留    在古代?

           提出疑问       主语                                                /      

      给出看法 @abstractPeople(台湾媒体)  @reason(@people(柯震东), @do(被捕)) @consensus(@abstractPeople(中国法制), still @do(停留) @abstractPlace(@time(古代)))  

   @comment(@abstractPeople(台湾媒体),@consensus(@abstractPeople(中国法制), still @do(停留, @abstractPlace(@time(古代))),@reason(@people(柯震东), @do(被捕))))

 

·         

    • 这里还可以考虑将被动句改为主动句,不过修改过程中涉及到主语的寻找问题,在句子中未必会给出主语,因此保留被动句也是可行的,只是机器始终不了解被动句改为主动句之后主语是谁,可能需要一个学习的过程,让机器认识、学习一些基本常识,比如“被捕”意味着一般是警察去逮捕...。
    • 这里出现了一个新的表达,@abstractPlace(@time())在这里应该表示一个特定的时空。是否需要增加一种新的方法(@space_time())还需要再讨论,目前来说,用抽象地点(@abstractPlace())嵌套时间(@time())可以表示常见的时空。
    • 这个句子设计到了@consensus()方法和@comment()方法,表现了两个方法的不同之处。

 

        由此,考虑增加一些方法:

  • @comment()
  • @consensus()
  • @people()      ------->  @abstractPeople()
  • @place()        ------->  @abstractPlace()

 

        这个东西有作用吗?现在想想,我真的没想到!不过看到这些内容还是有点鸡冻。不过大概过些时日就会觉得这个一无是处了。把这些瞎扯的内容搬上博客来(这还是我人生中的第一篇博客哦),希望不会被投诉!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值