【问题标题】:regex- using CategorizedPlaintextCorpusReader to find nth instance of a word正则表达式 - 使用 CategorizedPlaintextCorpusReader 查找单词的第 n 个实例
【发布时间】:2017-04-25 02:46:10
【问题描述】:

我有一个原始文本文件形式的报纸语料库,我希望能够从中提取社论。大多数社论都在“EDITORIAL”一词的第三个实例之后开始,并以页脚“sfbg”结束。

我的想法是使用python的正则表达式来提取这些社论。我正在使用 CategorizedPlaintextCorpusReader。

我自己尝试查找 CategorizedPlaintextCorpusReader 的方法列表,但结果是空的。

【问题讨论】:

  • (.*?EDITORIAL){3}(.*?)sfbg
  • 您能详细说明一下吗?总的来说,我对编程还是很陌生,我的语法还没有完全确定。

标签: python regex nltk corpus


【解决方案1】:

好吧,找到“在单词EDITORIAL的第三个实例之后和结束分隔符'sfbg'之前”的正则表达式是:

(.*?EDITORIAL){3}(?<content>.*?)sfbg

下面是组成部分:

(.*?EDITORIAL){3} - 通过使用非贪婪(更安全 - 避免匹配过多)通配符 .*? 并将整个组与 {3} 相乘,查找直到第三次使用“社论”一词的所有内容。

(?<content>.*?) - 命名匹配组“内容”。这是你想要的匹配,它只是匹配直到......

sfbg - 结束分隔符。

regex101 demo

【讨论】:

  • 该代码会遵循正则表达式的方法吗?例如:re.find(.*?EDITORIAL){3}(?<text>.*?)sfbg ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-17
  • 2021-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多