我有一个多文本文件,在循环中读取多个文件时,它看起来像:
@UTF8
@PID: 11312/c-00036109-1
@Begin
@Languages: eng
@Participants: CHI Target_Child, EXA Investigator
@ID: eng|ENNI|CHI|4;11.16|male|SLI||Target_Child|||
@ID: eng|ENNI|EXA|||||Investigator|||
@Comment: Birth of CHI is 9-MAY-1995
@Date: 25-APR-2000
@Tape Location: Disk L10 Track 3
@Bg: A1
*CHI: I saw a giraffe and a elephant .
%mor: pro:sub|I v|see&PAST det:art|a n|giraffe coord|and det:art|a
n|elephant .
%gra: 1|2|SUBJ 2|0|ROOT 3|4|DET 4|2|OBJ 5|4|CONJ 6|7|DET 7|5|COORD 8|2|PUNCT
*CHI: <that> [/] (.) that (i)s it . [+ bch]
%mor: pro:dem|that cop|be&3S pro:per|it .
%gra: 1|2|SUBJ 2|0|ROOT 3|2|PRED 4|2|PUNCT
*CHI: I saw an elephant go swimming .
%mor: pro:sub|I v|see&PAST det:art|a n|elephant v|go part|swim-PRESP .
%gra: 1|2|SUBJ 2|0|ROOT 3|4|DET 4|5|SUBJ 5|2|COMP 6|5|OBJ 7|2|PUNCT
*CHI: <I saw eleph> [//] I saw the <g> [/] giraffe and the elephant <s>
[//] drop ball in the pool .
%mor: pro:sub|I v|see&PAST det:art|the n|giraffe coord|and det:art|the
n|elephant n|drop n|ball prep|in det:art|the n|pool .
假设我有像SLI-1.txt、SLI2.txt这样的文件。。。SLI-10.txt。第一个任务是将所有文件读入一个文件,并对其执行以下操作
从这些数据中,我必须只提取前缀为*CHI:
或以^{*CHI:
语句中过滤掉的符号列表
删除那些前缀为[
或后缀为]
的单词,但保留这三个符号:[//]
、[/]
和[*]
保留那些前缀为<
或后缀为>
的单词,但应删除这两个符号
删除前缀为&
和+
的单词
保留那些前缀为(
或后缀为)
的单词,但应删除这两个符号
可以使用正则表达式
要执行筛选,您应该使用
Regular Expression Language
,如Hint
中所述。您可以在Python中使用re
模块来实现这一点。当然,您需要了解什么是正则表达式以及如何使用它例如,您可以使用表达式
^(?P<start>\*CHI:)(?P<target>.*)(?P<end>(?P<end_type_1> \.$)|(?P<end_type_2>$\n%mor))
(标志为gmsU
)来extract only statements which are ...
,其中组target
包含您要从文件中提取的内容。你可以在网上试试相关问题 更多 >
编程相关推荐