text: import nltk
  import numpy as np
  import re
  import copy
  
  
  from scipy import stats
  from scipy.stats import spearmanr
  
  #多読図書のYL
  #x_tadoku = [1.4,1.8,1.8,1.8,1.8,1.4,1.4,1.4,1.2,1.2,
  #                   1.2,2.6,2.6,2.6,3.6,3.6,3.2,3.2,2.4,2.4,
  #                   2.4,2.4,2,2,2,2,2.6,3.6,3.2,2.8,
  #                   2.8,2.8,4.4,4.4,4.4,4.4,4,4,4,4,
  #                   4.8,4.8,4.8,2.5,2.5,2.5,2.5,2.5,2.5,2.5]
  
  #一般図書のYL
  #x_ippan = [8,6.6,8.5,6.5,7,7,7,7.6,7.5,7.5,
  #                7.3,7,8.2,7,6.6,7.7,7,5,5.5,7,
  #                7,7,7,7,7.5,5.1,7,7,7,7,
  #                7.6,6.5,7,6.5,7,8.5,7,6.5,9.5,
  #                7.7,7.5,7,7,8.5,7,5.5,6.6,8.5,7.5,8]
  
  
  #多読図書と一般図書のYL
  #x_zenbu = x_tadoku + x_ippan
  
  x_zenbu = [1.2, 1.2, 3.6, 6, 6.7, 7, 7, 5, 6.5, 7,
              7, 7, 7, 2.5, 6.5, 8, 5.7, 7, 7, 7,
              7, 7, 5.5, 2.5, 7, 2.5, 6.2, 7, 5, 2.5,
              7.7, 2.5, 8, 5.5, 8, 6, 7.5, 7, 6.5, 2.5,
              8, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 2.5,
              2.5, 7.5, 5.5, 7, 7, 5, 7, 6.3, 7, 7,
              6.5, 8, 5.5, 7, 7, 7.7, 7, 7.5, 7, 7.5,
              7, 8.7, 7, 2.5, 7.5, 8, 2.5, 8, 8, 2.5,
              8, 6.5, 6.5, 8.5, 5, 2.5, 5, 7, 5, 5.5, 
              5.2, 7.5, 7, 5.5, 9.5, 6, 8.5, 4.7, 5, 1.8]
  
  
  text_suu=101 #テキストの番号
  
  keisankekka=[]#１テキストでの計算結果
  
  
  while text_suu < 201:
      #text_listにリストとして読み込む
      with open('book'+ str(text_suu) +'_test1.txt', 'r') as f:
          #改行("\n")を""に変換
          #text_list = f.read().splitlines()
          text = f.read()
  
  
      #正規表現で"を削除
      text = re.sub('"', '', text)
      text = text.lower()
  
      morph = nltk.word_tokenize(text)
      pos = nltk.pos_tag(morph)
      #print(pos)
  
      kazu=0
      hinsi=[]#品詞の名前
      hinsi_kosuu=[]#品詞の個数．配列は品詞の名前と対応している．
      list_bangou=0
  
      naiyougo=0
      naiyougo_list=["NN","NNS", "NNP", "NNPS", "VB","VBD","VBG", "VBN", "VBP", "VBZ","JJ", "JJR", "JJS", "RB", "RBR", "RBS","CD","UH"]
      #naiyougo_list=["NN", "VB", "JJ", "RB"] #名詞，動詞，形容詞，副詞
  
      naiyougo_iti=[]
      naiyougo_ni=[]
      kigou=0
      kigou_reigai=["=","+","'"]
      bunnsuu=0
  
      zyuuhuku_list=[]
  
      zyuuhuku_dic={}
  
      tangosuu_1=0
      tangosuu_2=0
  
      wariai=[]
  
      while kazu < len(pos):
          #文ごとの文字数を数える
          tangosuu_2+=1
          #. が出たら，数を数える
          if pos[kazu][1] == ".":
              if bunnsuu == 0:
                  bunnsuu=1
  
                  tangosuu_1=tangosuu_2
                  tangosuu_2=0
                  
              
              else:
                  purasu = set(naiyougo_iti) & set(naiyougo_ni)
                  naiyougo+=len(purasu) #重複していた内容語の個数
                  purasu2=list(purasu) #リストに変更
                  zyuuhuku_list = zyuuhuku_list+purasu2 #重複している内容語をリストに追加
                  naiyougo_iti.clear() #リストの中身を消す
                  naiyougo_iti = copy.copy(naiyougo_ni) #リスト２の内容をリスト１に入れ替える
                  naiyougo_ni.clear() #リスト２の中身を消す
                  
                  #内容語の数/隣接する文の単語数
                  if tangosuu_1!=0 and tangosuu_2!=0:
                      wariai.append(len(purasu)/(tangosuu_1+tangosuu_2))
                  
                  else:
                      wariai.append(0)
                      
                  tangosuu_1=tangosuu_2
                  tangosuu_2=0
                  
  
  
          #内容語ができてきたらリストに入れる
          elif pos[kazu][1] in naiyougo_list:
              if bunnsuu == 0:
                  naiyougo_iti.append(pos[kazu][0])
  
              else:
                  naiyougo_ni.append(pos[kazu][0])
                  
       
          
  
          #いらない記号は排除
          if (re.match("\W", pos[kazu][1].lower())) and (pos[kazu][0].lower() in kigou_reigai) :
              kigou+=1
              tangosuu_2-=1
          #品詞をリストに入れる
          #もう出ている品詞なら，hinsi_kosuuの数を１増やす
          elif pos[kazu][1] in hinsi:
              list_bangou=hinsi.index(pos[kazu][1])
              hinsi_kosuu[list_bangou]=hinsi_kosuu[list_bangou]+1
  
  
              
          #新しい品詞が出てきたら，hinsiリストに品詞を追加して，hinsi_kosuuリストを１にする．
          else:
              hinsi.append(pos[kazu][1])
              hinsi_kosuu.append(1)
  
              
  
          
          kazu+=1
  
  
  
  
      #print(hinsi)
      #print(hinsi_kosuu)
  
      #print("内容語",naiyougo)
      zentai = sum(hinsi_kosuu)
      #print("総単語数",zentai)
  
  
  
  
      #重複する内容語の割合
      hasseiritu = naiyougo/zentai
      hasseiritu = sum(wariai)/len(wariai)
  
      #計算結果をリストに入れる
      keisankekka.append(hasseiritu)
      print(text_suu)
  
  
      text_suu+=1
  
  
  
  
  
  ###############################
  #相関係数の計算
  
  #相関計算
  x_np = np.array(x_zenbu)
  y_np = np.array(keisankekka)
  
  
  
  #x_zenbuが正規性がないので，スピアマンの相関係数
  #スピアマンの順位相関係数
  correlation, pvalue = spearmanr(x_zenbu, keisankekka)
  soukan = correlation
  
  
  print("参照の結束性レベル - 隣接している文における重複する内容語の割合")
  print("相関結果:", soukan)
  
  print("隣接している文における重複する内容語の割合:", keisankekka)
      
  
  
  
  
  