我已经用
PHP为自己制定了这个解决方案,但我很好奇,它可以做得如何不同 – 甚至更好.我主要感兴趣的两种语言是PHP和
Javascript,但我有兴趣看到今天可以用其他任何主要语言(多数是C#,Java等)来完成这些工作.
>只返回发生大于X的字
>只返回长度大于Y的字
>忽略常用术语,如“和,是,等等”
>在处理之前,请随意删除标点符号(即“约翰的”成为“约翰”)
>返回结果集合/数组
额外信用
>将引用的声明保持在一起(即“显然”他们太好了,不能真实地实现“)”真的太好了“将是实际的声明
额外信用
>您的脚本可以根据被发现的频率确定应该保持在一起的单词吗?这是在事先知道的情况下完成的.例:
*”The fruit fly is a great thing when it comes to medical research. Much study has been done on the fruit fly in the past,and has lead to many breakthroughs. In the future,the fruit fly will continue to be studied,but our methods may change.”*
显然这里的词是“果蝇”,这对我们来说很容易找到.你的search’n’scrape脚本可以确定吗?
来源文字:http://sampsonresume.com/labs/c.txt
回答格式
解决方法
GNU脚本
sed -e 's/ /\n/g' | grep -v '^ *$' | sort | uniq -c | sort -nr@H_502_33@结果:
7 be 6 to [...] 1 2. 1 -@H_502_33@发生大于X:
sed -e 's/ /\n/g' | grep -v '^ *$' | sort | uniq -c | awk '$1>X'@H_502_33@只返回长度大于Y的字(在第二个grep中放Y点):
sed -e 's/ /\n/g' | grep -v '^ *$' | grep .... | sort | uniq -c@H_502_33@忽略常见的术语,如“and,is,the等”(假设通用术语在文件中被忽略)
sed -e 's/ /\n/g' | grep -v '^ *$' | grep -vf ignored | sort | uniq -c@H_502_33@在处理之前,请随意删除标点符号(即“约翰的”成为“约翰”):
sed -e 's/[,.:"\']//g;s/ /\n/g' | grep -v '^ *$' | sort | uniq -c@H_502_33@返回结果集合/数组:它已经像shell的一个数组:第一列是count,second是word.