首页 理论教育 使用正则表达式检索应注意的问题

使用正则表达式检索应注意的问题

时间:2022-04-07 理论教育 版权反馈
【摘要】:以上的表达式都是针对有标注的语料检索编写的。正则表达式的使用看上去有些烦琐,但只要肯花点时间熟悉元字符表达的意义,使用这种检索方式有助于提高检索的准确性和效率,提升语言研究的质量。

以上的表达式都是针对有标注的语料检索编写的。如果汉语里没有词性标注,只是进行了分词,或者在字符间加了空格(如“我们的家乡。”),检索时可以将表达词性的“/[\x00-\xff]”删去,或者使用“/*”(意为有没有赋码皆可)即可。

3.5.1 xml格式编码语料的检索

时下有很多语料库所存储的文本为xml格式,可以使用多种软件(Xaira, Word Smith)实现检索,当然也可以在Antconc中使用正则表达式检索。一般说来,加载了xml文本后,我们还可以使用上面的表达式提取叠词、四字格等。但要检索词串,则需要根据文件的格式调整表达式的写法。

xml格式的语料文本通常使用下面的垂直排列格式:

(21)<wpos="n">东西德</w>

<wpos="v">合璧</w>

<wpos="c">但</w>

<wpos="d">仍</w>

<wpos="i">貌合神离</w></s></a></p>

这就需要使用较完整的表达形式。如,一个词应该表达为“<wpos="[\x00-\xff]+">\S+</w>”。词串之间则要使用反映垂直排列特点的表达式“\n\s{1,}”,表示前一词之后为回车且在新的一行跨过多于一个的空格后出现与之组合的词。所以,

(22)<wpos="c">\S+</w>\n\s{1,}<wpos="d">\S+</w>

可以检索到“但仍”、“而不”的使用形式。而使用下面的表达式:

(23)<wpos="r">\S+</w>\n\s{1,}(<wpos="[\x00-\xff]+">\S+</w>\n\s{1,}){1,4}<wpos="u">\S+</w>\n\s{1,}<wpos="n">\S+</w>\n\s{1,}

就能实现有间隔的检索,如“代词+任意词(1~4个)+助词+名词”。能检索到类似“他们使用过的杯子”、“你所喜欢的东西”一类的表达形式。

使用xml文件时要注意,xml文件最好以utf-8编码存储。在已知的各种编码方式里,这种编码对于汉语检索最可靠。

3.5.2 赋码标识的一致性

使用正则表达式时,赋码方式不同,表达式使用的符号也不同,除了上文所说的/和xml编码外,语料库标注还常用“_”(如tables_NNS)。这时要选择相应的符号,如对应tables_NNS的元字符表达可以是“[\x00-\xff]_[\x00-xff]+”,或者“\S+_[\x00-xff]+”。

正则表达式的检索功能有些使用通配符也能做到,但有些则是通配符检索无法实现的。实际检索时发现,在词汇层面,汉语的叠词以及隔词重复的精确检索只能使用正则表达式;在句子层面,正则表达式能使准确的句段长度检索和严格的句段内部结构检索成为可能。

正则表达式的使用看上去有些烦琐,但只要肯花点时间熟悉元字符表达的意义,使用这种检索方式有助于提高检索的准确性和效率,提升语言研究的质量。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈