Stack Overflow通过获取当前问题的标题并根据Google删除10,000个最常见的英语单词来实现其“相关问题”功能。然后将剩余的单词作为全文搜索提交以查找相关问题。
如何获得最常见英语单词的列表?或者其他语言中最常见的单词?这是我可以从Google网站上下载的吗?
答案 0 :(得分:4)
word frequency list就是你想要的。您也可以自己创建或自定义一个在特定域中使用,这是熟悉一些好库的好方法。从this question中讨论的一些文本开始,然后尝试这个背后信封脚本的一些变体:
from nltk.stem.porter import PorterStemmer
import os
import string
from collections import defaultdict
ps = PorterStemmer()
word_count = defaultdict(int)
source_directory = '/some/dir/full/of/text'
for root, dirs, files in os.walk(source_directory):
for item in files:
current_text = os.path.join(root, item)
words = open(current_text, 'r').read().split()
for word in words:
entry = ps.stem_word(word.strip(string.punctuation).lower())
word_count[entry] += 1
results = [[word_count[i], i] for i in word_count]
print sorted(results)
这下载了几本书,下面是最常用的词:
[2955, 'that'], [4201, 'in'], [4658, 'to'], [4689, 'a'], [6441, 'and'], [6705, 'of'], [14508, 'the']]
查看从您的查询中过滤掉最常见的x或z数字时会发生什么情况,或者将它们完全从文本搜索索引中删除。如果你包含真实世界的数据,也可能得到一些有趣的结果 - 例如“社区”“维基”不太可能是通用列表上的常用词,但是在SO上显然不是这种情况,你可能想要排除它们。