#名詞を含む文節が，動詞を含む文節に係るとき，これらをタブ区切り形式で抽出せよ．ただし，句読点などの記号は出力しないようにせよ

import CaboCha
import re
class Morph:
    def __init__(self, surface, base, pos, pos1):
        self.surface = surface
        self.base = base
        self.pos = pos
        self.pos1 = pos1


class Chunk:
    def __init__(self, morphs, dst, srcs):
        self.morphs = morphs
        self.dst = dst
        self.srcs = srcs



path = r"\Users\Koya\Documents\Lab\neko.txt.cabocha"
with open(path,mode = "r" ,encoding= "utf-8") as cabochaf:
    splitedlines =cabochaf.read() 
    ##print(splitedlines)
    

eachlist = []
alllist = []
for line in splitedlines.split("\n"):
    temp = line.split("\t")
    if len(temp) >= 2:
        splittemp = temp[1].split(",")
        if not splittemp[1] == "空白":
            eachlist.append(Morph(temp[0],splittemp[6],splittemp[0],splittemp[1]))
    elif temp[0] == "EOS":
        alllist.append(eachlist)
        eachlist = []


chunkeachlist =[]
chunkalllist = []
tempnum = []
srcs = [""]*1000
morphs = ""

for i, chunkline in  enumerate(splitedlines.split("\n")):
    chunktemp = chunkline.split("\t")  
    if "D" in chunkline:
        
        if len(tempnum) > 1:
            tempnum[1] = int(tempnum[1])
            tempnum[2]=int(tempnum[2].strip("D"))
            if not srcs[tempnum[2]] == "":
                srcs[tempnum[2]] = str(srcs[tempnum[2]]) + "," + str(tempnum[1])
            else:
                srcs[tempnum[2]] = tempnum[1]
            chunkeachlist.append(Chunk(morphs, tempnum[2], srcs[tempnum[1]]))
        tempnum = chunkline.split(" ")
        morphs = ""
        
    elif "EOS" in chunkline:
        
        if len(tempnum) > 1:
            tempnum[1] = int(tempnum[1])
            tempnum[2]=int(tempnum[2].strip("D"))
            if not srcs[tempnum[2]] == "":
                srcs[tempnum[2]] = str(srcs[tempnum[2]]) + "," + str(tempnum[1])
            else:
                srcs[tempnum[2]] = tempnum[1]
            chunkeachlist.append(Chunk(morphs, tempnum[2], srcs[tempnum[1]]))
        chunkalllist.append(chunkeachlist)
        chunkeachlist = []
        morphs = ""
        tempnum = []
        srcs = [""]*1000
            
    else:
        morphs = morphs + chunktemp[0] 


#print(len(chunkalllist[5]))
placeline = 3
for j in range(len(chunkalllist)):
    for  item  in alllist[j]:
        if item.pos == "名詞":
            for chunkitem in chunkalllist[j]:
                if item.surface in chunkitem.morphs :
                    numdst = int(chunkitem.dst)
                    if not numdst == -1:
                        print("%s\t%s" % ( chunkitem.morphs, chunkalllist[j][int(chunkitem.dst)].morphs ))

"""   

* 0 -1D 0/0 0.000000
一      名詞,数,*,*,*,*,一,イチ,イチ
EOS
EOS
* 0 2D 0/0 -0.764522
　      記号,空白,*,*,*,*,　,　,　
* 1 2D 0/1 -0.764522
吾輩    名詞,代名詞,一般,*,*,*,吾輩,ワガハイ,ワガハイ
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
* 2 -1D 0/2 0.000000
猫      名詞,一般,*,*,*,*,猫,ネコ,ネコ
で      助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある    助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
。      記号,句点,*,*,*,*,。,。,。
EOS
* 0 2D 0/1 -1.911675
名前    名詞,一般,*,*,*,*,名前,ナマエ,ナマエ
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
* 1 2D 0/0 -1.911675
まだ    副詞,助詞類接続,*,*,*,*,まだ,マダ,マダ
* 2 -1D 0/0 0.000000
無い    形容詞,自立,*,*,形容詞・アウオ段,基本形,無い,ナイ,ナイ
。      記号,句点,*,*,*,*,。,。,。
EOS
EOS
* 0 1D 1/2 1.058678
　      記号,空白,*,*,*,*,　,　,　
どこ    名詞,代名詞,一般,*,*,*,どこ,ドコ,ドコ
で      助詞,格助詞,一般,*,*,*,で,デ,デ
* 1 4D 0/2 -1.453749
生れ    動詞,自立,*,*,一段,連用形,生れる,ウマレ,ウマレ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
か      助詞,副助詞／並立助詞／終助詞,*,*,*,*,か,カ,カ
* 2 4D 0/0 -1.453749
とんと  副詞,一般,*,*,*,*,とんと,トント,トント
* 3 4D 0/1 -1.453749
見当    名詞,サ変接続,*,*,*,*,見当,ケントウ,ケントー
が      助詞,格助詞,一般,*,*,*,が,ガ,ガ
* 4 -1D 0/1 0.000000
つか    動詞,自立,*,*,五段・カ行イ音便,未然形,つく,ツカ,ツカ
ぬ      助動詞,*,*,*,特殊・ヌ,基本形,ぬ,ヌ,ヌ
。      記号,句点,*,*,*,*,。,。,。
EOS
* 0 1D 0/1 0.250823
何      名詞,代名詞,一般,*,*,*,何,ナニ,ナニ
でも    助詞,副助詞,*,*,*,*,でも,デモ,デモ
* 1 3D 0/0 1.619446
薄暗い  形容詞,自立,*,*,形容詞・アウオ段,基本形,薄暗い,ウスグライ,ウスグライ
* 2 3D 1/2 1.764641
じめじめ        副詞,一般,*,*,*,*,じめじめ,ジメジメ,ジメジメ
し      動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
* 3 5D 0/1 0.225069
所      名詞,非自立,副詞可能,*,*,*,所,トコロ,トコロ
で      助詞,格助詞,一般,*,*,*,で,デ,デ
* 4 5D 0/0 1.312849
ニャーニャー    名詞,一般,*,*,*,*,*
* 5 7D 0/1 -1.148488
泣い    動詞,自立,*,*,五段・カ行イ音便,連用タ接続,泣く,ナイ,ナイ
て      助詞,接続助詞,*,*,*,*,て,テ,テ
* 6 7D 0/2 -1.148488
いた事  名詞,一般,*,*,*,*,いた事,イタコト,イタコト
だけ    助詞,副助詞,*,*,*,*,だけ,ダケ,ダケ
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
* 7 -1D 1/3 0.000000
記憶    名詞,サ変接続,*,*,*,*,記憶,キオク,キオク
し      動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
て      助詞,接続助詞,*,*,*,*,て,テ,テ
いる    動詞,非自立,*,*,一段,基本形,いる,イル,イル
。      記号,句点,*,*,*,*,。,。,。
EOS
* 0 5D 0/1 -1.514009
吾輩    名詞,代名詞,一般,*,*,*,吾輩,ワガハイ,ワガハイ
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
* 1 2D 0/1 1.311423
ここ    名詞,代名詞,一般,*,*,*,ここ,ココ,ココ
で      助詞,格助詞,一般,*,*,*,で,デ,デ
* 2 3D 0/1 0.123057
始め    動詞,自立,*,*,一段,連用形,始める,ハジメ,ハジメ
て      助詞,接続助詞,*,*,*,*,て,テ,テ
* 3 4D 0/1 1.440044
人間    名詞,一般,*,*,*,*,人間,ニンゲン,ニンゲン
という  助詞,格助詞,連語,*,*,*,という,トイウ,トユウ
* 4 5D 0/1 -1.514009
もの    名詞,非自立,一般,*,*,*,もの,モノ,モノ
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
* 5 -1D 0/1 0.000000
見      動詞,自立,*,*,一段,連用形,見る,ミ,ミ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。      記号,句点,*,*,*,*,。,。,。
EOS
* 0 8D 0/0 -0.543939
しかも  接続詞,*,*,*,*,*,しかも,シカモ,シカモ
* 1 2D 0/1 2.397100
あと    名詞,一般,*,*,*,*,あと,アト,アト
で      助詞,格助詞,一般,*,*,*,で,デ,デ
* 2 8D 0/1 -0.543939
聞く    動詞,自立,*,*,五段・カ行イ音便,基本形,聞く,キク,キク
と      助詞,接続助詞,*,*,*,*,と,ト,ト
* 3 8D 0/1 -0.543939
それ    名詞,代名詞,一般,*,*,*,それ,ソレ,ソレ
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
* 4 5D 0/1 1.817224
書生    名詞,一般,*,*,*,*,書生,ショセイ,ショセイ
という  助詞,格助詞,連語,*,*,*,という,トイウ,トユウ
* 5 8D 1/2 -0.543939
人間    名詞,一般,*,*,*,*,人間,ニンゲン,ニンゲン
中      名詞,接尾,副詞可能,*,*,*,中,チュウ,チュー
で      助詞,格助詞,一般,*,*,*,で,デ,デ
* 6 7D 0/0 1.205909
一番    名詞,副詞可能,*,*,*,*,一番,イチバン,イチバン
* 7 8D 0/1 -0.543939
獰悪    名詞,形容動詞語幹,*,*,*,*,獰悪,ドウアク,ドーアク
な      助動詞,*,*,*,特殊・ダ,体言接続,だ,ナ,ナ
* 8 -1D 4/5 0.000000
種族    名詞,一般,*,*,*,*,種族,シュゾク,シュゾク
で      助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
あっ    助動詞,*,*,*,五段・ラ行アル,連用タ接続,ある,アッ,アッ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
そう    名詞,特殊,助動詞語幹,*,*,*,そう,ソウ,ソー
だ      助動詞,*,*,*,特殊・ダ,基本形,だ,ダ,ダ
。      記号,句点,*,*,*,*,。,。,。
EOS
* 0 1D 0/0 2.989153
この    連体詞,*,*,*,*,*,この,コノ,コノ
* 1 7D 2/3 -0.506012
書生    名詞,一般,*,*,*,*,書生,ショセイ,ショセイ
という  助詞,格助詞,連語,*,*,*,という,トイウ,トユウ
の      名詞,非自立,一般,*,*,*,の,ノ,ノ
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
* 2 4D 0/0 0.616342
時々    副詞,一般,*,*,*,*,時々,トキドキ,トキドキ
* 3 4D 0/1 1.365880
我々    名詞,代名詞,一般,*,*,*,我々,ワレワレ,ワレワレ
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
* 4 5D 0/1 0.607128
捕え    動詞,自立,*,*,一段,連用形,捕える,トラエ,トラエ
て      助詞,接続助詞,*,*,*,*,て,テ,テ
* 5 6D 0/1 1.954258
煮      動詞,自立,*,*,一段,連用形,煮る,ニ,ニ
て      助詞,接続助詞,*,*,*,*,て,テ,テ
* 6 7D 0/1 -0.506012
食う    動詞,自立,*,*,五段・ワ行促音便,基本形,食う,クウ,クウ
という  助詞,格助詞,連語,*,*,*,という,トイウ,トユウ
* 7 -1D 0/2 0.000000
話      名詞,サ変接続,*,*,*,*,話,ハナシ,ハナシ
で      助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある    助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
。      記号,句点,*,*,*,*,。,。,。
EOS
* 0 9D 0/0 -0.522486
しかし  接続詞,*,*,*,*,*,しかし,シカシ,シカシ
* 1 2D 0/0 1.179934
その    連体詞,*,*,*,*,*,その,ソノ,ソノ
* 2 5D 0/1 0.326076
当時    名詞,副詞可能,*,*,*,*,当時,トウジ,トージ
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
* 3 4D 0/1 1.344316
何      名詞,代名詞,一般,*,*,*,何,ナニ,ナニ
という  助詞,格助詞,連語,*,*,*,という,トイウ,トユウ
* 4 5D 0/1 1.419801
考      名詞,一般,*,*,*,*,考,コウ,コー
も      助詞,係助詞,*,*,*,*,も,モ,モ
* 5 9D 0/2 -0.522486
なかっ  形容詞,自立,*,*,形容詞・アウオ段,連用タ接続,ない,ナカッ,ナカッ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
から    助詞,接続助詞,*,*,*,*,から,カラ,カラ
* 6 7D 0/0 0.572954
別段    副詞,助詞類接続,*,*,*,*,別段,ベツダン,ベツダン
* 7 9D 0/0 -0.522486
恐し    形容詞,自立,*,*,形容詞・アウオ段,文語基本形,恐い,コワシ,コワシ
* 8 9D 0/0 -0.522486
いとも  副詞,一般,*,*,*,*,いとも,イトモ,イトモ
* 9 -1D 0/2 0.000000
思わ    動詞,自立,*,*,五段・ワ行促音便,未然形,思う,オモワ,オモワ
なかっ  助動詞,*,*,*,特殊・ナイ,連用タ接続,ない,ナカッ,ナカッ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。      記号,句点,*,*,*,*,。,。,。
EOS
* 0 3D 0/0 0.054424
ただ    接続詞,*,*,*,*,*,ただ,タダ,タダ
* 1 2D 0/1 1.562634
彼      名詞,代名詞,一般,*,*,*,彼,カレ,カレ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
* 2 3D 0/1 1.915258
掌      名詞,一般,*,*,*,*,掌,テノヒラ,テノヒラ
に      助詞,格助詞,一般,*,*,*,に,ニ,ニ
* 3 5D 0/2 1.569009
載せ    動詞,自立,*,*,一段,未然形,載せる,ノセ,ノセ
られ    動詞,接尾,*,*,一段,連用形,られる,ラレ,ラレ
て      助詞,接続助詞,*,*,*,*,て,テ,テ
* 4 5D 0/1 1.866094
スー    名詞,固有名詞,人名,名,*,*,スー,スー,スー
と      助詞,格助詞,引用,*,*,*,と,ト,ト
* 5 6D 0/2 1.421193
持ち上げ        動詞,自立,*,*,一段,未然形,持ち上げる,モチアゲ,モチアゲ
られ    動詞,接尾,*,*,一段,連用形,られる,ラレ,ラレ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
* 6 8D 0/0 0.834979
時      名詞,非自立,副詞可能,*,*,*,時,トキ,トキ
* 7 8D 0/0 0.704212
何だか  副詞,一般,*,*,*,*,何だか,ナンダカ,ナンダカ
* 8 9D 1/2 1.479832
フワフワ        副詞,助詞類接続,*,*,*,*,フワフワ,フワフワ,フワフワ
し      動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
* 9 10D 0/1 1.479832
感じ    名詞,一般,*,*,*,*,感じ,カンジ,カンジ
が      助詞,格助詞,一般,*,*,*,が,ガ,ガ
* 10 -1D 0/4 0.000000
あっ    動詞,自立,*,*,五段・ラ行,連用タ接続,ある,アッ,アッ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
ばかり  助詞,副助詞,*,*,*,*,ばかり,バカリ,バカリ
で      助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある    助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
。      記号,句点,*,*,*,*,。,。,。
EOS
* 0 1D 0/1 1.845274
掌      名詞,一般,*,*,*,*,掌,テノヒラ,テノヒラ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
* 1 3D 0/1 0.988017
上      名詞,非自立,副詞可能,*,*,*,上,ウエ,ウエ
で      助詞,格助詞,一般,*,*,*,で,デ,デ
* 2 3D 0/0 1.898135
少し    副詞,助詞類接続,*,*,*,*,少し,スコシ,スコシ
* 3 6D 0/1 0.903711
落ちつい        動詞,自立,*,*,五段・カ行イ音便,連用タ接続,落ちつく,オチツイ,オチツイ
て      助詞,接続助詞,*,*,*,*,て,テ,テ
* 4 5D 0/1 1.787202
書生    名詞,一般,*,*,*,*,書生,ショセイ,ショセイ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
* 5 6D 0/1 2.137527
顔      名詞,一般,*,*,*,*,顔,カオ,カオ
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
* 6 8D 2/3 0.071108
見      動詞,自立,*,*,一段,連用形,見る,ミ,ミ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
の      名詞,非自立,一般,*,*,*,の,ノ,ノ
が      助詞,格助詞,一般,*,*,*,が,ガ,ガ
"""