中华诗词论坛

 找回密码
 立即注册
查看: 394|回复: 4

[绝句鉴赏] 宋词句型的一种数字编码方案

[复制链接]
发表于 2022-3-1 07:04:57 | 显示全部楼层 |阅读模式


木刀:宋词句型的一种数字编码方案-1

    把句型数字化,是可以让计算机技术在诗词检测领域大有作为的一项基础性工作。这有助于让计算机在句型软件分析、声律检测方面一展身手,并有可能提供判别词牌差别的一种直观而便捷的途径。

    这里就提出一种方案。

    首先,我们只用一个数字来表示句子的长度。之所以能够这样作,是因为如果把叹格,即标示有顿号(、)的句子视为两句,则最长的句子长度不超过九个字。

    其次,我们把句子首尾的声律(即平仄)与数字对应起来。令平声对应数字0,仄声对应1。然后将句子首字的声律编码放在末字的前面,就得到了一个二进制的两位数。即:

    00(十进制0),表示平起平收。
    01(十进制1),表示平起仄收。
    10(十进制2),表示仄起平收。
    11(十进制3),表示仄起仄收。

    对于奇数长度的句子,这样的编码完全可以表示出标准律句的各种构成,并且没有冗余。

    下面举个例子,来看看如何从编码推导出具体的句子声律。

    对于编码73,从第一个数字,我们知道句子长度为七。从第二个数字3,也就是二进制11,我们知道这个句子的首字声律为仄声,末字也是仄声。由此,根据音步长度的规定,我们可以推断第一个音步是【仄仄】,根据律句规定中关于声律在何时反声的规定,可以推断第二个音步是【平平】。末字自然是仄声,这样,我们就有了如下的声律【仄仄平平??仄】。要使句子满足律句的规定,第五字的声律就必须是“跟”前面的声律相同,第六字就必须“转”声即反声,从而得到完整的句子声律为【仄仄平平跟仄仄】。这里不用惯常的表示法,在“跟”字处用“平”字表示,是为了让大家看清楚,“跟”字处是一个单字组,而惯常的表示法,对于“单字组在哪”的表达是不明晰的。单字组为什么要标出来?是因为单字组是不可宽限的。

    上面的音步双字组里,两个字的声律是相同的。然而,律句还有另外一种表达形式,就是双字组里,两个字的声律是不相同的。以上面的七字句为例,其另一种律句形式就是【平仄仄平跟平仄】。这种句式如何表达呢?我们可以在编码的后一个数字(即标示声律的那个数字编码)前,再加一个二进位,并令0,表示标准律句,1,表示非标准律句。与律绝不同,由于宋词中主旋律的存在,这样的标记是必不可少。

    这样,相对于编码为73的句子而言,其非标准律句(歌律)的编码就是77。

    附带说一句,在73的这个例子中,它有可能造成一种情况,就是句子在宽限后,并没有超出律句宽限的规定,但却出现四连平这样的不合律句音步长度要求的句子,即【仄仄平平跟平仄】。为了使这样句子不合理声律处得到改善,有人提出,用【仄仄平平转平仄】这样的构造来解决这个问题,并称其为准律句。这个所谓的准律句与77的表达【平仄仄平跟平仄】只差两个字位的声律不同,其中第一个字位,它是不计平仄的,可以不管它,另一个是单字组的字位,即位于第五个字的位置。可以看出,这个准律句是符合律句的跟转约定的,唯一的缺陷是第六字的位置上必须用平声字,否则就会出现三连仄。因此,77这个编码,更合适的赋予对象不是【平仄仄平跟平仄】,而是【仄仄平平转平仄】。

    对于偶数长度的句子,由于不存在单字组,所以,标准句句末的声律就完全无标记的必要,只需要有标记首字声律的标记就可以了。

    此外,为了能给【仄平平仄】这样的歌律标记,用与长度为奇数句子的同样办法,在声律编码前用一个二进位来标记,令0标记标准律句,1标记歌律。

    但是,我们看到,在宋词里,长度为偶数的句子还有【平仄平仄】、【仄平仄平】这样的连续同声句子存在。由于句子末字的声律不再需要加入编码,我们就可以将这个位置用来标记这种特殊的句子。可令正常句标记为0,后面这种特殊句可标记为1。如【仄仄平仄】可标记为43,而【仄仄平平】标记为42,【平平仄仄】为40,【平平仄平】为41。当然,特殊标记所标记的,是指最后一个音步与前音步同声。那么,其它位置上的音步与前音步同声该如何标记呢?所幸这样的情况不多,只有六言句,由于编码空间已经用完,我们可以把用作歌律的标记位置用来标记它。如,有一个六言句【仄仄平仄平平】,它实际是【仄仄-仄仄平平】,我们这样标记它的编码:长度为6,前一个编码就是6。首字仄声,编码1,在二进位的中间位,有特殊音步,二进位的后位编码1,特殊音步在前,二进位的前位编码也是1,最后编码是67。而【仄仄平平仄仄】,编码为62,【平仄仄平平仄】编码为66,【仄仄平平仄平】编码为63,【仄仄平仄平平】编码为67。相应的,【平平仄仄平平】编码为60,【仄平平仄仄平】编码为64,【平平仄仄平仄】编码为61,【平平仄平平仄】编码为65。在有特殊音步的句子里,是没有歌律表示的。

    然而,这种特殊句的处理办法并不好,因为它打乱了编码的规律性,同时,这个处理办法不能处理长度为奇数的特殊句。

    因为,词格里有一种句型叫拚格。前面提到的特殊句,也可以用拚格的形式来表述,即使将它们视为两个子句,分别表达后的编码也采用直接拼合的办法来表示。如前面提到的【平仄平仄】,它的表达方式就是2121了。



 楼主| 发表于 2022-3-1 07:05:35 | 显示全部楼层


(续)

    这里举个例子:

沁园春

仄仄平平;仄仄平平;仄平仄平。
领平仄平平;平平仄仄;平平仄仄;仄仄平平。
仄仄平平;平平仄仄,仄仄平平仄仄平。
平平仄、领平平仄仄;仄仄平平。

平平仄仄平平。领仄仄平平仄仄平。
领平仄平平;平平仄仄;平平仄仄;仄仄平平。
仄仄平平;平平仄仄,仄仄平平仄仄平。
平平仄、领平平仄仄;仄仄平平。

它的数字谱就是:

42;42;2222。
L42;41;41;42。
42;41,72。
31、L41;42。

60。L72。
L42;41;41;42。
42;41,72。
31、L41;42。

其中:
1、L:领字标志
2、逗号(,):句标志
3、句号(。):韵脚标志
4、顿号(、):叹格标志
5、分号(;):骈格标志
6、2222:拚格的直接拼合

关于其他句型的表示法,还有待于进一步的探讨。


 楼主| 发表于 2022-3-1 10:29:06 | 显示全部楼层
大眼怪 发表于 2022-3-1 07:49
做这种研究没什么意义。
首先,如果将词句律句化(抛开领字、衬字不论),一字句、二字句、三字句……,直 ...

它的作用,在开篇就说了。

比如,词牌的完备性。也就是说,还有没有一种词构是前人未做过的?这个问题虽然对常人无意义,但它对宋词理论是否完整系统的意义,却是显然的。如果不将句子量化,怎么从中找出判别标准呢?比如,有人说,我自创了一个词牌。但他有可能只是将原有的词牌稍微做了一点变换而已。

还有,不同名的词牌是否应归属为一个,也是需要句型量化才好寻找规律的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|中华诗词论坛

GMT+8, 2026-3-31 03:38

备案号:辽ICP备2022011476号  辽公网安备21130202000468号

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表