PowerGREP汉化补丁是一款功能强大的正则表达式应用软件汉化补丁,无私奉献给努力向上不断进取的人。正则表达式一直是块难肯的硬骨头。有了这些工具 使你很快学会正则表达式。
软件说明
PowerGREP是基于正则表达式的多功能强大的文本处理和搜索工具。正则表达式是描述一段文本形式的模式。例如,正则表达式可以匹配日期或电子邮件地址。任何日期或任何电子邮件地址,无需指定实际日期或实际电子邮件地址。您的搜索模式可以是特定的,也可以是一般的。这使PowerGREP比只能找到单词和短语的常规搜索工具(PowerGREP也可以)更加灵活。使用PowerGREP,您可以使用一个或多个此类正则表达式来获取文件列表,文件中的搜索匹配列表,文件搜索和替换,重命名文件,合并文件,分割文件等。使用可帮助用户快速搜索您PC或网络上的大量文件,包括文本和二进制文件,压缩存档,MS Word文档,Excel电子表格,PDF文件,OpenOffice文件等。使用强大的文本模式(正则表达式)查找您想要的信息。 指定你想要的形式,而不是字面文本。 搜索并替换一个或多个正则表达式,以全面维护网站,源代码,报告等。从日志文件和大型数据集中提取统计信息和知识。
基本功能
1.1 信息检索
信息检索是语料库研究中最常见的手段之一。利用PowerGREP进行检索,其检索方法主要为文本检索和正则表达式检索,前者比较直观、易学,但功能比较单一,可用于一些简单的检索;而后者的掌握需要一定时间的学习,但功能强大,可用于大型的检索。
选择主界面(图1)中的动作标签(Action),在定义操作类型(Action type)栏的下拉菜单中选择显示搜索匹配(Display search matches),并在定义搜索类型(Search type)栏的下拉菜单中选择普通文本(Literal text)或正则表达式。搜索类型默认为正则表达式,如果搜索词为普通检索词,软件会自动识别。不同的操作类型与文本类型的确定会显示不同的选项供人们选择,如区别大小写(Case sensitivity search)、大小写自适应(Adapt case of replacement text)等。在搜索框中输入检索词或正则表达式,点击搜索即可完成检索。
2.2 编辑与替换
在进行语料分析时,研究者们有时需要对语料库中的语料或标注重新进行加工,如删除、替换或添加标注等。我们可以使用PowerGREP的编辑与替换功能来批量完成这些任务。只要在定义操作类型栏的下拉菜单中选择搜索与替换(Search and replace),并在定义搜索类型栏的下拉菜单中选择普通文本或正则表达式,然后在搜索框与替换框上分别输入被替换词与替换词,点击替换按钮即可完成文本信息的替换。其编辑功能主要通过内置的编辑器(Editor)实现,用法类似于Windows系统自带的记事本,这里不再介绍。
2.3 数据采集
采集功能是PowerGREP的又一特色,它的用途是将所有匹配检索词所在的句子保存为一个或多个文件,方便研究者根据自己的研究目的或需求对语料进行重新赋码。在定义操作类型栏的下拉菜单中选择采集数据(Collect data),并在定义搜索类型栏的下拉菜单中选择普通文本或正则表达式。然后,在文件区域(File sectioning)的下拉菜单中选择逐行(Line by line),并勾选采集或替换所有匹配区域(Collect/Replace whole sections),这么做的目的是保证采集结束后所有的匹配结果将以逐行的形式提取并可保存为一个文件。接着,设置保存的文件名、文件类型与路径。最后在检索框输入检索词并点击采集(Collect),完成数据的采集工作。
2 正则表达式简述
所谓正则表达式,就是用某种模式去匹配一类字符串的公式。它由一些普通字符和11个元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。例如,汉语“灰色”在英语中可以写为gray或grey。如果我们用一般文本检索的话,需要将gray和grey分两次填入搜索框并进行两次检索。但如果使用正则表达式,我们只需选择搜索类型为正则表达式,然后在搜索框中一次输入gr[ae]y就可以了。其中的方括号就是一个正则表达式,表示匹配方括号中a和e任意一个字符。我们于表1中列出了所有11个元字符,并逐一进行解释。
在语料库语言学研究中,我们需要掌握一些基本的字符组合,即元字符和普通字符的组合。\d代表 [0-9],即0到9之间任意一个数字; \w代表[A-Za-z],即A到Z或a到z之间任意一个字母;\s代表“空白字符”(whitespace character),包括空格符(space)、制表符(tab)、回车符(return)或换行符(newline)。如果将这三个正则表达式中的普通字符由小写改为大写,正则表达式的含义恰恰相反。\D表示[^\d],即非0到9之间任意一个数字;\W表示[^\w] ,即非A到Z或a到z之间任意一个字符;\S表示 [^\d],即非空格符、制表符、回车符、换行符。值得注意的是,如果将这些表示否定的字符组合放在方括号内,其意义将发生变化。例如,正则表达式[\D\S] 的含义为非数字或者非空格符、制表符、回车符、换行符。换言之,它可以匹配任意一个字符,包括数字、空格符、制表符、回车符、换行符和字母。而表达式[\s\d]的含义为既非数字,也非空格符、制表符、回车符或换行符,即该表达式匹配任意一个字母。
在进行语料库检索中,我们还必须了解一些常用字符组合。\b 匹配单词的前或后边界。例如,\bray\b只能匹配ray这个单词(见图3.5),这样做类似于文本检索中的whole words only ray,而ray\b则可以匹配以字母ray结束的单词,如gray或者ray 中的ray,但不能匹配 rayage中的ray。这个表达式非常重要,在语料库研究中我们可以用tion\b来检索以tion为后缀的所有单词,也可以使用\bpre这个表达式来检索所有以pre为前缀的单词。又如,\A表示文件的开始。此外,在语料库文本处理时还会用到三个不可显示的或非打印的特殊字符\r,\t和\n,它们分别代表回车符,制表符和换行符。
在使用正则表达式的过程中,了解以上提及的字符与字符组合,我们还要注意优先级顺序。类似于数学表达式求值,正则表达式是从左至右按优先级顺序来描述一个字符串的。下表由高到低列出了各种正则表达式操作符的优先级顺序:3 PowerGREP在语料库加工中的应用
语料库一般分为标注语料库与非标注语料库或生语料库。语料库语言学研究中非常重要的一环就是对语料库中的标注进行添加、删除或修改。语料库标注不仅包括词性标注,还包括句法标注、语义标注、话语标注和语用标注等(Meyer 2004)。但,现有的语料库标注主要为词性标注,而由于其他形式的标注自动化赋码比较难以实现(Hunston 2002),一般采取人工标注,并仅限于一些小型语料库(注:如句法标注语料库PoW(the Polytechnic of Walescorpus of children’s spoken language)。)。因此,根据不同的研究需求,大多时候语料库研究者需要对现有的语料库进行加工与处理。目前能够用于语料库赋码处理的软件为数不多(如Microsoft Office Word和UltraEdit-32等),PowerGrep则是其中的一名佼佼者。本文重点举例说明PowerGrep对BNC语料库标注进行删除、添加和修改的应用。
3.1 删除语料标注
假设我们要调查中国大学生记叙文中单词so的使用情况,选用《中国学生英语口笔语语料库》(SWECCL)和《英国国家语料库》(BNC)进行对比研究(严华,2006)。本研究需要按照so的话语功能分类进行标注,而后者的语料已进行过词性赋码,因此,我们需要先删除其原始词性标注。
在正式删除词性标注前,我们有必要了解一下BNC的标注特征。BNC的标注一般放在一对尖括号内,具体的标注说明可以参照BNC2 POS-Tagging Guide(Leech & Smith 2000)和Users Reference Guide British National Corpus(Burnard 1995),这里仅补充他们没有提及但我们必须熟悉和了解的一些标注:① BNC的文件头标注既包括尖括号内容,也包括普通文本,只有将之删除才能确保研究者进行词数统计的精确性;② 标注中的s代表句子(sentence),n=“1”代表第一行;③ 尖括号内的所有单词的词性标注都是以字母w开始的,其中,w代表单词word;④ 标点符号除双引号外均以字母c开始;⑤ &bquo;代表直接引语开始时的双引号,&equo;代表直接引语结束时的双引号。鉴于以上BNC的词性标注特征,我们将删除工作分为四步。
(1) 删除文件头
用PowerGREP自带的编辑器(Editor)打开选取的文件。BNC中标志正式文本语料开始的第一行,此前是对该文本的说明,即文件头。因此,我们在文本中定位到,然后删除之前的文件头部分。
(2) 替换&bquo;与&equo;为双引号。
首先在定义操作类型(Action type)栏的下拉菜单中选择搜索与替换(Search and replace),并在搜索类型(Search type)栏的下拉菜单中选择正则表达式(Regular expression)。然后,在搜索栏中输入&bquo;替换栏中输入双引号,点击替换按钮(Replace),将&bquo;替换成双引号。接着,我们采取同样的方法将&equo;也替换成双引号。
(3) 替换等行号为空格。
在搜索栏输入正则表达式,将光标插入替换栏,敲击两下空格键,这样做的目的是为了保持原文的格式,即首行缩进两个字符。接着,点击替换按钮(Replace),完成语料中以s开头的行号标注的删除工作(见图2)。
(4) 删除其余所有标注。
在搜索栏中输入正则表达式,替换栏留空,然后点击替换按钮(Replace),完成其余他所有标注的删除。我们用编辑器(Editor)查看最终的编辑效果。如图3所示,一个干净可读的文本展示在我们面前,将之直接保存即可。
3.2 添加语料标注
删除了BNC语料中的标注之后,接下来我们就可以按单词so的话语功能对中国学习者语料和BNC语料重新进行标注。我们需要先采集所有包含单词so的句子,然后利用PowerGREP的编辑器功能进行人工赋码。
(1) 采集
如图4所示,我们首先选择在定义操作类型(Action type)栏的下拉菜单中选择采集(Collect data),并在搜索类型(Search type)栏的下拉菜单中选择正则表达式(Regular expression)。然后,勾选Group results for all files与Group identical matches两个选项,并在搜索栏中输入检索词so的正则表达式\bso\b(注:\bso\b只能匹配单词so,这样做类似于文本检索中的whole words only。)。接着,在文件区域(File sectioning)的下拉菜单中选择逐行(Line by line),并勾选采集或替换所有匹配区域(Collect/Replace whole sections),这样保证采集结束后所有的匹配结果将以逐行的形式提取并可保存为一个文件。在采集之前还需预先设置文件保存的类型和路径。因此,我们在创建目标文件(Target File Creation)中选择将结果保存为单个文件(Save results into a single file),然后在目标文件地址(Target file location)处填入保存文件名与路径,如D:\我的文挡\so.txt。最后,点击采集按钮(Collect)即可得到所有包含单词so的句子。
(2) 标注
我们用PowerGREP自带的编辑器(Editor)打开刚刚采集并保存的文档。如图5所示,每行都只有一个单词so,这样既方便了赋码操作,又节省了我们研究者的时间。限于篇幅,具体的赋码过程在此不一一叙述。BNC语料赋码结束后,我们重复以上步骤对SWECCL进行标注,这样就完成了单词so研究分析前的标注工作。
3.3 修改语料标注
PowerGREP还可用来修改语料标注。语料标注的修改大致出于两种原因:标注调整和赋码纠正。