|
木刀:宋词句型的一种数字编码方案
把句型数字化,是可以让计算机技术在诗词检测领域大有作为的一项基础性工作。这有助于让计算机在句型软件分析、声律检测方面一展身手,并有可能提供判别词牌差别的一种直观而便捷的途径。
这里就提出一种方案。
首先,我们只用一个数字来表示句子的长度。之所以能够这样作,是因为如果把叹格,即标示有顿号(、)的句子视为两句,则最长的句子长度不超过九个字。
其次,我们把句子首尾的声律(即平仄)与数字对应起来。令平声对应数字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了。
这里举个例子:
沁园春
仄仄平平;仄仄平平;仄平仄平。
领平仄平平;平平仄仄;平平仄仄;仄仄平平。
仄仄平平;平平仄仄,仄仄平平仄仄平。
平平仄、领平平仄仄;仄仄平平。
平平仄仄平平。领仄仄平平仄仄平。
领平仄平平;平平仄仄;平平仄仄;仄仄平平。
仄仄平平;平平仄仄,仄仄平平仄仄平。
平平仄、领平平仄仄;仄仄平平。
它的数字谱就是:
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:拚格的直接拼合
关于其他句型的表示法,还有待于进一步的探讨。
|
|