Как получить список наиболее распространенных слов на разных языках? - PullRequest
4 голосов
/ 04 сентября 2010

Stack Overflow реализовал функцию «Связанные вопросы», взяв название текущего вопроса и удалив из него 10 000 наиболее распространенных английских слов, согласно Google Остальные слова затем передаются в виде полнотекстового поиска для поиска связанных вопросов.

Как мне получить такой список самых распространенных английских слов? Или самые распространенные слова в других языках? Это то, что я могу просто убрать с сайта Google?

1 Ответ

4 голосов
/ 04 сентября 2010

A список частот слов - это то, что вы хотите. Вы также можете создать свой собственный или настроить его для использования в определенном домене, и это хороший способ познакомиться с некоторыми хорошими библиотеками. Начните с некоторого текста, такого как обсуждаемый в этот вопрос , а затем попробуйте некоторые варианты этого сценария "обратно за конвертом":

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 y или z из своих запросов или полностью исключаете их из индекса текстового поиска. Также вы можете получить некоторые интересные результаты, если вы включите данные реального мира - например, «сообщество» «вики», скорее всего, не является общим словом в общем списке, но для SO это, очевидно, не так, и вы можете исключить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...