Я хочу написать скрипт Python, который ищет все строки Excel и возвращает 10 самых распространенных предложений.
Я написал основы ngrams для текстового файла.
Файл содержит текст в формате csv, dj лучше всего 4 раза, а gd - 3 раза.
import nltk
import pandas as pd
file = open('dj.txt', encoding="utf8")
text= file.read()
length = [3]
ngrams_count = {}
for n in length:
ngrams = tuple(nltk.ngrams(text.split(' '), n=n))
ngrams_count.update({' '.join(i) : ngrams.count(i) for i in ngrams})
ngrams_count
df = pd.DataFrame(list(zip(ngrams_count, ngrams_count.values())),
columns=['Ngramm', 'Count']).sort_values(['Count'],
ascending=False)
df
Выход -
Ngramm Count
1 is best,dj is 4
3 is cool,gd is 2
21 is best,gd is 2
25 best,dj is Best,dj 1
19 not cool,dj is 1
20 cool,dj is best,gd 1
22 best,gd is cool,dj 1
23 is cool,dj is 1
24 cool,dj is best,dj 1
0 dj is best,dj 1
18 is not cool,dj 1
27 Best,dj is best,dj 1
28 best,dj is best,dj 1
29 best,dj is best,gd 1
30 best,gd is cool,gd 1
31 cool,gd is COOL,gd 1
32 is COOL,gd is 1
26 is Best,dj is 1
17 good,dj is not 1
16 not good,dj is 1
15 is not good,dj 1
14 better,dj is not 1
13 is better,dj is 1
12 good,sandeep is better,dj 1
11 is good,sandeep is 1
10 excellent,prem is good,sandeep 1
9 is excellent,prem is 1
8 superb,sandeep is excellent,prem 1
7 is superb,sandeep is 1
6 best,prem is superb,sandeep 1
5 is best,prem is 1
4 cool,gd is best,prem 1
2 best,dj is cool,gd 1
33 COOL,gd is cool 1
Итак, во-первых, он показывает 2 для Б-га это круто, я не могу понять, почему? ..
а затем я хочу отсортировать этот вывод так, чтобы он показал что-то вроде этого
Ngramm Count
dj is cool 4
gd is cool 3
....and so on....
А потом я хочу, чтобы это делалось для файла Excel строка за строкой.
Я действительно новичок в этом, кто-нибудь может указать мне правильное направление?