docstr: Direct quote from Gries (2019)
  
  The version of Juilland's D that can handle differently large corpus parts is then computed
  as shown in (10). In order to accommodate the different sizes of the corpus parts, however, the
  variation coefficient is not computed using the observed frequencies v1-n (i.e. 1, 2, 3, 4, 5 in files
  1 to 5 respectively, see (5) above) but using the percentages in p1-n (i.e. how much of each corpus
  part is made up by the element in question, i.e. 1/9, 2/10, 3/10, 4/10, 5/11, see (6) above), which is what
  corrects for differently large corpus parts:
docstr_tok: ["Direct","quote","from","Gries","(","2019",")","The","version","of","Juilland","'s","D","that","can","handle","differently","large","corpus","parts","is","then","computed","as","shown","in","(","10",")",".","In","order","to","accommodate","the","different","sizes","of","the","corpus","parts",",","however",",","the","variation","coefficient","is","not","computed","using","the","observed","frequencies","v1-n","(","i.e",".","1",",","2",",","3",",","4",",","5","in","files","1","to","5","respectively",",","see","(","5",")","above",")","but","using","the","percentages","in","p1-n","(","i.e",".","how","much","of","each","corpus","part","is","made","up","by","the","element","in","question",",","i.e",".","1\/9",",","2\/10",",","3\/10",",","4\/10",",","5\/11",",","see","(","6",")","above",")",",","which","is","what","corrects","for","differently","large","corpus","parts",":"]
code: def jullands_d(self):
      """
      Direct quote from Gries (2019)
  
      The version of Juilland's D that can handle differently large corpus parts is then computed
      as shown in (10). In order to accommodate the different sizes of the corpus parts, however, the
      variation coefficient is not computed using the observed frequencies v1-n (i.e. 1, 2, 3, 4, 5 in files
      1 to 5 respectively, see (5) above) but using the percentages in p1-n (i.e. how much of each corpus
      part is made up by the element in question, i.e. 1/9, 2/10, 3/10, 4/10, 5/11, see (6) above), which is what
      corrects for differently large corpus parts:
      """
      ss = StandardScaler(with_mean=False).fit(self.p)
      return 1 - (np.sqrt(ss.var_) / ss.mean_) / np.sqrt(self.n - 1)
  
imports: from typing import Optional, Callable, List
  import numpy
  import pandas
  from scattertext.termranking import AbsoluteFrequencyRanker
  from scipy.sparse import csc_matrix, csr_matrix
  from sklearn.preprocessing import StandardScaler
  from scattertext.smoothing.lowess import Lowess
  from scattertext.termranking.TermRanker import TermRanker
  from scattertext.TermDocMatrix import TermDocMatrix
label_desc: Use image node_id 6 for calling the Dispersion obj's underlying member method code with example usage: obj.jullands_d() and returns: unknown