代码高尔夫 – 代码高尔夫:从文本快速构建关键字列表,包括实例数

我已经用 PHP为自己制定了这个解决方案,但我很好奇,它可以做得如何不同 – 甚至更好.我主要感兴趣的两种语言是PHPJavascript,但我有兴趣看到今天可以用其他任何主要语言(多数是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

结果:

7 be
  6 to
[...]
  1 2.
  1 -

发生大于X:

sed -e 's/ /\n/g' | grep -v '^ *$' | sort | uniq -c | awk '$1>X'

只返回长度大于Y的字(在第二个grep中放Y点):

sed -e 's/ /\n/g' | grep -v '^ *$' | grep .... | sort | uniq -c

忽略常见的术语,如“and,is,the等”(假设通用术语在文件中被忽略)

sed -e 's/ /\n/g' | grep -v '^ *$' | grep -vf ignored | sort | uniq -c

在处理之前,请随意删除标点符号(即“约翰的”成为“约翰”):

sed -e 's/[,.:"\']//g;s/ /\n/g' | grep -v '^ *$' | sort | uniq -c

返回结果集合/数组:它已经像shell的一个数组:第一列是count,second是word.

相关文章

Mip是什么意思以及作用有哪些
怎么测试Mip页面运行情况
MIP安装的具体步骤有哪些
HTML添加超链接、锚点的方法及作用详解(附视频)
MIP的规则有哪些
Mip轮播图组件中的重要属性讲解