如何在google中使用python给定句子并从结果中获取最常用的单词?

时间:2018-12-15 22:22:24

标签: python-3.x

对于我的作业,我需要编写一个python程序,将给定的句子用Google搜索出来,并打印出与该搜索相关的最频繁的5个单词。

那怎么办?

是否有库或API?

谢谢!

1 个答案:

答案 0 :(得分:1)

我会做更多的研究,然后自己尝试一下,以便您可以就自己的方法和正在编写的代码提出更具体的问题。

尚不清楚您要使用哪种文本来识别前5个最常用的词(即Google搜索结果页面中的文本,作为搜索一部分返回的网站上的实际文本,等等) ),或者您的分析将考虑多少个结果。

话虽如此,我建议您研究以下内容:

要从网络上提取文本,我建议您研究一下BeautifulSoup4库。您可以通过在终端中键入以下内容来安装它:

pip install beautifulsoup4

对于单词频率,您可以使用nltk来分析使用漂亮的汤返回的文本并获得频率,或者进行其他基于文本的分析。您可以通过在终端中键入以下内容来安装nltk:

pip install nltk

如果您反对使用nltk进行文本分析,则可以使用内置库执行类似的操作来获取某些文本中最常见的单词的计数:

# import your libraries
import re
from collections import Counter

# clean text from google retrieved with beautiful soup
text_from_google = 'This is some example text I use where I use the word 
example more than once for example'
text = text_from_google.lower().split()

# create a function to return the top n words in text
def get_top_words(text, num_words):

    # basic pre-processing to remove punctuation
    punc_filter = re.compile('.*[A-Za-z0-9].*')
    filtered_text = [word for word in text if punc_filter.match(word)]

    word_counts = Counter(filtered_text)

    return word_counts.most_common(num_words)

# get the top words
top_words = get_top_words(text, 5)

for word in top_words:
    print('The word {} was found {} times'.format(word[0], word[1]))