【发布时间】:2013-08-05 13:46:21
【问题描述】:
我有一个分成多行的文本,没有特定的格式。所以我决定为每一行line.strip('\n')。然后我想使用句子结束标记. 将文本拆分成句子,考虑:
- 句点
.后跟\s(空格)、\S(如"')和[A-Z]将拆分 - 不要拆分
[0-9]\.[A-Za-z],比如1.stackoverflow real time solution。
我的程序只解决了 1 的一半 - 句点 (.),后跟 \s 和 [A-Z]。下面是代码:
# -*- coding: utf-8 -*-
import re, sys
source = open(sys.argv[1], 'rb')
dest = open(sys.argv[2], 'wb')
sent = []
for line in source:
line1 = line.strip('\n')
k = re.sub(r'\.\s+([A-Z“])'.decode('utf8'), '.\n\g<1>', line1)
sent.append(k)
for line in sent:
dest.write(''.join(line))
请!我想知道哪个是掌握正则表达式的最佳方法。这似乎令人困惑。
【问题讨论】:
-
也不错:pyregex.com
标签: python regex python-2.7 text-segmentation