Le agregue tambien que eliminara los signos de puntuacion y los stopwords, ya que sin eso los primeros 20 que tienen mas frecuencia son signos de puntuacion y stopwords.
from urllib import request
import re
from bs4 import BeautifulSoup
import nltk
from nltk import word_tokenize
from string import punctuation
from nltk.corpus import stopwords
def get_text(file):
#Read text from file...
text = open(file).read()
text = re.sub(r'<.*?', ' ', text)
text = re.sub(r'\s+', ' ', text)
return text
def freq_words(url, n):
req = request.urlopen(url)
html = req.read().decode('utf8')
raw = BeautifulSoup(html, 'html.parser')
stop_words = stopwords.words('english')
text = raw.get_text()
tokens = word_tokenize(text)
tokens = [token.lower() for token in tokens]
tokens = [token for token in tokens if token not in punctuation]
tokens = [token for token in tokens if token not in stop_words]
fd = nltk.FreqDist(tokens)
return [t for (t, _) in fd.most_common(n)]
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?