1
daviswei Aug 21, 2019
是不是[A-Za-z0-9]
|
2
jdhao Aug 21, 2019 via Android
capture group? 把英文放到 capture group,只保留这些 group 就 ok 了。英文看成 ascii 字符连续不断的字符串
|
3
SuperMild Aug 21, 2019
如果段落与段落之间有明确区分(比如空行),那么,只取每个段落的头几个和尾几个字符来判断就可以了。
|
5
DiamondbacK Aug 21, 2019
sed '/[^0-9A-z[:punct:]/d'
|
6
taogen Aug 21, 2019 via Android
不知道你是什么编程语言,一般编程语言都采用的是 Unicode 字符编码。你搜一下你的语言,比如 Java 正则提取英文 Unicode 字符串
|
7
DiamondbacK Aug 21, 2019
更正:
sed '/[^0-9A-z[:punct:]]/d' |
8
SuperMild Aug 21, 2019
其他语种的段落里大概率会包含英文字母,如果简单抽取拼接在一起,结果看起来会很奇怪的。建议逐段处理,一段里超过多少个非英语字母就整段抛弃。
|
10
autoxbc Aug 21, 2019
写一个函数,对每个段落打分,按照英文和标点的百分比确定分值
|
11
DiamondbacK Aug 21, 2019
更正(加上空格):
sed '/[^0-9A-z[:punct:] ]/d' |
12
DiamondbacK Aug 21, 2019
怎么问题又变了?不是「只保留纯英文段落」吗?
这个标准本身很明确啊,等同于将你们现在所说的「阈值」设为 0。 |
13
DiamondbacK Aug 21, 2019
你没定义「段落」,所以这里按行来处理。补充一个 gawk 方法:
gawk "!/[^0-9A-z[:punct:] ]/{ print }" |
14
DiamondbacK Aug 21, 2019
|