Я хотел бы рассказать о наличии слов в нескольких файлах csv. Сначала я хотел бы показать 10 наиболее распространенных слов со словами остановки, а затем без слов остановки.Подсчитайте частоту слов в файлах mutty csv без стоп-слов
Это мой код:
import nltk
nltk.download("stopwords")
from nltk.corpus import stopwords
myfile = sc.textFile('./Sacramento*.csv')
counts = myfile.flatMap(lambda line: line.split(",")).map(lambda word: (word, 1)).reduceByKey(lambda v1,v2: v1 + v2)
sorted_counts = counts.map(lambda (a, b): (b, a)).sortByKey(0, 1).map(lambda (a, b): (b, a))
first_ten = sorted_counts.take(10)
first_ten
Out[7]:
[(u'Residential', 917),
(u'2', 677),
(u'CA', 597),
(u'3', 545),
(u'SACRAMENTO', 439),
(u'ours', 388),
(u'0', 387),
(u'4', 277),
(u'Mon May 19 00:00:00 EDT 2008', 268),
(u'Fri May 16 00:00:00 EDT 2008', 264)]
cachedStopWords = stopwords.words("english")
result_ll = counts.map(lambda (a, b): (b, a)).sortByKey(0,
1).map(lambda (a, b): (b, a))
print [i for i in result_ll.take(10) if i not in cachedStopWords]
Но выход все еще со стоп словами - "наш" также между игнорируемых слов
[(u'Residential», 917), (u'2 ', 677), (u'CA', 597), (u'3 ', 545), (u'SACRAMENTO', 439), (u'ours ', 388), (u'0', 387), (u'4 ', 277), (u'Mon 19 мая 00:00:00 EDT 2008', 268), (u'Fri 16 мая 00:00:00 EDT 2008 ', 264)]
How должен ли я изменить свой код, поэтому вывод не будет прерывать слово: «наш»?