-
Notifications
You must be signed in to change notification settings - Fork 293
/
demo_simple_maths.py
43 lines (35 loc) · 1.23 KB
/
demo_simple_maths.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import spacy
from scattertext.Scalers import dense_rank
from scattertext.termscoring.simplemaths import SimpleMaths
from scattertext.CorpusFromParsedDocuments import CorpusFromParsedDocuments
from scattertext.SampleCorpora import ConventionData2012
from scattertext import produce_frequency_explorer
nlp = spacy.blank('en')
nlp.add_pipe('sentencizer')
corpus = CorpusFromParsedDocuments(
ConventionData2012.get_data().assign(
Parse=lambda df: df.text.apply(nlp)
),
category_col='party',
parsed_col='Parse',
).build().get_unigram_corpus().remove_infrequent_words(5)
term_scorer = SimpleMaths(
corpus=corpus,
log=True,
).set_categories('democrat', ['republican']).use_token_counts_as_doc_sizes()
html = produce_frequency_explorer(
corpus,
category='democrat',
category_name='Democratic',
not_category_name='Republican',
minimum_term_frequency=0,
pmi_threshold_coefficient=0,
width_in_pixels=1000,
metadata=lambda c: c.get_df()['speaker'],
term_scorer=term_scorer,
frequency_transform=dense_rank,
transform=dense_rank,
score_scaler=dense_rank
)
open('./demo_simple_maths.html', 'wb').write(html.encode('utf-8'))
print('Open ./demo_simple_maths.html in Chrome or Firefox.')