用于删除文本文件中的停止字的快速shell命令

用于删除文本文件中的停止字的快速shell命令,shell,nlp,text-processing,Shell,Nlp,Text Processing,我有一个2GB的文本文件。我正在尝试从此文件中删除频繁出现的英语停止词 我有stopwords.txt包含如下内容 a an the for and I 使用tr、sed或awk等shell命令执行此操作的快速方法是什么 这里有一个使用命令行和perl的方法: 将以下文本另存为replacesw.sh: #/bin/bash MYREGEX=\\b\(`perl-pe's/\n/|/g'$1`\)\\b perl-pe“s/$MYREGEX//g”$2 然后,如果您已将上述文件保存为stop

我有一个2GB的文本文件。我正在尝试从此文件中删除频繁出现的英语停止词

我有stopwords.txt包含如下内容

a
an
the
for
and
I

使用tr、sed或awk等shell命令执行此操作的快速方法是什么

这里有一个使用命令行和
perl
的方法:

将以下文本另存为
replacesw.sh

#/bin/bash
MYREGEX=\\b\(`perl-pe's/\n/|/g'$1`\)\\b
perl-pe“s/$MYREGEX//g”$2
然后,如果您已将上述文件保存为
stopwords.txt
,并且有第二个名为
testtext.txt
的文件,其中包含:

This is a file with the stopwords from the stopwords.txt for testing.
More than one line in the file, for a better test.
然后,命令行中的以下命令将删除
stopwords

KBs-MBP13:temp kbenoit$./replacesw.sh stopwords.txt testtext.txt
这是包含stopwords.txt测试中的stopwords的文件。
文件中有多行,测试效果更好。

您可能需要先
chmod u+x replacesw.sh

您是说键入速度最快,还是执行速度最快?对大数据执行速度最快?这听起来是个坏主意-为什么您想要一个2GB的文本副本?如果你打算进行信息检索,你需要对文本进行预处理(标记化、词干分析)并编制索引,那么为什么不在以后的阶段跳过停止词呢?他们在哪里提到了信息检索?Dan他们没有,我只是认为这是一种可能的情况。但我所说的也适用于我能想到的任何其他需要删除stopword的NLP任务。您需要安装perl,并且语法在Windows平台上会有所不同。仅供参考,我使用的是Mac OSX。正在检查perl安装:)请发送错误消息?当然安装了perl。无任何错误,它输出输入文件的内容,不替换任何单词。:)
/replaceSW.sh stopwords.txt input.txt
和输出
我决定以后再看一看怎么样?你认为出去是个好主意吗?关于我认为我宁愿往上走。你可以清楚地看到stopwords
to,is,i…
not removedOdd-我只是重新运行它,它肯定对我有用。