我有一个包含1,700,000个单词的文件。我想对单词进行幼稚的词干处理,如果单词的长度超过6个字符,则删除第6位之后的所有字符。例如:
Input:
Everybody is around
Everyone keeps talking
Output:
Everyb is around
Everyo keeps talkin
我写了以下脚本:
INPUT=train.txt
while read line; do
for word in $line; do
new="$(echo $word | awk '{print substr($0,1,6);exit}')"
echo -n $new >> train_stem_6.txt
echo -n ' ' >> train_stem_6.txt
done
echo ' ' >> train_stem_6.txt
done < "$INPUT"
这可以完美地回答问题,但是速度非常慢,并且由于我有1,700,000个单词,因此需要花费很长的时间。是否有使用bash脚本执行此操作的更快方法。
非常感谢,
您考虑使用sed吗?
sed -r 's/([a-zA-Z]{6})[a-zA-Z]+/\1/g'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句