我试图提取所有文本,包括类别(即A、B、C)。
A <some text1> B <some text2> C <some text3>
然而,当我应用这个正则表达式时 –
ptrn='\n[A-z]*\t' pattern1= '(.*)'+ptrn f = re.findall(pattern1,test_doc)
它返回的结果是
f[0] = A <some text1> f[1] = <some text2> f[2] = <some text3>
但我想要的是 –
f[0] = A <some text1>f[0] = B <some text2> f[2] = C <some text2>
http://csmining.org/tl_files/Project_Datasets/r8%20r52/r8-test-all-terms.txt
这个链接包含了许多文档的原始文本。每个文档具有以下模式:
category<tab><sometext> \n
因此,整个语料库看起来像这样:
category<tab><sometext1> \n category<tab><sometext2> \n..
我想要的是
doc[0] = category<tab><sometext1>doc[1] = category<tab><sometext2>..依此类推
任何答案/提示都将非常有帮助 🙂
回答:
尝试使用以下模式:
import repattern = r"(\w+)(\t)(.*)(\b)"
解释
(\w+)
匹配任何单词字符,一次或多次\t
字面匹配制表符(.*)
匹配除行终止符之外的所有内容(\b)
是单词边界